tags: App, 開發隨筆
已完成章節索引
用Swift寫圍棋App-00序
用Swift寫圍棋App-01準備工作
用Swift寫圍棋App-02建立工程
用Swift寫圍棋App-03StoryBoard
用Swift寫圍棋App-04棋盤
用Swift寫圍棋App-05初識棋譜
用Swift寫圍棋App-06解析器初版
用Swift寫圍棋App-07解析器改進
用Swift寫圍棋App-08繪制每一手棋
用Swift寫圍棋App-09分片算法
用Swift寫圍棋App-10氣的算法
用Swift寫圍棋App-11算法改進
8a7de1e5697c7072dfed881fa85b50be.jpg
開發應用首先要了解其業務領域。
對于圍棋而言,要先了解其基本規則。我將基本規則匯總如下:
- 圍棋通常由兩個人進行對局,對局時一方執黑棋,另一方執白棋。
- 圍棋應從空棋盤開始對局。
- 在現代圍棋對局中,執黑棋的一方應先下子,執白棋的一方隨后下子。
- 圍棋對局時,雙方應該輪流在棋盤上下子,每方每次只能在棋盤上下一個子。
- 棋子下在棋盤上之后就再也不能移動,直至終局。所謂“落子無悔”。
- 終局計算勝負時,圍得地多者勝。
打譜軟件邏輯稍微簡單,但是也會涉及以下的業務實體:
** 棋子**:棋子分為黑棋和白棋,黑子181個,白子180個。棋子呈圓形。中國一般使用一面平、一面凸的棋子,日本、韓國則常用兩面凸的棋子。中國云南所產的“云子”為歷來的弈者所青睞,迄今已有五百馀年的歷史。較為珍貴的棋子材料有貝殼、瑪瑙等。對弈時雙方每人使用一種顏色。每一個棋子都是平等的,不存在大小之分。
棋盤:圍棋盤由19條橫線19條豎線組成,共361個交叉點,最外邊的線稱為邊線。為了便于識別棋子的位置,棋盤上劃了九個點,術語稱做“星”,中央的星點又稱為“天元”。棋盤可分為“角”、“邊”以及“中腹”。現今的棋盤則有19×19、13×13、9×9,較為普遍,另外還有一些是較罕見的15×15、17×17。正式比賽所用棋盤為19×19,其他作為教學和練習輔助。
圍棋行棋規則:
- 棋子要下在棋盤的邊線之內(看19×19棋盤圖),邊線之外的棋子無效。
- 棋盤是由橫線和豎線組成的,橫豎相交的地方叫做交叉點,棋子只能落在交叉點上。
- 拿黑子的一方先行,雙方交替落子。任何一方不可以連續下兩手,否則判負。
先說這么多。對于打譜這個業務而言,可能差不過夠了。