iOS-五子棋

發表於2016-08-14

導讀

五子棋是程式猿比較熟悉的一款小遊戲,相信很多人大學時期就用多種語言寫過五子棋小遊戲.筆者工作閒暇之餘,試著用OC實現了一下,在這裡給大家分享一下.有不足之處,歡迎大家提供建議和指點!!!GitHub原始碼連結https://github.com/HelloYeah/Gomoku-Game

先上效果圖

  • 功能展示
    1338042-09596bfa61263b56
  • 初高階棋盤切換效果
    1338042-f841f64f67c52352

實現思路及主要程式碼詳解

1.繪製棋盤

利用Quartz2D繪製棋盤.程式碼如下

2.點選棋盤落子

1.根據落子位置求出該棋子的行號與列號.
2.判斷落子位置是否已經有棋子,有則不能下.如果沒有,將棋子儲存在字典中,以列號和行號組合起來的字串為key值.
程式碼如下

3.檢測遊戲結果

每落一個棋子就要多遊戲結果進行一次檢查,判斷四個方向上是否有大於等於5個同色的棋子連成一線,有則提示遊戲輸贏結果,無則遊戲繼續.演算法為,從當前棋子位置向前遍歷,直到遇到與自己不同色的棋子,累加同色棋子的個數,再往後遍歷,直到遇到與自己不同色的棋子,累加同色棋子的個數.得到該方向相連同色棋子的總個數
程式碼如下

4.對外提供,重新開始,悔棋,切換初高階棋盤的三個介面

重新開始

悔棋

切換初高階鍵盤

Demo中的一個小技巧

用字典存放棋子,以棋子的列號和行號組合起來的字串為key值,value值為棋子view.這樣處理,在判斷某行某列是否有棋子就非常簡單了.
GitHub原始碼地址https://github.com/HelloYeah/Gomoku-Game

相關文章