這是之前的井字遊戲程式碼,經過指導我再用class改寫過的,可是run出來的結果是錯誤的,可以麻煩幫我解答嗎?
為什麼一直在跑輸入x,而無法輸入o,以及為什麼無法印出九方格,顯示輸入的o,x位置問題很多,請多包含^^
#include
using namespace std;
class Game{
public:
Game();
int x_step();
int y_step();
bool valid(int step);
bool win(int step);
private:
bool ba,bb,bc,bd,be,bf,bg,bh,bi;
char a,b,c,d,e,f,g,h,i;
char syma,symb,symc;
int z; }; Game::Game(){z=1;} int Game::x_step()
{
int step;
do{
cout<<"X's input: ";
cin>>step;
if(step>10)cout<<"Invalid move."<9));
return step;
} int Game::y_step()
{
int step;
do{
cout<<"O's input: ";
cin>>step;
if(step>10)cout<<"Invalid move."<9));
return step;
} bool Game::valid(int step)
{
bool temp=false;
switch(step)
{
case 1: temp=ba;break;
case 2: temp=bb;break;
case 3: temp=bc;break;
case 4: temp=bd;break;
case 5: temp=be;break;
case 6: temp=bf;break;
case 7: temp=bg;break;
case 8: temp=bh;break;
case 9: temp=bi;break;
}
return temp;
} bool Game::win(int step)
{
bool wi=false;
int turn;
turn=z%2;
switch(step)
{
case 1:{if(turn ==0)a=symb;else a=symc;}ba=true;break;
case 2:{if(turn ==0)b=symb;else b=symc;}bb=true;break;
case 3:{if(turn ==0)c=symb;else c=symc;}bc=true;break;
case 4:{if(turn ==0)d=symb;else d=symc;}bd=true;break;
case 5:{if(turn ==0)e=symb;else e=symc;}be=true;break;
case 6:{if(turn ==0)f=symb;else f=symc;}bf=true;break;
case 7:{if(turn ==0)g=symb;else g=symc;}bg=true;break;
case 8:{if(turn ==0)h=symb;else h=symc;}bh=true;break;
case 9:{if(turn ==0)i=symb;else i=symc;}bi=true;break;
} cout<9 && !winner)cout<<"Fair game.";
else if (((z-1)%2)==0) cout<<"O wins.";
else if (((z-1)%2)!=0) cout<<"X wins.";
return 0;
}
發表人 - sawwewwe 於 2004/11/22 12:53:27