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