這將是一堵巨大的代碼墻,但我希望有人有時間和耐心來幫助我。我目前正在嘗試為我的HTML井字游戲創(chuàng)建一個AI播放器。我正在使用這個資源,其中包含使用最小值算法在Java中編程的工作AI播放器代碼:https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaGame_TicTacToe_AI.html(第1.5節(jié))我想把這個給定的爪哇代碼翻譯成腳本。資源代碼和我的 HTML/JS 代碼之間的一個主要區(qū)別是,資源使用 2 維數(shù)組作為游戲板,而我使用一維數(shù)組。這意味著資源的數(shù)組如下所示:其中第一個索引表示行,第二個索引表示列;我的數(shù)組看起來像這樣:它的長度為9,表示從左上角到右下角讀取的板,因此例如左上角單元格位于索引0處,右中單元格位于索引5處。Cell[][] cells;let board_array = [];另一個細微的區(qū)別是,資源使用玩家種子存儲在細胞數(shù)組中,而我只將字符串用于人類和AI。'X''O'我花了很多時間試圖將給定的Java函數(shù)翻譯成我的JS腳本,但無論我怎么嘗試,總是作為最終的最佳單元格返回,根據(jù)我的理解,只有當沒有可用的單元格時才會發(fā)生這種情況,這表明游戲已經(jīng)結(jié)束。我已經(jīng)做了一些控制臺.log調(diào)試,我可以看到在遞歸過程中,在某些時候?qū)嶋H上有合法的最佳單元格被返回(例如0或4),但在最終返回中它總是-1。minimax-1我敢打賭,我的錯誤要么在于從二維數(shù)組到一維數(shù)組的錯誤翻譯,要么它與JS在特定行中做一些與Java完全不同的事情有關(guān)。我可以想象數(shù)組中的二進制值或函數(shù)中對它們的操作可能會帶來麻煩。我不知道它在JS中是否像這樣工作,但它不會拋出任何錯誤,所以我無法自己弄清楚。WINNING_PATTERNShasWon
將最小值函數(shù)從 Java 轉(zhuǎn)換為 Java 腳本
紅糖糍粑
2022-09-23 16:42:37