[遊戲] 自製的Android五子棋
遊戲載點:https://drive.google.com/folderview?id=0Bxh-7fIzdX14NFRNY2VfQ3I3SDQ
這是我所做的第一隻APP程式
只是單純的五子棋,同色五子連成一線就贏
有一些功能
選棋盤大小:9*9、13*13、19*19
對電腦:第一次寫電腦要判斷自己做事情的程式,搞了很久才搞定,有基本強度
讀取棋譜:每次新局、下子時讓紀錄存在SD卡裡的TXT檔,讀取時抓出來
在最新棋子標註紅點:感謝朋友提供的意見,原本跟電腦下時常不知道他下到哪
訊息顯示電腦下在哪裡
在線上標註是第幾條線,並讓它跟著滑動
放大縮小是靠著按鍵,不是用多點觸碰
悔棋:避免玩家點錯
第一次寫出可以拿得出來看的程式
希望大家可以給我一些建議或者意見,感謝
感覺離自己寫出自創遊戲還好遠...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.205.184.26
→
10/23 15:14, , 1F
10/23 15:14, 1F
我是分成直橫斜斜四個方向去存成字串,然後把黑白棋分開算
之後判斷是活二、死三、活三、連四,讓空格的地方加上分數
最後是讓他比較分數哪邊比較高去下,加上一些條件(活二以下不擋、活三必檔等等)
推
10/23 15:41, , 2F
10/23 15:41, 2F
推
10/23 15:44, , 3F
10/23 15:44, 3F
→
10/23 15:44, , 4F
10/23 15:44, 4F
推
10/23 15:48, , 5F
10/23 15:48, 5F
推
10/23 15:56, , 6F
10/23 15:56, 6F
推
10/23 16:02, , 7F
10/23 16:02, 7F
→
10/23 16:02, , 8F
10/23 16:02, 8F
如果已經連四卻不去檔的話,可能是我哪邊寫錯了
我是讓他活三以上會先去找哪邊有連四,之後找活三、死三
兩邊都沒活三以上會判斷分數高的去下
是有故意讓他比較重防守,有攻擊的機會應該也不會錯過
※ 編輯: murasakinki 來自: 123.205.184.26 (10/23 20:13)
推
10/23 21:31, , 9F
10/23 21:31, 9F

→
10/23 21:32, , 10F
10/23 21:32, 10F
→
10/23 21:50, , 11F
10/23 21:50, 11F
→
10/23 22:22, , 12F
10/23 22:22, 12F
推
10/23 22:29, , 13F
10/23 22:29, 13F
→
10/23 22:35, , 14F
10/23 22:35, 14F

→
10/23 22:37, , 15F
10/23 22:37, 15F
→
10/23 22:39, , 16F
10/23 22:39, 16F
→
10/23 22:44, , 17F
10/23 22:44, 17F
推
10/23 22:46, , 18F
10/23 22:46, 18F
推
10/24 20:17, , 19F
10/24 20:17, 19F
其實前面就講得差不多了
我是讓他每次下完棋會先判斷勝負,順便把棋子存成四個方向的字串陣列
輪到電腦時把字串陣列抓去用,開始判斷棋子的狀況
用兩個迴圈控制,第一個迴圈是第幾個字串,第二個迴圈是字串的第幾個字開頭
接著用一堆判斷式判斷分數
例如:取五個字,如果是NBBBN,就在兩個N上面加上分數
如果是NBBNN,就在三個N上面加上分數
連四、活三的分數有設得特別的高
避免被剛好有一個點有四個死三接著之類的狀況壓過分數
然後把分數存到座標上(兩種顏色、四種方向分開存)
最後就是把四個方向同座標的分數加起來,再去判斷哪些狀況可以直接下
例如連四、活三,或者可以形成雙活三以上等等
沒有的話,將電腦下的棋子加上分數,再比對兩種顏色哪個單點分數最高
如果該色單點最高分有多個點,判斷哪個點是另一色的最高分
又有多個點的話,再去隨機下其中一個點
自己覺得是用很暴力的方法去算,不知道有沒有更好的方法...
這種方法也沒辦法讓電腦判斷:
「下這裡活三對方檔,再下那裡活三對方檔,最後下這邊就可以形成死四活三了!」
這一類狀況,所以玩家故意這樣下,電腦就會一敗糊塗了
※ 編輯: murasakinki 來自: 123.205.184.26 (10/26 10:29)
推
10/26 13:22, , 20F
10/26 13:22, 20F
→
10/26 13:23, , 21F
10/26 13:23, 21F
→
10/26 13:23, , 22F
10/26 13:23, 22F
→
10/26 21:49, , 23F
10/26 21:49, 23F