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函数使用srand和rand生成随机位置,若该位置为空则落子。
  5. 胜负判断 :check_winner函数判断行、列、对角线是否有三子连线,或棋盘是否已满(平局)。
  6. 主循环 :main函数中循环进行玩家和AI的落子,直到出现胜负或平局。

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

编译与运行

  1. 使用gcc编译(推荐):
sh 复制代码
gcc tictactoe.c -o tictactoe
  1. 运行程序:
  • 在Linux/macOS下:
sh 复制代码
./tictactoe
  • 在Windows下:
sh 复制代码
tictactoe.exe
相关推荐
沐飞工具箱25 分钟前
游戏、漫画、视频里的外语怎么实时翻译?从 OCR + AI 原理聊聊 VoriTrans 屏幕翻译
人工智能·游戏·实时互动·音视频·自动翻译
陈随易7 小时前
Postman 被曝自动往 Claude Code 和 Codex 装插件
前端·后端·程序员
布莱克6059 小时前
C/C++ 中变量的声明与定义:区别、联系与常见误区
c语言·开发语言·c++·声明·定义
云-缩影9 小时前
拆解 AI 图像生成应用的后端架构:ECS、OSS 和大模型 API 怎么配合
java·spring boot·后端
考虑考虑10 小时前
Posrgresql恢复.backup文件
数据库·后端·postgresql
无奈何杨10 小时前
风控决策系统决策流,策略模式,权重、顺序、投票、最坏
后端
Patrick_Wilson12 小时前
Go 为什么需要 defer?从函数怎么收尾说起
后端·go·编程语言
苏三说技术12 小时前
DeepSeek Harness入驻B站,评论区被干成了大型插件集市!
后端
橙序员小站12 小时前
我一句话让 AI 把公众号工作台搭完了:部署实测记录
后端
Patrick_Wilson12 小时前
从文本输出理解 Go 方法与接口
后端·go·编程语言