• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Jiwu Bu

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              32 隨筆 :: 0 文章 :: 25 評論 :: 0 Trackbacks
            學(xué)習(xí)C++有比較長一段時間了。閑著沒事寫了一個五子棋的稚形。目前基本已經(jīng)完成本機雙人對戰(zhàn)功能,包括悔棋,標記當(dāng)前下棋位置等。以后準備進一步完善以下功能:
            1、網(wǎng)絡(luò)對戰(zhàn)功能(包括GameClient與GameServer類,可以了解Socket編程)。
            2、人機對戰(zhàn)功能(目前還沒有好的思路)。

            棋盤等界面基本都是一筆筆畫出來的,有的是加載圖片。沒有什么技術(shù)含量,主要是比較繁瑣,權(quán)當(dāng)對以前學(xué)習(xí)的Windows消息,畫圖等的復(fù)習(xí)。
            主要用到了以下幾個類:

            棋子類(包括棋子的顏色與棋子是否使能):
             1 class CChessMan
             2 {
             3 public:
             4     CChessMan()
             5     {
             6         Reset();
             7     }
             8 
             9     void Reset()
            10     {
            11         Enable = false;
            12         Color = BLACK;
            13     }
            14 
            15     bool Enable;
            16     COLORREF Color;
            17 };

            棋盤類(管理各個棋子,判斷是否五子一線等):
             1 class CTable
             2 {
             3 public:
             4     CTable();
             5 
             6     void ResetTable();
             7     
             8     void SetChessMan(int x, int y);
             9     CChessMan GetChessMan(int x, int y) const;
            10 
            11     GAMESTATE  GetRunState() const;
            12     void SetRunState(GAMESTATE State);
            13 
            14     bool GetLastChessMan(POINT &p) const;
            15 
            16     void RegretLastStep();
            17 
            18     WINNER_SIDE GetWhiteSideWinFlag() const;
            19 
            20     void SetGameMode( GAME_MODE Mode );
            21 
            22 private:
            23     bool JudgeWinner(int x, int y) const;
            24     
            25     bool JudgeRowChessMan(int x, int y) const;
            26     bool JudgeColumnChessMan(int x, int y) const;
            27     bool JudgeLeftChessMan(int x, int y) const;
            28     bool JudgeRightChessMan(int x, int y) const;
            29     
            30     bool CalcChessmanNum(CChessMan* pChessMan, int Pos) const;
            31     
            32     void ChangeState();
            33 
            34 private:
            35     COLORREF  Color;   //當(dāng)前下棋的棋子顏色
            36     GAMESTATE  State;   //當(dāng)前游戲狀態(tài)Runing,Waiting,GameOver
            37 
            38     CChessMan pChessMan[NumOfLine][NumOfLine];   //初始化棋盤上所有棋子
            39     stack<POINT> RecordStack;   //記錄下棋軌跡,主要為悔棋使用
            40 
            41     WINNER_SIDE Winner;    //白棋與黑棋哪方獲勝
            42     GAME_MODE  Mode;  //模式,目前還只支持本機模式,預(yù)留以后網(wǎng)絡(luò)對戰(zhàn)時使用
            43 };

            具體怎么實現(xiàn),還是看代碼了。環(huán)境(Windows Xp + Visual Studio 2005)
            截個圖:

            目前還比較粗糙,以后以上二個功能完善后,再刷新上傳的代碼。歡迎大家提出好的意見,TKS!

            五子棋源碼:
            http://www.shnenglu.com/Files/bujiwu/ChessMan.rar
            posted on 2009-08-23 21:41 bujiwu 閱讀(2399) 評論(2)  編輯 收藏 引用 所屬分類: C++

            評論

            # re: 五子棋 2009-08-24 14:40 haskell
            不錯
            學(xué)網(wǎng)絡(luò)的時候我也寫過
            只有網(wǎng)絡(luò)對戰(zhàn)功能,界面WTL :)
            http://download.csdn.net/source/755156  回復(fù)  更多評論
              

            # re: 五子棋 2009-08-29 23:47 mzoozm
            支持  回復(fù)  更多評論
              

            国产精品成人99久久久久91gav| 精品国产乱码久久久久软件| 97久久国产亚洲精品超碰热| 国产亚洲色婷婷久久99精品91| 久久一区二区三区免费| 97久久香蕉国产线看观看| 久久噜噜久久久精品66| 天天综合久久久网| 久久久国产99久久国产一| 国产精品久久久99| 久久97精品久久久久久久不卡| 国产精品久久久久免费a∨| 亚洲国产精品热久久| 久久精品视频免费| 精品无码久久久久久尤物| 久久精品中文字幕久久| 久久综合久久鬼色| 亚洲日韩欧美一区久久久久我 | 久久青青色综合| 7777精品伊人久久久大香线蕉| 成人综合久久精品色婷婷| 久久久久久久久66精品片| 久久91精品国产91久| 久久久国产精华液| 亚洲乱码中文字幕久久孕妇黑人| 久久久久亚洲AV无码网站| 2021精品国产综合久久| 国产午夜精品久久久久九九| 香蕉aa三级久久毛片| 久久精品麻豆日日躁夜夜躁| 丰满少妇人妻久久久久久4| 久久人人超碰精品CAOPOREN | 亚洲欧美一区二区三区久久| 久久久久久九九99精品| 亚洲国产精品成人久久蜜臀| 国产精品久久久福利| 囯产极品美女高潮无套久久久 | 国产精品久久久久9999高清| 合区精品久久久中文字幕一区| 91久久九九无码成人网站| AAA级久久久精品无码片|