久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 五子棋c++源程序 功能完整 [打印本頁(yè)]

作者: fxb    時(shí)間: 2017-6-6 18:25
標(biāo)題: 五子棋c++源程序 功能完整
此類簡(jiǎn)單游戲的設(shè)計(jì)最花時(shí)間的就是要保證功能完整,讓玩家玩得盡可能舒服。
主體架構(gòu)方面都沒(méi)有大問(wèn)題,而在加入人機(jī)對(duì)戰(zhàn)、機(jī)器對(duì)戰(zhàn)及悔棋功能時(shí),一些細(xì)微問(wèn)題需要好好研究,不停測(cè)試。
AI等智力問(wèn)題也要適中。太弱智了玩得沒(méi)激情,太聰明了玩得沒(méi)信心。
經(jīng)過(guò)測(cè)試,發(fā)現(xiàn)再高級(jí)的AI也有輸?shù)臅r(shí)候,測(cè)試的博弈樹(shù)的深度為2,再深反應(yīng)會(huì)很慢,也就是說(shuō)能預(yù)測(cè)兩步的AI也會(huì)輸。
剛開(kāi)始找到博弈樹(shù)算法時(shí),以為不管深度為多少都很聰明,后來(lái)發(fā)現(xiàn)只要找到竅門,那么深度為2的也很容易被打敗。        而深度為3的反應(yīng)需要10秒,后面的深度呈指數(shù)型增長(zhǎng),不符合實(shí)際需求。
        游戲經(jīng)過(guò)多次測(cè)試,反應(yīng)良好。

PS】因馬上就要交課程設(shè)計(jì)報(bào)告,公司也很忙,以下功能等后續(xù)版本實(shí)現(xiàn):
1、 據(jù)資料顯示,博弈樹(shù)算法還有很大的優(yōu)化空間
2、 機(jī)器對(duì)戰(zhàn),需要用到多線程
3、 聯(lián)網(wǎng)對(duì)戰(zhàn),因?yàn)閭鬏數(shù)臄?shù)據(jù)量小,且要求實(shí)時(shí)、有序、可靠,因此采用TCP協(xié)議
4、 嵌入式,所在公司用的是Wince系統(tǒng),改天有時(shí)間移植上去
5、 多語(yǔ)言界面,如果老外也喜歡五子棋的話


參考文獻(xiàn)【見(jiàn)同文件夾目錄
1、 五子棋開(kāi)局指南
2、 維基百科:Alpha-Beta剪枝算法



c++源程序如下:
  1. // MainFrm.cpp : implementation of the CMainFrame class
  2. //

  3. #include "stdafx.h"
  4. #include "3_1.h"

  5. #include "MainFrm.h"

  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif

  11. /////////////////////////////////////////////////////////////////////////////
  12. // CMainFrame

  13. IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

  14. BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
  15.         //{{AFX_MSG_MAP(CMainFrame)
  16.         ON_WM_CREATE()
  17.         //}}AFX_MSG_MAP
  18. END_MESSAGE_MAP()

  19. static UINT indicators[] =
  20. {
  21.         ID_SEPARATOR,           // status line indicator
  22.         ID_INDICATOR_CAPS,
  23.         ID_INDICATOR_NUM,
  24.         ID_INDICATOR_SCRL,
  25. };

  26. /////////////////////////////////////////////////////////////////////////////
  27. // CMainFrame construction/destruction

  28. CMainFrame::CMainFrame()
  29. {
  30.         // TODO: add member initialization code here
  31.        
  32. }

  33. CMainFrame::~CMainFrame()
  34. {
  35. }

  36. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  37. {
  38.         if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  39.                 return -1;
  40.        
  41.         if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
  42.                 | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
  43.                 !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
  44.         {
  45.                 TRACE0("Failed to create toolbar\n");
  46.                 return -1;      // fail to create
  47.         }

  48.         if (!m_wndStatusBar.Create(this) ||
  49.                 !m_wndStatusBar.SetIndicators(indicators,
  50.                   sizeof(indicators)/sizeof(UINT)))
  51.         {
  52.                 TRACE0("Failed to create status bar\n");
  53.                 return -1;      // fail to create
  54.         }

  55.         // TODO: Delete these three lines if you don't want the toolbar to
  56.         //  be dockable
  57.         m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
  58.         EnableDocking(CBRS_ALIGN_ANY);
  59.         DockControlBar(&m_wndToolBar);
  60.     //添加白棋圖像
  61. //        m_wndStatusBar.GetStatusBarCtrl().SetIcon(0,AfxGetApp()->LoadIcon(IDI_WHITE));
  62.         //顯示文字
  63. //        m_wndStatusBar.SetPaneText(0,"白棋下");
  64.    
  65.         return 0;
  66. }

  67. BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  68. {
  69.         if( !CFrameWnd::PreCreateWindow(cs) )
  70.                 return FALSE;
  71.         // TODO: Modify the Window class or styles here by modifying
  72.         //  the CREATESTRUCT cs
  73.         cs.dwExStyle=cs.dwExStyle|WS_EX_TOPMOST;        //
  74.         cs.style=WS_SYSMENU|WS_OVERLAPPED|WS_MINIMIZEBOX;//;
  75.         //設(shè)置窗口大小:400*340
  76.         cs.cx=450;
  77.         cs.cy=500;   
  78.         return TRUE;
  79. }

  80. /////////////////////////////////////////////////////////////////////////////
  81. // CMainFrame diagnostics

  82. #ifdef _DEBUG
  83. void CMainFrame::AssertValid() const
  84. {
  85.         CFrameWnd::AssertValid();
  86. }

  87. void CMainFrame::Dump(CDumpContext& dc) const
  88. {
  89.         CFrameWnd::Dump(dc);
  90. }

  91. #endif //_DEBUG

  92. /////////////////////////////////////////////////////////////////////////////
  93. // CMainFrame message handlers




復(fù)制代碼

所有資料51hei提供下載:
3_1.zip (108.13 KB, 下載次數(shù): 63)




作者: 348652560    時(shí)間: 2017-6-15 16:31
非常好
作者: neostrata    時(shí)間: 2017-7-14 23:58
非常NICE 的code

作者: 原來(lái)愛(ài)么    時(shí)間: 2017-10-19 19:03
想試試這個(gè),作為初學(xué)者

作者: harvard    時(shí)間: 2018-1-1 22:43
贊,這個(gè)代碼可以學(xué)習(xí)一下啊




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: av中文字幕在线 | 久久精品国产a三级三级三级 | 成人午夜av | 99亚洲精品| www.788.com色淫免费 | 久久久久电影 | 亚洲免费一区 | 男人久久天堂 | 日韩一区二区三区四区五区 | 另类专区亚洲 | 中文字幕精品一区 | 久久日韩精品一区二区三区 | 亚洲精彩视频在线观看 | 国产高清在线视频 | 蜜臀91视频| 天天综合永久 | 亚洲精品欧美精品 | 成年人在线观看 | 羞视频在线观看 | 亚洲国产欧美国产综合一区 | 91看片网站| 久久国产亚洲 | 亚洲国产欧美在线 | 亚洲综合天堂网 | 国产精品一区二区av | 亚洲欧美日韩精品久久亚洲区 | 国产一级特黄真人毛片 | 成人免费淫片aa视频免费 | 日本三级网站在线 | 国产日韩一区二区三区 | 九九热在线免费视频 | 久久精品国产久精国产 | av黄在线观看 | 精品国产乱码久久久久久图片 | 亚洲国产在 | 高清国产一区二区 | 日韩中文一区 | 欧美色专区 | www.亚洲成人网 | 色吧久久 | 一区二区久久 |