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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8105|回復: 4
打印 上一主題 下一主題
收起左側

五子棋c++源程序 功能完整

[復制鏈接]
跳轉到指定樓層
樓主
此類簡單游戲的設計最花時間的就是要保證功能完整,讓玩家玩得盡可能舒服。
主體架構方面都沒有大問題,而在加入人機對戰、機器對戰及悔棋功能時,一些細微問題需要好好研究,不停測試。
AI等智力問題也要適中。太弱智了玩得沒激情,太聰明了玩得沒信心。
經過測試,發現再高級的AI也有輸的時候,測試的博弈樹的深度為2,再深反應會很慢,也就是說能預測兩步的AI也會輸。
剛開始找到博弈樹算法時,以為不管深度為多少都很聰明,后來發現只要找到竅門,那么深度為2的也很容易被打敗。        而深度為3的反應需要10秒,后面的深度呈指數型增長,不符合實際需求。
        游戲經過多次測試,反應良好。

PS】因馬上就要交課程設計報告,公司也很忙,以下功能等后續版本實現:
1、 據資料顯示,博弈樹算法還有很大的優化空間
2、 機器對戰,需要用到多線程
3、 聯網對戰,因為傳輸的數據量小,且要求實時、有序、可靠,因此采用TCP協議
4、 嵌入式,所在公司用的是Wince系統,改天有時間移植上去
5、 多語言界面,如果老外也喜歡五子棋的話


參考文獻【見同文件夾目錄
1、 五子棋開局指南
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.         //設置窗口大小: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




復制代碼

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



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:211258 發表于 2017-6-15 16:31 | 只看該作者
非常好
回復

使用道具 舉報

板凳
ID:219792 發表于 2017-7-14 23:58 | 只看該作者
非常NICE 的code
回復

使用道具 舉報

地板
ID:241026 發表于 2017-10-19 19:03 | 只看該作者
想試試這個,作為初學者
回復

使用道具 舉報

5#
ID:269927 發表于 2018-1-1 22:43 | 只看該作者
贊,這個代碼可以學習一下啊
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费在线观看一区二区 | 中文字幕精品一区二区三区精品 | 久久精品一区 | 91婷婷韩国欧美一区二区 | 亚洲 中文 欧美 | 一区二区三区四区电影视频在线观看 | 成人在线精品视频 | 国产精品久久久久久久久久久免费看 | 久久国产综合 | 日韩电影中文字幕在线观看 | 羞羞在线观看视频 | 国产精品久久久久久吹潮 | 天天操夜夜操 | 亚洲一区二区三区在线观看免费 | 午夜视频在线 | 天天弄天天操 | 亚洲网在线 | 天天爽一爽 | www.国产| 成人在线视频免费观看 | 国产精品久久久久久福利一牛影视 | 中文字幕高清一区 | 在线免费av观看 | 一区二区三区免费 | 成人av观看| 一区精品国产欧美在线 | 日韩成人免费 | 欧美性网 | 看片91| 欧美a区 | 99免费在线观看视频 | 亚洲视频www | 欧美精品久久久久 | 午夜影院在线观看版 | 中文字幕国产一区 | 狠狠入ady亚洲精品经典电影 | 日本视频免费 | 婷婷综合网 | 午夜视频在线 | 欧美精品一区三区 | 福利视频日韩 |