小标
2018-09-19
来源 :
阅读 1786
评论 0
摘要:本文主要向大家介绍了C/C++知识点之c语言实现小游戏_三子棋,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
本文主要向大家介绍了C/C++知识点之c语言实现小游戏_三子棋,通过具体的内容向大家展示,希望对大家学习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;
}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!
喜欢 | 1
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号