全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1685
推到 Plurk!
推到 Facebook!

用class寫的井字遊戲有錯誤

尚未結案
sawwewwe
一般會員


發表:6
回覆:10
積分:3
註冊:2004-06-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-22 02:43:19 IP:220.140.xxx.xxx 未訂閱
這是之前的井字遊戲程式碼,經過指導我再用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
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-22 10:15:08 IP:202.145.xxx.xxx 未訂閱
1.程式碼未縮排,造成閱讀困難,請加上縮排 2.標題無意義,請速修改為明確有意義之標題    若近期未改善,本篇將予以刪除回收    
系統時間:2024-04-27 2:38:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!