简单棋盘游戏的源代码及其调试与解读
学号:150809224
创新互联公司-专业网站定制、快速模板网站建设、高性价比栖霞网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式栖霞网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖栖霞地区。费用合理售后完善,10余年实体公司更值得信赖。
# include
# include
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的方式来检查横行竖行以及斜行,判定完输赢后,结束程序。
当前标题:简单棋盘游戏的源代码及其调试与解读
标题链接:http://pwwzsj.com/article/pdjegh.html