tags: App, 開發(fā)隨筆
已完成章節(jié)索引
用Swift寫圍棋App-00序
用Swift寫圍棋App-01準(zhǔn)備工作
用Swift寫圍棋App-02建立工程
用Swift寫圍棋App-03StoryBoard
用Swift寫圍棋App-04棋盤
用Swift寫圍棋App-05初識(shí)棋譜
用Swift寫圍棋App-06解析器初版
用Swift寫圍棋App-07解析器改進(jìn)
用Swift寫圍棋App-08繪制每一手棋
用Swift寫圍棋App-09分片算法
用Swift寫圍棋App-10氣的算法
用Swift寫圍棋App-11算法改進(jìn)

開發(fā)應(yīng)用首先要了解其業(yè)務(wù)領(lǐng)域。
對(duì)于圍棋而言,要先了解其基本規(guī)則。我將基本規(guī)則匯總?cè)缦拢?/p>
- 圍棋通常由兩個(gè)人進(jìn)行對(duì)局,對(duì)局時(shí)一方執(zhí)黑棋,另一方執(zhí)白棋。
- 圍棋應(yīng)從空棋盤開始對(duì)局。
- 在現(xiàn)代圍棋對(duì)局中,執(zhí)黑棋的一方應(yīng)先下子,執(zhí)白棋的一方隨后下子。
- 圍棋對(duì)局時(shí),雙方應(yīng)該輪流在棋盤上下子,每方每次只能在棋盤上下一個(gè)子。
- 棋子下在棋盤上之后就再也不能移動(dòng),直至終局。所謂“落子無悔”。
- 終局計(jì)算勝負(fù)時(shí),圍得地多者勝。
打譜軟件邏輯稍微簡單,但是也會(huì)涉及以下的業(yè)務(wù)實(shí)體:
** 棋子**:棋子分為黑棋和白棋,黑子181個(gè),白子180個(gè)。棋子呈圓形。中國一般使用一面平、一面凸的棋子,日本、韓國則常用兩面凸的棋子。中國云南所產(chǎn)的“云子”為歷來的弈者所青睞,迄今已有五百馀年的歷史。較為珍貴的棋子材料有貝殼、瑪瑙等。對(duì)弈時(shí)雙方每人使用一種顏色。每一個(gè)棋子都是平等的,不存在大小之分。
棋盤:圍棋盤由19條橫線19條豎線組成,共361個(gè)交叉點(diǎn),最外邊的線稱為邊線。為了便于識(shí)別棋子的位置,棋盤上劃了九個(gè)點(diǎn),術(shù)語稱做“星”,中央的星點(diǎn)又稱為“天元”。棋盤可分為“角”、“邊”以及“中腹”。現(xiàn)今的棋盤則有19×19、13×13、9×9,較為普遍,另外還有一些是較罕見的15×15、17×17。正式比賽所用棋盤為19×19,其他作為教學(xué)和練習(xí)輔助。
圍棋行棋規(guī)則:
- 棋子要下在棋盤的邊線之內(nèi)(看19×19棋盤圖),邊線之外的棋子無效。
- 棋盤是由橫線和豎線組成的,橫豎相交的地方叫做交叉點(diǎn),棋子只能落在交叉點(diǎn)上。
- 拿黑子的一方先行,雙方交替落子。任何一方不可以連續(xù)下兩手,否則判負(fù)。
先說這么多。對(duì)于打譜這個(gè)業(yè)務(wù)而言,可能差不過夠了。