C语言做的井字棋小游戏

井字棋(Tic-Tac-Toe)游戏

功能介绍

本项目是一个用C语言实现的简易井字棋游戏,支持人机对战。主要功能如下:

  • 使用二维数组实现3x3棋盘。
  • 玩家与AI轮流落子,玩家使用"X",AI使用"O"。
  • AI采用随机算法进行落子。
  • 每次落子后自动判断胜负或平局。
  • 支持输入检测,防止无效落子。
  • 游戏结束后提示胜负或平局。

创作过程

  1. 棋盘设计 :采用char board[3][3]二维数组存储棋盘状态,初始为空格。
  2. 初始化与打印 :实现init_board函数初始化棋盘,print_board函数美观打印当前棋盘。
  3. 玩家落子 :通过player_move函数读取玩家输入,判断输入是否合法并落子。
  4. AI落子ai_move函数使用srandrand生成随机位置,若该位置为空则落子。
  5. 胜负判断check_winner函数判断行、列、对角线是否有三子连线,或棋盘是否已满(平局)。
  6. 主循环main函数中循环进行玩家和AI的落子,直到出现胜负或平局。

本项目适合C语言初学者学习二维数组、流程控制、函数调用等基础知识。

编译与运行

  1. 使用gcc编译(推荐):
sh 复制代码
gcc tictactoe.c -o tictactoe
  1. 运行程序:
  • 在Linux/macOS下:
sh 复制代码
./tictactoe
  • 在Windows下:
sh 复制代码
tictactoe.exe
相关推荐
我材不敲代码5 小时前
Python实现打包贪吃蛇游戏
开发语言·python·游戏
2501_920931705 小时前
React Native鸿蒙跨平台采用ScrollView的horizontal属性实现横向滚动实现特色游戏轮播和分类导航
javascript·react native·react.js·游戏·ecmascript·harmonyos
2501_920931709 小时前
React Native鸿蒙跨平台实现推箱子游戏,完成玩家移动与箱子推动,当所有箱子都被推到目标位置时,玩家获胜
javascript·react native·react.js·游戏·ecmascript·harmonyos
一点程序10 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
Tingjct10 小时前
【初阶数据结构-二叉树】
c语言·开发语言·数据结构·算法
飞机和胖和黄10 小时前
考研之王道C语言第三周
c语言·数据结构·考研
醉颜凉11 小时前
【LeetCode】打家劫舍III
c语言·算法·leetcode·树 深度优先搜索·动态规划 二叉树
一匹电信狗11 小时前
【LeetCode_21】合并两个有序链表
c语言·开发语言·数据结构·c++·算法·leetcode·stl
一起养小猫11 小时前
Flutter for OpenHarmony 实战:别踩白方块游戏完整开发指南
flutter·游戏
怪兽源码12 小时前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统