【C语言 |五子棋】C语言实现五子棋
目录
一、问题描述
二、基本思路
三、步骤
1.菜单界面
编辑2.创建一个棋盘
3.棋盘初始化
4.打印棋盘
5.玩家落子
6.电脑落子
7.判断胜负
8.主要逻辑实现
四、代码实现
一、问题描述
用C语言实现五子棋。
二、基本思路
实现代码的逻辑
1. 进入游戏就打印出一个首页菜单要求玩家选择
2.创建一个棋盘并且初始化
3.打印出来棋盘
4.玩家通过(x,y)坐标的方式输入进行落子,电脑通过生成(x,y)随机数方式落子
5.玩家落子用 o 表示,电脑落子用 * 表示
5.判断胜负关系
三、步骤
1.菜单界面
首先玩家进入程序,不管三七二十一先打印出来菜单(可以用do while语句实现)
输入 1.play 开始游戏
输入 0.exit 退出游戏
void menu(void)
{
printf("************************\n");
printf("************************\n");
printf("*********1.play ********\n");
printf("*********0.exit ********\n");
printf("************************\n");
printf("************************\n\n");
}
2.创建一个棋盘
棋盘:用一个二维数组来创建,元素类型char
注意:使用宏定义的好处:
有助于程序的扩展性(后期需要变动只需要变动只需要修改定义的部分)
增加程序可读性
#define ROW 10
#define COL 10
char board[ROW][COL] = { 0 };
3.棋盘初始化
可以使用memset()这个库函数实现--------包含头文件 #include
复制字符 c(一个无符号字符)到参数 boarrd所指向的字符串的前 n 个字符
//这个c作用是需要初始化什么就传什么字符
void InitBoard(char board[ROW][COL],int row,int col,char c)
{
//(row*col*sizeof(board[0][0])) 行*列*单个元素大小 就是整个数组大小
memset(&board[0][0],c,row*col*sizeof(board[0][0]));
}
当然不用库函数 也可以用无脑的办法 都是可以的
void InitBoard(char board[ROW][COL],int row,int col,char c)
{
int i = 0,j = 0;
for(i = 0;i
4.打印棋盘
因为刚开始的棋盘被初始化为空白,为了美观一点,可以修饰一下
void DisplayBoard(char board[ROW][COL],int row,int col)
{
int i = 0, j = 0;
for (i = 0; i
因为我们上面定义的 ROW COL为10 --- --> 所以打印出来了10行10列
5.玩家落子
玩家输入行列坐标表示落子,使用 ’o’ 表示玩家落子
并且只能落在没有棋子的棋盘内部,代码实现如下
void PlayerMove(char board[ROW][COL],int row,int col)
{
//x坐标 y坐标
int x = 0, y = 0;
printf("玩家下棋\n");
while (1)
{
printf("请输入下棋的坐标(x,y) -> ->");
scanf("%d %d", &x, &y);
/*当满足输入的x y坐标范围时候才会进入输入并且break跳出去,否则一直在里面循环*/
if (x >= 1 && x = 1 && y = 1 && x = 1 && y
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
