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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5084|回復: 0
收起左側

掃雷AI核心代碼(不讀內存完全擬人按數字邏輯去解)

[復制鏈接]
ID:72008 發表于 2015-1-11 19:53 | 顯示全部樓層 |閱讀模式
這是掃雷算法的后臺數據處理,前臺的模擬按鍵和讀棋盤信息由按鍵精靈完成
解決了一個大家寫com組件時不能以數組做參數或返回值的難題
至于怎么處理的方法全在源碼中就不解釋了





  1. /*********************************************************************
  2. 歡迎您為按鍵精靈制作插件!
  3. 這是按鍵精靈的插件模板 091026版
  4. 請編譯Release版的插件使用,Debug版的插件會導致按鍵精靈出現異常錯誤
  5.    如果有其他問題,歡迎通過以下方式和我們取得聯系
  6. Email: hi@vrbrothers.com
  7. 論壇: bbs.ajjl.cn

  8. 插件模板更新記錄:
  9. 091026
  10. 解決由于MFC的功能不完善導致所有的插件函數都在主線程中執行的問題。
  11. 這個問題會導致插件效率低下,而且可能互相阻塞,甚至阻塞主線程。
  12. *********************************************************************/
  13. #include "stdafx.h"
  14. #include "CQMPlugin.h"
  15. #include "QMLibraryStub.h"
  16. #ifdef _DEBUG
  17. #define new DEBUG_NEW
  18. #undef THIS_FILE
  19. static char THIS_FILE[] = __FILE__;
  20. #endif
  21. BEGIN_MESSAGE_MAP(CQMPlugin, CCmdTarget)
  22. //{{AFX_MSG_MAP(CQMPlugin)
  23. //}}AFX_MSG_MAP
  24. END_MESSAGE_MAP()
  25. #ifdef _DEBUG
  26. #pragma comment(lib,"CommonLibD.lib")
  27. #else
  28. #pragma comment(lib,"CommonLib.lib")
  29. #endif
  30. BEGIN_DISPATCH_MAP(CQMPlugin, CCmdTarget)
  31. DISP_FUNCTION(CQMPlugin, "Get_Plugin_Description", GetPluginDescription, VT_BSTR, VTS_BSTR)
  32. DISP_FUNCTION(CQMPlugin, "Get_Plugin_Interpret_Template", GetPluginInterpretTemplate, VT_BSTR, VTS_BSTR)
  33. //{{AFX_DISPATCH_MAP(CQMPlugin)
  34. DISP_FUNCTION(CQMPlugin, "tishi", tishi, VT_EMPTY, VTS_BSTR)
  35. DISP_FUNCTION(CQMPlugin, "leigeset", leigeset, VT_EMPTY, VTS_I4 VTS_I4 VTS_I4)
  36. DISP_FUNCTION(CQMPlugin, "leigeget", leigeget, VT_I4, VTS_I4 VTS_I4)
  37. DISP_FUNCTION(CQMPlugin, "leizhengjs", leizhengjs, VT_EMPTY, VTS_NONE)
  38. //}}AFX_DISPATCH_MAP
  39. END_DISPATCH_MAP()
  40. IMPLEMENT_OLECREATE(CQMPlugin, "QMPlugin.saoleiDLL", 0x1117E497, 0x126E, 0x4FC8, 0xB4, 0x30, 0x1C, 0x61, 0x43, 0x48, 0x4A, 0xA9)
  41. BOOL g_bEnablePluginValidate = TRUE;
  42. /*********************************************************************
  43. 按鍵精靈的每個插件可以支持若干條命令。
  44. 如果您需要寫一條自己的命令,需要遵循以下步驟:
  45. 1. 打開文件CQMPlugin.cpp,就是您現在看到的這個文件
  46. 2. 在Visual C++ 6.0的菜單中選擇 View->ClassWizard
  47. 3. 在彈出的對話框中選擇Automation面板,按Add Method按鈕
  48. 4. 依次填寫您的插件函數的名字、返回類型和參數類型
  49.     需要注意的是,如果返回值是字符串類型,請選擇BSTR
  50.     如果參數是字符串類型,請選擇LPCTSTR
  51.     如果需要傳地址的參數(可用于返回多個值),參數類型請選擇VARIANT*,如下面的GetScreenResolution插件函數所示
  52. 5. 按OK按鈕,您會看到CQMPlugin.cpp有了一個空白的函數,您只需要填寫函數功能即可
  53. 6. 您也可以在Automation面板中選擇刪除某個已有的函數,并同時在下面的程序中刪除對應的函數體
  54. 7. 在下面的m_DescriptionList表格中填寫您的插件說明和函數說明
  55. 8. 編譯形成DLL文件,把DLL文件放在按鍵精靈的Plugin目錄下
  56. 9. 打開按鍵精靈,進入編輯腳本界面,打開“插件命令”面板,編寫腳本測試你的插件!
  57. *********************************************************************/
  58. /*********************************************************************
  59. * 名稱:m_DescriptionList
  60. * 你可以把它看成一個表格,表格中的每一行代表了一條插件命令。
  61. * 每行第一個字符串是插件命令的名字(如果為空,則代表整個插件);第二個字符串是這條插件命令的解釋;
  62. * 第三個字符串是插件命令的顯示模板信息,其中的$1 $2 ... 等內容在顯示時將用第一個參數、第二個參數、... 代替
  63. * 當你需要新增一條插件命令的時候,就需要在表格里面加一行。
  64. *********************************************************************/
  65. CQMPlugin::DESCRIPTION_LIST CQMPlugin::m_DescriptionList[] =
  66. {
  67. {"","掃雷算法",""},
  68. {"tishi","彈窗提示","提示內容"},
  69. {"leigeset","設置雷格狀態","雷格Y坐標雷格X坐標雷格狀態值"},
  70. {"leigeget","返回雷格狀態","雷格Y坐標雷格X坐標"},
  71. {"leizhengjs","計算雷陣信息返回能翻開的雷格坐標",""},
  72. };
  73. //這行您不需要修改
  74. const int CQMPlugin::m_iDescriptionListSize = sizeof(CQMPlugin::m_DescriptionList) / sizeof(CQMPlugin::DESCRIPTION_LIST);
  75. /*********************************************************************
  76. * 下面是各個插件命令的處理函數,函數名和插件名是對應的。
  77. * 如果要增加一個插件命令,通常Visual C++會幫您寫一個空的處理函數
  78. * 如果要刪除一個插件命令,別忘了把對應的處理函數也一起刪掉。
  79. *********************************************************************/
  80. /*********************************************************************
  81. * 下面是公共處理函數。
  82. * OnLoad 函數會在插件被加載時調用,返回值通常為TRUE。如果返回FALSE,表示插件拒絕被加載
  83. * OnLoad 函數的第一個參數表示加載動態鏈接庫的Instance Handle,第二個參數暫時保留
  84. * OnExit 函數會在插件被卸載是調用,沒有返回值
  85. *********************************************************************/
  86. BOOL OnLoad(HMODULE hModule, int iReserved)
  87. {
  88. return TRUE;
  89. }
  90. void OnExit()
  91. {
  92. return;
  93. }
  94. //////////////////////////////////////////////////////////////////////
  95. //                      掃雷算法插件
  96. //                                   BY:DEBUG   2014/9/12
  97. //////////////////////////////////////////////////////////////////////
  98. void CQMPlugin::tishi(LPCTSTR str)
  99. {
  100. //提供一個彈窗口提示方法
  101. AfxMessageBox(str);
  102. }
  103. //////////////////////////////////////////////////////////////////////
  104. long leizheng[16][30]; //保存雷陣輸入信息的全局變量
  105. long leizhengout[16][30];//保存計算后雷陣的輸出信息
  106. /////////////////////////////////////////////////////////////////////
  107. void CQMPlugin::leigeset(long Y, long X, long zhi)
  108. {
  109. // 提供設置雷格信息的方法
  110. leizheng[Y][X]=zhi;
  111. }
  112. //////////////////////////////////////////////////////////////////////
  113. long CQMPlugin::leigeget(long Y, long X)
  114. {
  115. // 提供返回計算后的雷格信息的方法    88表示能翻開  44表示確定為雷格提示標記 0不做任何操作
  116. // 必須先調用計算雷陣方法后再掉用這個方法
  117. return leizhengout[Y][X];
  118. }
  119. //////////////////////////////////////////////////////////////////////
  120. void CQMPlugin::leizhengjs()
  121. {
  122. // 提供一個雷陣信息計算的方法,在對象獲取玩所有雷格信息后才能調用此方法
  123.     long i;
  124. long j;
  125. for(i=0;i<16;i++)
  126.   for(j=0;j<30;j++)
  127.   {
  128.    //清零輸出數組
  129.    leizhengout[i][j]=0;
  130.   }
  131. //開始判定翻開與否
  132.     for(i=0;i<16;i++)
  133.   for(j=0;j<30;j++)
  134.   {
  135.             if(i>=1&&j>=1&&i<=14&&j<=28)
  136.    {
  137.     //不是邊界上的4行
  138.     long leibiao=0;//周邊已經確定的地雷個數
  139.     //統計九宮格內地雷的個數
  140.     if(leizheng[i-1][j-1]==9) leibiao++;//左上
  141.                 if(leizheng[i-1][j]==9) leibiao++;//上
  142.     if(leizheng[i-1][j+1]==9) leibiao++;//右上
  143.                 if(leizheng[i][j-1]==9) leibiao++;//左
  144.                 if(leizheng[i][j+1]==9) leibiao++;//右
  145.                 if(leizheng[i+1][j-1]==9) leibiao++;//左下
  146.                 if(leizheng[i+1][j]==9) leibiao++;//下
  147.                 if(leizheng[i+1][j+1]==9) leibiao++;//左下
  148.     long hei=0;//周邊未翻開的雷格數
  149.     //統計九宮格內未翻開的雷格數
  150.                 if(leizheng[i-1][j-1]==10) hei++;//左上
  151.                 if(leizheng[i-1][j]==10) hei++;//上
  152.     if(leizheng[i-1][j+1]==10) hei++;//右上
  153.                 if(leizheng[i][j-1]==10) hei++;//左
  154.                 if(leizheng[i][j+1]==10) hei++;//右
  155.                 if(leizheng[i+1][j-1]==10) hei++;//左下
  156.                 if(leizheng[i+1][j]==10) hei++;//下
  157.                 if(leizheng[i+1][j+1]==10) hei++;//左下
  158.        ////////////////////////////////////////////////
  159.     if(leizheng[i][j]==1&&hei==1)
  160.     {
  161.      //周圍只有一個雷且周圍只剩一個未翻開的雷格確定一個地雷并在輸出數組中做標記
  162.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=44;//左上
  163.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=44;//上
  164.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=44;//右上
  165.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=44;//左
  166.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=44;//右
  167.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=44;//左下
  168.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=44;//下
  169.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=44;//左下
  170.     }
  171.                 if(leizheng[i][j]==1&&leibiao==1)
  172.     {
  173.                  //周圍只有一個雷且周圍已經標記了一個地雷就把周圍其它未翻開的雷格翻開
  174.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=88;//左上
  175.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=88;//上
  176.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=88;//右上
  177.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=88;//左
  178.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=88;//右
  179.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=88;//左下
  180.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=88;//下
  181.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=88;//左下
  182.     }
  183.                 ////////////////////////////////////////////////////////////////
  184.                 if((leizheng[i][j]==2&&hei==2&&leibiao==0)||(leizheng[i][j]==(leibiao+hei)))
  185.     {
  186.      //周圍只有2個雷且周圍只剩2個未翻開的雷格,或者周圍未翻開和已經標記為地雷的和等于雷格狀態值則確定一組地雷并在輸出數組中做標記
  187.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=44;//左上
  188.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=44;//上
  189.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=44;//右上
  190.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=44;//左
  191.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=44;//右
  192.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=44;//左下
  193.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=44;//下
  194.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=44;//左下
  195.     }
  196.                 if(leizheng[i][j]==2&&leibiao==2)
  197.     {
  198.                  //周圍只有2個雷且周圍已經標記了2個地雷就把周圍其它未翻開的雷格翻開
  199.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=88;//左上
  200.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=88;//上
  201.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=88;//右上
  202.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=88;//左
  203.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=88;//右
  204.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=88;//左下
  205.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=88;//下
  206.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=88;//左下
  207.     }
  208.     ////////////////////////////////////////////////////////////////////
  209.                 if((leizheng[i][j]==3&&hei==3&&leibiao==0)||(leizheng[i][j]==(leibiao+hei)))
  210.     {
  211.      //周圍只有3個雷且周圍只剩3個未翻開的雷格,或者周圍未翻開和已經標記為地雷的和等于雷格狀態值則確定一組地雷并在輸出數組中做標記
  212.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=44;//左上
  213.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=44;//上
  214.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=44;//右上
  215.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=44;//左
  216.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=44;//右
  217.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=44;//左下
  218.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=44;//下
  219.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=44;//左下
  220.     }
  221.                 if(leizheng[i][j]==3&&leibiao==3)
  222.     {
  223.                  //周圍只有3個雷且周圍已經標記了3個地雷就把周圍其它未翻開的雷格翻開
  224.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=88;//左上
  225.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=88;//上
  226.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=88;//右上
  227.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=88;//左
  228.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=88;//右
  229.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=88;//左下
  230.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=88;//下
  231.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=88;//左下
  232.     }
  233.                 ////////////////////////////////////////////////////////////////////
  234.                 if((leizheng[i][j]==4&&hei==4&&leibiao==0)||(leizheng[i][j]==(leibiao+hei)))
  235.     {
  236.      //周圍只有4個雷且周圍只剩4個未翻開的雷格,或者周圍未翻開和已經標記為地雷的和等于雷格狀態值則確定一組地雷并在輸出數組中做標記
  237.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=44;//左上
  238.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=44;//上
  239.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=44;//右上
  240.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=44;//左
  241.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=44;//右
  242.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=44;//左下
  243.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=44;//下
  244.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=44;//左下
  245.     }
  246.                 if(leizheng[i][j]==4&&leibiao==4)
  247.     {
  248.                  //周圍只有4個雷且周圍已經標記了4個地雷就把周圍其它未翻開的雷格翻開
  249.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=88;//左上
  250.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=88;//上
  251.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=88;//右上
  252.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=88;//左
  253.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=88;//右
  254.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=88;//左下
  255.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=88;//下
  256.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=88;//左下
  257.     }
  258.                 ////////////////////////////////////////////////////////////////////
  259.                 if((leizheng[i][j]==5&&hei==5&&leibiao==0)||(leizheng[i][j]==(leibiao+hei)))
  260.     {
  261.      //周圍只有5個雷且周圍只剩5個未翻開的雷格,或者周圍未翻開和已經標記為地雷的和等于雷格狀態值則確定一組地雷并在輸出數組中做標記
  262.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=44;//左上
  263.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=44;//上
  264.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=44;//右上
  265.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=44;//左
  266.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=44;//右
  267.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=44;//左下
  268.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=44;//下
  269.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=44;//左下
  270.     }
  271.                 if(leizheng[i][j]==5&&leibiao==5)
  272.     {
  273.                  //周圍只有5個雷且周圍已經標記了5個地雷就把周圍其它未翻開的雷格翻開
  274.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=88;//左上
  275.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=88;//上
  276.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=88;//右上
  277.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=88;//左
  278.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=88;//右
  279.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=88;//左下
  280.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=88;//下
  281.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=88;//左下
  282.     }
  283.                 ////////////////////////////////////////////////////////////////////
  284.                 if((leizheng[i][j]==6&&hei==6&&leibiao==0)||(leizheng[i][j]==(leibiao+hei)))
  285.     {
  286.      //周圍只有6個雷且周圍只剩6個未翻開的雷格,或者周圍未翻開和已經標記為地雷的和等于雷格狀態值則確定一組地雷并在輸出數組中做標記
  287.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=44;//左上
  288.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=44;//上
  289.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=44;//右上
  290.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=44;//左
  291.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=44;//右
  292.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=44;//左下
  293.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=44;//下
  294.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=44;//左下
  295.     }
  296.                 if(leizheng[i][j]==6&&leibiao==6)
  297.     {
  298.                  //周圍只有6個雷且周圍已經標記了6個地雷就把周圍其它未翻開的雷格翻開
  299.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=88;//左上
  300.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=88;//上
  301.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=88;//右上
  302.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=88;//左
  303.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=88;//右
  304.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=88;//左下
  305.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=88;//下
  306.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=88;//左下
  307.     }
  308.                 ////////////////////////////////////////////////////////////////////
  309.                 if((leizheng[i][j]==7&&hei==7&&leibiao==0)||(leizheng[i][j]==(leibiao+hei)))
  310.     {
  311.      //周圍只有7個雷且周圍只剩7個未翻開的雷格,或者周圍未翻開和已經標記為地雷的和等于雷格狀態值則確定一組地雷并在輸出數組中做標記
  312.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=44;//左上
  313.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=44;//上
  314.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=44;//右上
  315.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=44;//左
  316.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=44;//右
  317.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=44;//左下
  318.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=44;//下
  319.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=44;//左下
  320.     }
  321.                 if(leizheng[i][j]==7&&leibiao==7)
  322.     {
  323.                  //周圍只有7個雷且周圍已經標記了7個地雷就把周圍其它未翻開的雷格翻開
  324.                     if(leizheng[i-1][j-1]==10) leizhengout[i-1][j-1]=88;//左上
  325.                     if(leizheng[i-1][j]==10) leizhengout[i-1][j]=88;//上
  326.           if(leizheng[i-1][j+1]==10) leizhengout[i-1][j+1]=88;//右上
  327.                     if(leizheng[i][j-1]==10) leizhengout[i][j-1]=88;//左
  328.                     if(leizheng[i][j+1]==10) leizhengout[i][j+1]=88;//右
  329.                     if(leizheng[i+1][j-1]==10) leizhengout[i+1][j-1]=88;//左下
  330.                     if(leizheng[i+1][j]==10) leizhengout[i+1][j]=88;//下
  331.                     if(leizheng[i+1][j+1]==10) leizhengout[i+1][j+1]=88;//左下
  332.     }
  333.    }
  334.   }
  335. }
復制代碼



相關帖子

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91一区二区三区 | 狠狠色网| 久久久成人网 | 亚洲在线电影 | 中文字幕一区二区三区乱码图片 | 久草.com | 午夜影院网站 | 免费a v网站 | 精品久久久久久18免费网站 | 国产永久免费 | 日韩欧美精品一区 | 不卡视频在线 | 亚洲成人综合在线 | 亚洲毛片在线观看 | 国内精品在线视频 | 国产你懂的在线观看 | 久久久国产精品一区 | 国产成人精品一区二区三区 | 一色桃子av一区二区 | 二区三区av | 亚洲精品久久久久久下一站 | 中文字幕av一区二区三区 | 国产美女自拍视频 | 精品视频免费 | 欧美日韩不卡合集视频 | 蜜桃精品噜噜噜成人av | 成人精品国产一区二区4080 | 在线激情视频 | 午夜黄色| 99re在线视频精品 | 久草中文在线观看 | 国产成人精品一区二区三区在线 | 成人免费在线观看 | 日韩在线综合 | 96国产精品久久久久aⅴ四区 | 午夜伦理影院 | 在线免费看91 | 黄网站在线观看 | 天天插天天舔 | 97视频在线观看免费 | 99久9|