近來隨著計算機的快速發展,各種棋類游戲被紛紛請進了電腦,使得那些喜愛下棋,又常常苦于沒有對手的棋迷們能隨時過足棋癮。而且這類軟件個個水平頗高,大有與人腦分庭抗禮之勢。其中戰勝過國際象棋世界冠軍-卡斯帕羅夫的“深藍”便是最具說服力的代表;其它像圍棋的“手淡”、象棋的“將族”等也以其優秀的人工智能深受棋迷喜愛;而我們今天將向大家介紹的是五子棋的算法。
當我們與電腦對戰時,您知道這些軟件是怎樣象人腦一樣進行思考的嗎?前不久我曾編寫過一個五子棋的游戲,在這里就以此為例和大家一起探討探討。
總的來說(我們假定您熟悉五子棋的基本規則),要讓電腦知道該在哪一點下子,就要根據盤面的形勢,為每一可能落子的點計算其重要程度,也就是當這子落下后會形成什么棋型(如:“沖四”、“活三”等),然后通覽全盤選出最重要的一點,這便是最基本的算法。當然,僅靠當前盤面進行判斷是遠遠不夠的,這樣下棋很容易掉進玩家設下的陷阱,因為它沒有考慮以后的變化。所以在此基礎上我們加入遞歸調用,即:在電腦中預測出今后幾步的各種走法,以便作出最佳選擇,這也是我們下棋時常說的“想了幾步”。如此一來您的程序便具有一定的水平了。什么?不信!過來試試吧!
標簽:
計算機
發展
上傳時間:
2015-08-30
上傳用戶:zsjinju