当前位置: 首页 > news >正文

游戏三子棋

game.h 文件
#define ROW 3
#define COL 3

// 初始化棋盘
void InitBoard(char board[ROW][COL], int row, int col);
// 打印棋盘
void DisplayBoard(char board[ROW][COL], int row, int col);
// 玩家下棋
void PlayerMove(char board[ROW][COL], int row, int col);
// 电脑下棋
void ComputerMove(char board[ROW][COL], int row, int col);
game.c 文件
#include "game.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// 初始化棋盘
void InitBoard(char board[ROW][COL], int row, int col)
{
int i = 0;
int j = 0;
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
board[i][j] = ' ';
}
}
}

// 玩家下棋
void PlayerMove(char board[ROW][COL], int row, int col)
{
int x = 0;
int y = 0;
printf("玩家下棋:>\n");
printf("请输入坐标:>\n");
scanf("%d %d", &x, &y);
if (x >= 1 && x <= row && y >= 1 && y <= col)
{
if (board[x-1][y-1] == ' ')
{
board[x-1][y-1] = '*';
break;
}
else
{
printf("坐标被占用,不能下棋,请选择其他位置\n");
}
}
else
{
printf("坐标非法,请重新输入\n");
}
}

// 电脑下棋
void ComputerMove(char board[ROW][COL], int row, int col)
{
printf("电脑下棋:>\n");
int x = 0;
int y = 0;
// 生成随机坐标
x = rand() % row;
y = rand() % col;
if (board[x][y] == ' ')
{
board[x][y] = '#';
break;
}
}
test.c 文件
#include <stdio.h>
#include "game.h"
#include <stdlib.h>
#include <time.h>

// 打印菜单
void menu()
{
printf("***********************\n");
printf("******* 1. Play *******\n");
printf("******* 0. Exit *******\n");
printf("***********************\n");
}

// 游戏逻辑
void game()
{
char board[3][3] = {0};
// 初始化棋盘
InitBoard(board, 3, 3);
}

int main()
{
int input = 0;
do
{
menu(); // 打印菜单
printf("请选择:>\n");
scanf("%d", &input);
switch (input)
{
case 1:
printf("三子棋\n"); // 替换为game()
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误!\n");
break;
}
} while (input);
return 0;

}

http://www.jsqmd.com/news/73221/

相关文章:

  • Windows11制作docker linux-arm64镜像
  • Wsappx进程异常占用的深度解析与修复方案
  • Windows11安装docker
  • 2025年12月乌兹别克斯坦EAC认证,SGR认证,OTTC认证公司推荐,综合服务能力与资质解析 - 品牌鉴赏师
  • Cameralink采集软件-Espeedgrab软件应用【2.存储图片和视频】
  • 容器化部署在软件许可优化中的应用:跨部门资源共享实践
  • 2025年可观测平台选型指南:头部厂商综合测评与推荐
  • AcWing 846:树的重心 ← 类似“东方博宜OJ 2190:树的重心”代码
  • 2025年12月海关联盟GOST认证,PAC认证,工业安全认证公司推荐:合规服务测评与选择指南 - 品牌鉴赏师
  • VS2022二次元背景板痛改教程!
  • docker启动mysql及部分命令回顾
  • 狮子关的绿,藏着风与猕猴的悄悄话
  • 山西临汾卤制品制作技艺的技术路径分析
  • 12月11日日记
  • 2025最新的电子实验记录本软件,引领科研数字化变革的智能中枢
  • 【量子机器学习调试终极指南】:手把手教你用VSCode攻克QML代码难题
  • Teams Agent开发避坑指南,90%新手都会忽略的3大陷阱
  • Java学习日志--常见类库(上)
  • 浩辰CAD看图王电脑版:轻松解决CAD转PDF方向问题
  • 5个必学的Conda命令实战案例
  • 直播带货APP开发的核心流程:推流端、观看端与运营端后台搭建指南
  • 电子书免费 下载 网站 哪些
  • AI工具整体查看代码工程并给出建议
  • 2025 最新广州RYT200培训机构评测!市场主流五大瑜伽馆深度解析,权威认证 + 资深导师团榜单发布,引领专业瑜伽教学新生态 - 全局中转站
  • 用循环神经网络生成0^n 1^n形式的简单序列
  • AcWing 846:树的重心 ← 链式前向星 or 邻接表
  • PyMe是一款面向大众的可视化低代码Python开发工具
  • 251211
  • 2025最新广州创业瑜伽培训中心TOP5评测!优质瑜伽馆年度盘点,专业传承+实战赋能权威榜单发布,引领都市身心疗愈新生态 - 全局中转站
  • Python自然语言处理的未来:技术栈与开发范式