C语言怎样实现简易三子棋

这篇文章将为大家详细讲解有关C语言怎样实现简易三子棋,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

前言

检验学习成果最好的方式是实践,在学习完C语言的函数和数组以后,就可以简易的实现一些小游戏,本文将介绍如何实现三字棋小游戏。欢迎探讨

思路分析

三子棋的规则是在3X3的棋盘里,率先将自己的三个棋子连成一条直线为赢家,程序实现的核心是玩家的落子以及输赢的判断。核心流图:当前棋盘->玩家1移动->当前棋盘->输赢判断->玩家2移动->当前棋盘->判断输赢->玩家1移动······

函数实现

玩家落子

玩家输入坐标将棋子落入棋盘中,即为向一个二维数组赋值。需要注意的时,输入的坐标不能超出数组范围,并且不能占用被输入的位置。

voidPlayerMove(charboard[ROW][COL],introw,intcol)
{
printf("玩家走:>\n");

intx=0;
inty=0;
while(1)
{
printf("请输入坐标:>");
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");
}
}
}

当前棋盘

实质是输出二维数组输出二维数组,但是为了美化棋盘,我们需要一些符号来分割棋盘,让它结构清晰。

voidDisplayBoard(charboard[ROW][COL],introw,intcol)
{
inti=0;
for(i=0;i

判断输赢

只要我们找到三个连成一条直线的棋子即可,这里选三个棋子中中间那个即可。然后判断是不是满足条件。说明:返回*,表示输入*的玩家赢;返回#,表示输入#的玩家赢;返回 Q,表示平局;返回C,表示游戏继续。

charIsWin(charboard[ROW][COL],introw,intcol){
inti,j,count=0;
for(i=0;i=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1

源码实现

#define_CRT_SECURE_NO_WARNINGS
#include
#defineROW3
#defineCOL3
voidInitBoard(charboard[ROW][COL],introw,intcol);
voidDisplayBoard(charboard[ROW][COL],introw,intcol);
voidPlayer1Move(charboard[ROW][COL],introw,intcol);
voidPlayer2Move(charboard[ROW][COL],introw,intcol);
charIsWin(charboard[ROW][COL],introw,intcol);
voidInitBoard(charboard[ROW][COL],introw,intcol)
{
inti=0;
for(i=0;i\n");

intx=0;
inty=0;
while(1)
{
printf("请输入坐标:>");
scanf("%d%d",&x,&y);//21-->10
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");
}
}
}
voidPlayer2Move(charboard[ROW][COL],introw,intcol)
{
printf("玩家1走:>\n");

intx=0;
inty=0;
while(1)
{
printf("请输入坐标:>");
scanf("%d%d",&x,&y);//21-->10
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");
}
}
}
charIsWin(charboard[ROW][COL],introw,intcol){
inti,j,count=0;
for(i=0;i=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1=0&&i+1=0&&j+1

关于“C语言怎样实现简易三子棋”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

发布于 2021-07-29 21:58:39
分享
海报
185
上一篇:使用Visual Studio进行文件差异比较的示例分析 下一篇:如何使用C语言代码实现简单三子棋游戏
目录

    忘记密码?

    图形验证码