c加加中break_C/C++编程日记:逻辑井字棋(圈叉)游戏开发

问题描述

3*3的棋盘中,只要一条线上出现三个一样的棋子就获胜(玩家或电脑);如果棋盘已经放满还未出现三个棋子一条线则打成平手。

具体细节

初始化棋盘(用空格初始化)

b4faced9b1141f52406d74727d981289.png

//初始化棋盘

voidinitChess(charchessbox[ROW][COL]){ for(introw=0;row

打印棋盘

//打印棋盘

voidprintChess(charchessbox[ROW][COL]){ system("cls");printf("+---+---+---+");for(introw=0;row

电脑落子(用o表示电脑落子)

//电脑落子(用o表示)

voidcomputerMove(charchessbox[ROW][COL]){ srand(time(0));while(1){ introw=rand()%3;intcol=rand()%3;if(chessbox[row][col]==' '){ chessbox[row][col]='o';break;}}}

玩家落子

//玩家落子(用x表示)

voidplayerMove(charchessbox[ROW][COL]){ introw,col;while(1){ printf("请输入您的落子地点:");scanf("%d %d",&row,&col);if(row>=3||col>=3){ printf("您输入的落子位置有误,请重新输入:");continue;}if(chessbox[row][col]==' '){ chessbox[row][col]='x';break;}printf("该位置已有棋子,请重新输入:");}}

三个棋子一条线

74bb972e531d12745073a7c2e0963c2a.png

在一行或一列实现三个棋子一条线

//行

for(introw=0;row

for(intcol=0;col

对角线实现三个棋子一条线

if(chessbox[0][0]!=' '&&chessbox[0][0]==chessbox[1][1]&&chessbox[0][0]==chessbox[2][2]){ returnchessbox[0][0];}if(chessbox[2][0]!=' '&&chessbox[2][0]==chessbox[1][1]&&chessbox[2][0]==chessbox[0][2]){ returnchessbox[2][0];}

和棋

棋盘放满还未获胜,则为和棋,打成了平手。

在这里插入代码片//和棋 if(isFull(checkbox)){ return'a';}

72bfc1e1b97d1f0fc63beff5a7d3fa5a.png

输赢约定:

返回x代表玩家获胜

if(isWinner(chessbox)=='x'){ printf("恭喜您赢啦!");break;}

返回o代表电脑获胜

if(isWinner(chessbox)=='o'){ printf("很遗憾,您输了!");break;}

返回a代表和棋(打成平手)

if(isWinner(chessbox)=='a'){ printf("你和电脑同一水平呦!");break;}

判断棋盘是否放满:

返回1代表棋盘已满

返回0代表棋盘未满

//判断棋盘是否摆满//1表示满;0表示不满。

intisFullChess(charchessbox[ROW][COL]){ for(introw=0;row

if(chessbox[row][col]==' '){ return0;}}}return1;}

源代码:

d368065bed260fc931e639bd862b12ad.gif

如果你在学习C/C++的过程中遇到了问题,可以来加入小编的企鹅圈问小编哦~小编很热情的(●’◡’●)

a67b75b7195129a100538855d61874a7.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值