c语言小游戏三子棋,c语言实现小游戏_三子棋

游戏规则:玩家走一步,电脑走一步。当然电脑怎么走的代码也是你写的。#include 

#include 

/*******************************************************************************/

//函数功能:初始化棋盘

/*******************************************************************************/

void init_chess(char (*chess_arr)[3])

{

int i,j;

printf("游戏开始:\n");

for(i = 0;i<3;i++)

{

for(j = 0;j<3;j++)

{

*(*(chess_arr+i)+j) = ' ';

}

}

for(i = 0;i<3;i++)

{

printf(" %c | %c | %c" ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);

if(i!=2)

{

printf("\n---|---|---\n");

}

}

printf("\n");

}

/*******************************************************************************/

//函数功能:玩家输入下棋的坐标

/*******************************************************************************/

void input_player_xy(char (*chess_arr)[3],int x,int y)

{

int i = 0;

if(chess_arr[x][y]==' ')

{

chess_arr[x][y] = 'Y';

}

else

{

printf("该步以走过\n");

}

for(i = 0;i<3;i++)

{

printf(" %c | %c | %c" ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);

if(i!=2)

{

printf("\n---|---|---\n");

}

}

printf("\n");

}

/*******************************************************************************/

//函数功能:打印电脑下棋的坐标

/*******************************************************************************/

void input_computer_xy(char (*chess_arr)[3])

{

int i = 0;

for(i = 0;i<3;i++)

{

printf(" %c | %c | %c" ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);

if(i!=2)

{

printf("\n---|---|---\n");

}

}

printf("\n");

}

/*******************************************************************************/

//函数功能:确定玩家下棋的坐标

/*******************************************************************************/

void input_player(char (*chess_arr)[3])

{

int x = 0,y = 0;

printf("请下您的棋:");

scanf("%d%d",&x,&y);

input_player_xy(chess_arr,x,y);

}

/*******************************************************************************/

//函数功能:确定电脑下棋的坐标

/*******************************************************************************/

void input_computer(char (*chess_arr)[3])

{

int i =0,j = 0;

for(i = 0;i<3;i++)

{

for(j = 0;j<3;j++)

{

if(chess_arr[i][j]==' ')

{

chess_arr[i][j] = 'O';

goto flag;

}

}

}

flag:

input_computer_xy(chess_arr);

}

/*******************************************************************************/

//函数功能:主函数判断电脑还是玩家获胜

/*******************************************************************************/

int main()

{

char chess_arr[3][3];

int flag = 1;

init_chess(chess_arr);

while(flag)

{

int i = 0,j = 0;

int diag_flag_player = 0,diag_flag_computer = 0,count = 0;

input_player(chess_arr);

input_computer(chess_arr);

for(i = 0;i<3;i++)

{

if(((chess_arr[i][0]=='Y')&&(chess_arr[i][1]=='Y')&&(chess_arr[i][2]=='Y'))||

((chess_arr[0][i]=='Y')&&(chess_arr[1][i]=='Y')&&(chess_arr[2][i]=='Y'))

)

{

printf("player win!\n");

flag = 0;

break;

}

if(((chess_arr[i][0]=='O')&&(chess_arr[i][1]=='O')&&(chess_arr[i][2]=='O'))||

((chess_arr[0][i]=='O')&&(chess_arr[1][i]=='O')&&(chess_arr[2][i]=='O'))

)

{

printf("computer win!\n");

flag = 0;

break;

}

for(j = 0;j<3;j++)

{

if(chess_arr[i][j]!=' ')

{

count++;

}

}

if(chess_arr[i][i]=='Y')

{

diag_flag_player++;

}

if(chess_arr[i][2-i]=='O')

{

diag_flag_computer++;

}

}

if(diag_flag_player==3)

{

flag = 0;

printf("player win!\n");

}

if(diag_flag_computer==3)

{

flag = 0;

printf("computer win!\n");

}

if(count==9)

{

flag = 0;

printf("player equal computer!\n");

}

}

system("pause");

return 0;

}

由于让大家看的清楚,没有放在多个文件中。

我来解释电脑怎么走的:当人走完后电脑只要看见有空的位置就走。当然这个可以让电脑厉害点。代码由你来写。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值