1、掃描整個(gè)棋盤,分別掃描四個(gè)方向是否有5個(gè)連子。網(wǎng)上找了很多五子棋源碼都是用此算法,這意味著每下一個(gè)棋子都要掃描一遍19×19的棋盤,復(fù)雜而且低效,代碼略。
成都創(chuàng)新互聯(lián)是一家以重慶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、成都網(wǎng)站推廣、小程序App開發(fā)等移動(dòng)開發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為成都效果圖設(shè)計(jì)等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。
2、這個(gè)算法沒有考慮黑棋的禁手(雙雙四和多于五子的連棋)。因?yàn)樵谄綍r(shí)我下的五子棋是沒有這些 禁手的。
3、cinc;if(c==y||c==Y)//main(); //調(diào)用main函數(shù),我沒試過。。
我有個(gè)簡(jiǎn)單的思路: 先定義一條線上棋子的各種布局,比如初步定義長(zhǎng)度為五個(gè)子 ◎◎◎● ◎◎●◎× ◎●◎×× ◎×◎×◎ 等等。白圈是自己的子,黑圈是對(duì)方的子,叉子是未走的格子。
在這個(gè)算法中我只考慮了周圍有棋子的點(diǎn),而其它點(diǎn)我沒有考慮。
簡(jiǎn)單的AI算法就是:只考慮一步棋,先假定在某處落子,改變棋盤狀態(tài),再用估值函數(shù)對(duì)新的棋盤狀態(tài)打分,取最優(yōu)的那一步。
1、這個(gè)算法沒有考慮黑棋的禁手(雙雙四和多于五子的連棋)。因?yàn)樵谄綍r(shí)我下的五子棋是沒有這些 禁手的。
2、右邊第四個(gè)子,如果有連續(xù)的5個(gè)子(通過count2或3的值來判斷)就算贏了。
3、我有個(gè)簡(jiǎn)單的思路: 先定義一條線上棋子的各種布局,比如初步定義長(zhǎng)度為五個(gè)子 ◎◎◎● ◎◎●◎× ◎●◎×× ◎×◎×◎ 等等。白圈是自己的子,黑圈是對(duì)方的子,叉子是未走的格子。
4、我建議你采用下子后判斷的方式,即玩家1下了一個(gè)字后,像該子周圍8個(gè)方向檢查是否存在5子的情況,只需要一個(gè)判斷方法,而且較為簡(jiǎn)單。