五子棋遊戲之eval妙用

2021-09-14 03:17:30 字數 1013 閱讀 4202

**今天整理了下,除去配置和空行等,實際ts**在40行左右。

先說說思路:

棋盤是由 n*n個'十'字組成,那麼我去寫了乙個長度為n陣列遍歷,這個陣列的每乙個子陣列包含16個物件,

每個物件也就是乙個'十'字,物件key就乙個'color'預設value'none',(雖然就乙個key,但是為了便於以後擴充套件,建議寫成物件)

樣式分為三類:無棋子'none',有黑色棋子'black',有白色棋子'white'.
判斷是否贏的規則很簡單。

八個方向,倆倆組合,最多判斷4次

以棋子點為計算點。比如左上方向遞迴計算相同顏色棋子個數+右下方向遞迴計算相同顏色棋子個數

如果個數和為4,判斷這個顏色的棋子贏,否則,清空個數,重新計算另外的方向。

這裡有個難點,就是計算方向的方式(比如座標(col,line)左上方是col-1,line-1)必須傳入到函式中,才能在遞迴的時候公用乙個方法去計算。

eval可以將string解析為function

function test(a,b,str)

var x = test(1,3,'a-b')//-2

所以我把五子棋方向遞迴寫成了如下方式

我有遞迴眩暈症。。。寫起來的時候倒是不繞,但是解釋起來就特別繞,大家如果有興趣可以對著**看,我先去休息一會兒,犯暈。

五子棋Pro 最好玩的五子棋遊戲

五子棋是一種兩人對弈的純策略型漢族棋類益智遊戲,棋具與圍棋通用,由中國古代漢族人發明,起源於中國上古時代的傳統黑白棋種之一。主要流行於華人和漢字文化圈的國家以及歐美一些地區。容易上手,老少皆宜,而且趣味橫生,引人入勝 不僅能增強思維能力,提高智力,而且富含哲理,有助於修身養性。1 多種遊戲模式 1 ...

五子棋的小遊戲

感想 終於寫出人生中第乙個小遊戲來了 include include include include using namespace std const int x 21 棋盤行數 const int y 21 棋盤列數 char p x y 定義棋盤 int m 0 定義臨時點,儲存輸入座標 in...

遊戲 五子棋 與AI

然後ai下棋時,把每個能下的地方都下一次,求個己方與對方的期望值,用個微妙的比較方法 既要考慮到己方的期望,也要考慮到對方的情況 找出期望值最好的那個點,就下那裡了。然後不一會兒我就寫出了乙個 一代 ai,不過我發現有問題,這一代中函式 val 中還沒有那個 y 導致雙方的優先度基本相當,後來我就想...