您好,登錄后才能下訂單哦!
學號: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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。