編輯:現在解決了謝謝你triple_r和AJNeufield你對我遇到的這個問題的幫助。不知道如何循環playerturns和移動井字遊戲(C + +)
我已經瀏覽過多個網站和YouTube的相關內容,我似乎無法找到任何關於我特別尋找的內容,因爲我的程序格式與其他版本有很大不同。因此,我很難破譯我需要的東西,而我需要的東西需要我知道。
請注意,我對C++相對來說比較新,所以我會很感謝您可能會提供給我的所有反饋或批評。
此外,請注意我的代碼確實編譯並運行它只是不允許我輸入多個輸入,並且可能不允許切換玩家輪流。
快速編輯:切換代碼與triple_r建議的新設置,但我似乎已經搞砸了沿線的某處,它編譯(除了X和Y沒有被利用和一個其他錯誤),但它總是以玩家2首先開始,一旦它接收到輸入,它會自動結束分段錯誤。
#include <iostream>
#include <cstdlib>
using namespace std;
//////////////////////////////////////////////////////////
void initboard(char board[3][3])
{
int x,y;
for (x=0;x<3;x++)
for (y=0;y<3;y++)
board[x][y]=' ';
return;
}
//////////////////////////////////////////////////////////
void printboard(char board[3][3])
{
int x,y;
for (x=0;x<3;x++)
{
cout<<"\n";
for (y=0;y<3;y++)
{
cout<<" "<<board[x][y]<<" ";
if (y<2) cout<<"|";
}
if (x<2) cout<<"\n===========";
}
return;
}
//////////////////////////////////////////////////////////
void getmove(char board[3][3], int player)
{
return;
}
//////////////////////////////////////////////////////////
int main()
{
bool done=false;
char board[3][3];
int x,y,player=1,turn,playerchoice,playermark;
initboard(board);
turn=0;
do
{
if (player==1)
playermark='X';
else
playermark='O';
if (turn%2)
player=1;
else
player=2;
cout<<"Player "<<player<<" where do you want to move?: ";
cin>>playerchoice;
if (playerchoice==1)
{
board[0][0]=playermark;
}
else if (playerchoice==2)
{
board[0][1]=playermark;
}
else if (playerchoice==3)
{
board[0][2]=playermark;
}
else if (playerchoice==4)
{
board[1][0]=playermark;
}
else if (playerchoice==5)
{
board[1][1]=playermark;
}
else if (playerchoice==6)
{
board[1][2]=playermark;
}
else if (playerchoice==7)
{
board[2][0]=playermark;
}
else if (playerchoice==8)
{
board[2][1]=playermark;
}
else if (playerchoice==9)
{
board[2][2]=playermark;
}
else
{
cout<<"Invalid move ";
}
if (board[x][y]!=' ')
cout<<"Move is already taken.";
board[x][y]=playermark;
if(board[x][y]==' ')
turn++;
}while (!done);
void printboard(char board[3][3]);
return 0;
}
謝謝你的幫助,我會嘗試triple_r。 – Sollux
好吧,我按照你的建議triple_r做了,但是現在它將播放器自動設置爲播放器2,並在我輸入移動時給我分段錯誤。這是我改變它之後,當我改變它到原來的建議與開關語句,讓我不斷說這一舉措是無效的,而不是輸入移動和輸出董事會與它的動作。我應該爲你重新發布我的代碼嗎?順便說一下,我很抱歉給您帶來不便。 – Sollux
如果你重新發布你的代碼會更容易:-)你應該編輯你的問題來添加新的代碼,這樣更多的人可以看到更新後的代碼,並幫助你找到問題所在。 –