日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Android 實戰項目之五子棋 附源碼

系統 3091 0

五子棋游戲五子連珠算法實現

Android 實戰項目之五子棋 附源碼

1.游戲規則

五子棋是兩個人之間進行的競技活動,黑方白方規則規則相同,黑棋必須先行, 五連子的方向為橫、豎、斜,如黑白色任一方先五子連一線則算勝出。

2. 五子連珠算法

在 9 X 9 (這里舉例子實際棋盤可以任意大小) 的游戲棋盤中 我們可以把它想象成一個二維數組,黑方下棋子后填充當前點的數組的值1,白方下棋子后填充當點的數組的值2,沒有下棋子的點在數組中值為0, 黑白雙方每走一步 則實際上在給這個二維數組賦值。 所以我們根據這個二維數組的值就可以計算出五子連珠,也可以繪制出棋盤上的黑白棋子。

玩家點擊屏幕后拿到一個屏幕的 x y 坐標 然后除以棋盤每一格的寬高 就可以得到在二維數組中的索引根據X Y 這 兩個索引就可以知道棋子下在了這個二維數組中的那里。

現在筆者帶大家分析一下五子連珠的算法, 首先要想五顆棋子連成一線必定有8種可能 接下來我們分析一下有那八中可能.

第一種:如圖所示 X軸橫向 其中橫向四顆棋子已經連成一線 左右兩邊任意下一顆棋子便五子連珠。可以用一個for循環遍歷當前X點索引 起始點為 X -4 結束點為X + 4 一共便利 9 次 如果其中5顆棋子連續則五子連珠 否則只要有一個沒連上 直接break;

X軸向

第二種:如圖所示 X軸橫向 其中左右兩邊若干棋子但是都未滿足五子連珠 但是如果將中間連上后遍滿足

所以在寫算法的時候必需以當前棋子索引 前后都要便利5遍 才能確定當前棋子后是否可以五子連珠。算法同上

X軸向

第三種:如圖所示 Y軸縱向 遍歷的時候須要從 Y - 4 到 Y + 4


Y軸向

第四種:如圖所示 Y軸縱向 同理X軸

Y軸向

第五種:如圖所示 遍歷的時候須要從(X -4) (Y- 4) 到 (X +4) (Y+4)

X軸向

第六種:如圖所示算法同上

X軸向

第七種:如圖所示 遍歷的時候須要從(X + 4) (Y+ 4) 到 (X- 4) (Y + 4)

XY軸

第八種:如圖所示算法同上

X軸向

這樣五子連珠的算法就介紹完了 下面附上我的源碼下載地址目前我沒有加上AI 有興趣的朋友我們可以一起研究研究。

源碼下載地址: http://download.csdn.net/source/3395573

Android 實戰項目之五子棋 附源碼


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 苍溪县| 朔州市| 托克托县| 嘉义市| 顺昌县| 安新县| 绩溪县| 临江市| 兖州市| 沾益县| 剑阁县| 定远县| 南投市| 方城县| 赤峰市| 大厂| 阜阳市| 聂拉木县| 平潭县| 阳城县| 苏尼特左旗| 兴化市| 宜都市| 巴马| 库尔勒市| 阳东县| 吴旗县| 余江县| 湘潭市| 中卫市| 桦川县| 宁化县| 遂川县| 齐齐哈尔市| 阳泉市| 沿河| 察哈| 石首市| 宁国市| 长治市| 大埔县|