所以我正在為 C 語言中的 2 個玩家撰寫一個井字游戲,但我不知道要輸入什么公式,所以當我第二次列印陣列時,“X”或“O”替換了數字在那里之前這里是程式:
#include <stdio.h>
void main(){
char plateau[3][3]={
{'1','2','3'},
{'4','5','6'},
{'7','8','9'}
};
int t=0;
char choix1;
char choix2;
int i , j , k;
printf("-------------------------------------------------------------------\n");
for(t=0;t<9;t ){
if(t%2==0){
for(int i=0;i<3;i ){
for(int j=0;j<3;j ){
printf(" %c ",plateau[i][j] );
}
printf("\n");
}
printf("Turn > Player n1 what case do you want to play?");
scanf(" %c",&choix1);
printf("\n");
int i=;
int j=;
plateau[i][j]='X';
}
if(t%2!=0){
for(int i=0;i<3;i ){
for(int j=0;j<3;j ){
printf(" %c ",plateau[i][j] );
}
printf("\n");
}
printf("\nTurn > Player n2 what case do you want to play?");
scanf(" %c",&choix2);
printf("\n");
}
}
}
所以這
int i=;
int j=;
plateau[i][j]='X';
}
就像我需要一個公式,對于 int i,如果 choix1 是 {1||2||3} 那么 i 將是 0 ,如果 choix1 是 {4||5||6} 那么它將是 1 。與 j 相同。
這就像它應該是什么樣子(請注意,我預先確定了 X 的位置,因為它不是來自輸入):
1 2 3
4 5 6
7 8 9
Turn > Player n1 what case do you want to play?1
1 2 3
4 5 6
X 8 9
Turn > Player n2 what case do you want to play?^C
我試圖用 if 陳述句來做,但沒有成功,這是我的嘗試:
printf("Turn > Player n1 what case do you want to play?");
scanf(" %c",&choix1);
printf("\n");
if(choix1 ==1||choix1==2||choix1==3){
int i=0;}
if(choix1 ==4||choix1==5|choix1==6){
int i=1;}
if(choix1 ==7||choix1==8||choix1==9){
int i=2;}
if(choix1 ==1||choix1==4||choix1==7){
int j=0;}
if(choix1 ==2||choix1==5|choix1==8){
int j=1;}
if(choix1 ==3||choix1==6||choix1==9){
int j=2;}
plateau[i][j]='X';
}
如果有人可以幫助我或引導我找到答案,我們將不勝感激。
uj5u.com熱心網友回復:
你的嘗試非常接近作業 你的主要問題是你寫了int額外的時間。
當您撰寫 時int i=0;,這是一個名為新變數的定義,該變數i僅在定義它的塊內可見。
如果要更改現有變數的值(也稱為“為變數賦值”),只需執行以下操作:
i = 0;
另外,我強烈建議清理您的縮進和空格。
采納此建議后,您的代碼將類似于:
int i = 0, j = 0;
if (choix1 == 1 || choix1 == 2 || choix1 == 3) {
i = 0;
}
...
plateau[i][j] = 'X';
你的 if 陳述句的大串列應該可以正常作業。但是,如果您在完成作業后需要幫助來簡化它,您可以詢問Code Review。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/368934.html
標籤:C
