您好,登录后才能下订单哦!
学号:150809224
# include <stdio.h>
# include <stdlib.h>
char matrix[3][3]; /*定义游戏棋盘 */
char check(void);
void int_matrix(void);
void get_player_move(void);
void get_computer_move(void);
void disp_matrix(void);
int main(){
char done;
printf("This is the game of Tic Tac Toe.\n");
printf("You will be playing against the computer.\n");
done = ' ';
int_matrix();
do{
disp_matrix();
get_player_move();
done = check(); /*检测输赢*/
if(done!= ' ')
break; /*赢了*/
get_computer_move();
done = check(); /*检测输赢 */
}
while (done == ' ');
if(done=='X')
printf("You won!\n");
else printf("Computer won!\n");
disp_matrix(); /*显示棋子的位置*/
return 0;
} /*初始化棋盘*/
void int_matrix(void){
int i,j;
for(i=0;i<3;i++)
for (j=0;j<3;j++)
matrix[i][j] = ' ';
} /*下棋者下*/
void get_player_move(void){
int x,y;
printf("Enter coordinates for your X:");
scanf("%d%d",&x,&y);
x--;
y--;
if(matrix[x][y] != ' '){
printf("Invalid move,try again.\n");
get_player_move();
}
else matrix[x][y]='X';
} /*计算机下*/
void get_computer_move(void){
int i,j;
for(i=0;i<3;i++)
{
for (j=0;j<3;j++)
if(matrix[i][j]== ' ')
break;
if(matrix[i][j]== ' ')
break;
}
if(i*j==9){
printf("draw\n");
exit(0);
}
else
matrix[i][j]='O';
} /*在屏幕上显示棋盘*/
void disp_matrix(void){
int t;
for(t=0;t<3;t++)
{
printf("%c|%c|%c",matrix[t][0],matrix[t][1],matrix[t][2]);
if(t!=2)printf("\n-|-|-\n");
}
printf("\n");
} /*看谁是赢者*/
char check(void){
int i; /*检查横行*/
for(i=0;i<3;i++)
if(matrix[i][0]==matrix[i][1]&&matrix[i][0]==matrix[i][2])
return matrix[i][0]; /*检查竖行*/
for(i=0;i<3;i++)
if(matrix[0][i]==matrix[1][i]&&matrix[0][i]==matrix[2][i])
return matrix[0][i]; /*检查对角线*/
if(matrix[0][0]==matrix[1][1]&&matrix[1][1]==matrix[2][2])
return matrix[0][0];
if(matrix[0][2]==matrix[1][1]&&matrix[1][1]==matrix[2][0])
return matrix[0][2];
return ' ';
} /*程序结束*/
解读:
简单棋盘游戏运用 do-else的结构体来完成电脑和玩家操作的步骤,使用if-break的结构完成玩家和计算机的输赢判断,在最后用了一个check,使用for-if的方式来检查横行竖行以及斜行,判定完输赢后,结束程序。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。