亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

五子棋算法探討

2019-11-17 05:30:40
字體:
來源:轉載
供稿:網友

  近來隨著計算機的快速發展,各種棋類游戲被紛紛請進了電腦,使得那些喜愛下棋,又經??嘤跊]有對手的棋迷
們能隨時過足棋癮。而且這類軟件個個水平頗高,大有與人腦分庭抗禮之勢。其中戰勝過國際象棋世界冠軍-卡斯
帕羅夫的“深藍”便是最具說服力的代表;其它像圍棋的“手淡”、象棋的“將族”等也以其優秀的人工智能深
受棋迷喜愛;而我們今天將向大家介紹的是五子棋的算法。
  當我們與電腦對戰時,您知道這些軟件是怎樣象人腦一樣進行思考的嗎?前不久我曾編寫過一個五子棋的游
戲,在這里就以此為例和大家一起探討探討。
  總的來說(我們假定您熟悉五子棋的基本規則),要讓電腦知道該在哪一點下子,就要根據盤面的形勢,為每
一可能落子的點計算其重要程度,也就是當這子落下后會形成什么棋型(如:“沖四”、“活三”等),然后通覽
全盤選出最重要的一點,這便是最基本的算法。當然,僅靠當前盤面進行判定是遠遠不夠的,這樣下棋很輕易掉進
玩家設下的陷阱,因為它沒有考慮以后的變化。所以在此基礎上我們加入遞歸調用,即:在電腦中猜測出今后幾步
的各種走法,以便作出最佳選擇,這也是我們下棋時常說的“想了幾步”。如此一來您的程序便具有一定的水平了。
什么?不信!過來試試吧!
 總體思路弄清之后,下面進行具體討論:
一:數據結構
  先來看看數據結構,我們需要哪些變量?
  首先得為整個棋盤建立一張表格用以記錄棋子信息,我們使用一個15*15的二維數組 Table[15][15] (15*15是
五子棋棋盤的大小),數組的每一個元素對應棋盤上的一個交叉點,用‘0’表示空位、‘1’代表己方的子、‘2’
代表對方的子;這張表也是今后分析的基礎。
  在此之后還要為電腦和玩家雙方各建立一張棋型表Computer[15][15][4]和Player[15][15][4],用來存放棋型
數據,就是剛才所說的重要程度,比如用‘20’代表“沖四”的點,用‘15’代表“活三”的點,那么在計算重要
性時,就可以根據20>15得出前者比后者重要,下子時電腦便會自動選擇“沖四”的點。那為什么棋型表要使用三
維數組呢?因為棋盤上的每一個點都可以與橫、豎、左斜、右斜四個方向的棋子構成不同的棋型,所以一個點總共
有4個記錄;這樣做的另一個好處是可以輕易判定出復合棋型,例如:假如同一點上有2個‘15’就是雙三、有一個‘15’和一個‘20’就是四三。
  怎么樣!3個數組構成了程序的基本數據骨架,今后只要再加入一些輔助變量便可以應付自如了。應該不會太
難吧?OK!有了這么多有用的數據,我們就可以深入到程序的流程中去了。
二:程序流程
  我們主要討論五子棋的核心算法,即:人工智能部分,而其他像圖形顯示、鍵盤鼠標控制等,因較為簡單,所
以就不作過多介紹了。
  我們看到本程序由六個基本功能模塊構成,各模塊的具體分析如下:
  (1)初始化:首先,建立盤面數組Table[15][15]、對戰雙方的棋型表Computer[15][15][4]和Player[15]
[15][4]并將它們清零以備使用;然后初始化顯示器、鍵盤、鼠等輸入輸出設備并在屏幕上畫出棋盤。
  (2)主循環控制模塊:控制下棋順序,當輪到某方下子時,負責將程序轉到相應的模塊中去,主要擔當一個
調度者的角色。
  (3)玩家下子:當輪到玩家下時,您通過鍵盤或鼠標在棋盤上落子,程序會根據該點的位置,在Table[15]
[15]數組的相應地方記錄‘2’,以表明該子是玩家下的。
 ?。?)盤面分析填寫棋型表:本程序核心模塊之一,人工智能算法的根本依據!其具體實現方法如下:您在下
五子棋時,一定會先根據棋盤上的情況,找出當前最重要的一些點位,如“活三”、“沖四”等;然后再在其中
選擇落子點。但是,電腦不會像人一樣分析問題,要讓它知道哪是“活三”、哪是“沖四”,就得在棋盤上逐點
計算,一步一步的教它。
  先來分析己方的棋型,我們從棋盤左上角出發,向右逐行搜索,當碰到一個空白點時,以它為中心向左挨個
查找,假如碰到己方的子則記錄然后繼續,假如碰到對方的子、空白點或邊界就停止查找。左邊完成后再向右進
行同樣的操作;最后把左右兩邊的記錄合并起來,得到的數據就是該點橫向上的棋型,然后把棋型的編號填入到Computer[x][y][n]中就行了(x、y代表坐標,n=0、1、2、3分別代表橫、豎、左斜、右斜四個方向)。而其他三
個方向的棋型也可用同樣的方法得到,當搜索完整張棋盤后,己方棋型表也就填寫完畢了。然后再用同樣的方法
填寫對方棋型表。
  注重:所有棋型的編號都要事先定義好,越重要的號數越大!
  OK! 怎么樣?有點累了吧?不過千萬別泄氣!因為好戲還在后頭。
  Let's go!
 ?。?)電腦下子:有了上面填寫的兩張棋型表,現在要作的就是讓電腦知道在哪一點下子了。其中最簡單的
計算方法,就是遍歷棋型表Computer[15][15][4]和Player[15][15][4]找出其中數值最大的一點,在該點下子即
可。但這種算法的弱點非常明顯,只顧眼前利益,不能顧全大局,這就和許多五子棋初學者一樣犯了“目光短淺”
的毛病。
  要解決這個問題,我們引入‘今后幾步猜測法’,具體方法是這樣的: 首先, 讓電腦分析一個可能的點,
假如在這兒下子將會形成對手不得不防守的棋型(例如:‘沖四’、‘活三’);那么下一步對手就會照您的思
路下子來防守您,如此一來便完成了第一步的猜測。這時再調用模塊4對猜測后的棋進行盤面分析,假如出現了
‘四三’、‘雙三’或‘雙四’等制勝點,那么己方就可以獲勝了(當然對黑棋而言‘雙三’、‘雙四’是禁手
,另當別論);否則照同樣的方法向下分析,就可猜測出第二步、第三步……
  等一等,要是盤面上沒有對手必須防的棋型,哪該怎么辦呢?進攻不成的話就得考慮防守了,將自己和對手
調換一下位置,然后用上面的方法來猜測對手的棋,這樣既可以防住對手巧妙的攻擊,又能侍機發動反擊,何樂
而不為呢!
  但是必須告訴大家的是:猜測法的運算量相當之大,據我的經驗,用Pentium-100猜測3步的走法平均需要15
秒以上時間,所以建議猜測量在5步以內??蓜e小瞧了這5步,有時它甚至會走出讓您拍手叫絕的妙著呢!
 ?。?)勝敗判定:務須多言,某方形成五子連即獲勝;若黑棋走出‘雙三’、‘雙四’或長連即以禁手判負。
  到現在為止,整個五子棋軟件就基本完成了,其水平大約在中級上下。當然,這種算法并不是最好的,但我
相信它的基本思路是正確的。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲精品高潮| 亚洲成人中文字幕| 日韩av资源在线播放| 日本成人精品在线| 日韩有码在线视频| 大量国产精品视频| 欧美另类在线播放| 一本色道久久综合狠狠躁篇的优点| 久久免费国产精品1| 久久久www成人免费精品张筱雨| 色偷偷88888欧美精品久久久| 国产精品久久久久久久电影| 精品亚洲aⅴ在线观看| 91精品免费看| 亚洲精品99久久久久中文字幕| 中文字幕亚洲无线码在线一区| 欧美wwwwww| 亚洲一区二区久久久久久久| 亚洲男女性事视频| 91av视频在线| 在线免费观看羞羞视频一区二区| 亚洲男人天堂2024| 国产精品视频自拍| 成人福利在线视频| 国产成人亚洲综合青青| 777国产偷窥盗摄精品视频| 国产一区视频在线播放| 亚洲欧美制服另类日韩| www.亚洲人.com| 俺去亚洲欧洲欧美日韩| 91黄色8090| 伊人久久综合97精品| 亚洲一区美女视频在线观看免费| 91久久嫩草影院一区二区| 伊是香蕉大人久久| 欧美成人精品在线| 久久大大胆人体| 日韩精品极品毛片系列视频| 91精品视频在线播放| 国产噜噜噜噜久久久久久久久| 日韩亚洲一区二区| 欧美人与性动交a欧美精品| 国产精品综合不卡av| 欧美黑人性猛交| 青草青草久热精品视频在线观看| 国产精品中文字幕在线| 一个人看的www欧美| 成人免费xxxxx在线观看| 日韩hd视频在线观看| 国产精品美女视频网站| 国产一区二区三区在线观看视频| 亚洲人在线视频| 久久精品视频网站| 日韩精品视频免费专区在线播放| 亚洲美女精品成人在线视频| 成年人精品视频| 北条麻妃久久精品| 日韩女优人人人人射在线视频| 国产亚洲欧美另类中文| 国产成人小视频在线观看| 韩国一区二区电影| www.日韩视频| 亚洲一区二区久久久久久| 欧美一区二粉嫩精品国产一线天| 久热99视频在线观看| 亚洲精品综合精品自拍| 欧美午夜精品久久久久久人妖| 亚洲成人av在线| 精品久久久国产精品999| 欧美在线亚洲一区| 97视频在线观看播放| 国产精品久久久久久久天堂| 国产日韩视频在线观看| 亚洲最大福利网| 国产精品久久久久久久久久| 日韩欧美有码在线| 日本伊人精品一区二区三区介绍| 亚洲国产精品久久久久秋霞不卡| 久久久精品一区| 91久久夜色精品国产网站| 国产精品久久久久久久美男| 92福利视频午夜1000合集在线观看| 这里只有精品在线播放| 国产亚洲欧美一区| 成人免费直播live| 精品成人在线视频| 国产一区二区三区在线| 97免费视频在线播放| 国产成人高潮免费观看精品| 亚洲日本欧美日韩高观看| 日韩欧美亚洲综合| 亚洲一区二区三区香蕉| www高清在线视频日韩欧美| 91精品国产777在线观看| 欧美视频不卡中文| 68精品国产免费久久久久久婷婷| 欧美性xxxxxxxxx| 亚洲国产欧美精品| 久久久精品国产网站| 国产91精品最新在线播放| 日韩在线免费高清视频| 美女久久久久久久久久久| 欧美大成色www永久网站婷| 国产成人久久久精品一区| 日韩精品视频在线观看网址| 国产视频精品va久久久久久| 久久激情视频久久| 久久五月情影视| 波霸ol色综合久久| 国产成人精品久久二区二区91| 国产精品自产拍在线观看| 日韩免费在线电影| 欧美日韩亚洲激情| 欧美韩国理论所午夜片917电影| 欧美国产在线视频| 欧美日韩在线视频首页| 久久噜噜噜精品国产亚洲综合| 久久久久久久久91| 国产精品久久久久久久久| 日韩美女福利视频| 亚洲成人av片| 欧美中文字幕视频在线观看| 久久免费国产精品1| 亚洲大胆美女视频| 欧美自拍视频在线观看| 欧美成aaa人片在线观看蜜臀| 这里精品视频免费| 国产一区二区欧美日韩| 91精品国产高清久久久久久久久| 这里只有精品视频在线| 久久久91精品国产一区不卡| 亚洲午夜久久久影院| 亚洲成人黄色在线| 日本精品免费观看| 久久九九热免费视频| 久久精品一区中文字幕| 在线播放日韩专区| 欧美重口另类videos人妖| 成人精品久久av网站| 日韩精品免费电影| 免费91麻豆精品国产自产在线观看| 亚洲www视频| 91亚洲午夜在线| 亚洲精品xxxx| www日韩中文字幕在线看| 色综合老司机第九色激情| xvideos国产精品| 欧美激情成人在线视频| 国产精品三级美女白浆呻吟| 青青a在线精品免费观看| 国产在线精品成人一区二区三区| 美女国内精品自产拍在线播放| 亚洲欧美第一页| 综合网日日天干夜夜久久| 午夜美女久久久久爽久久| 国产综合香蕉五月婷在线| 岛国视频午夜一区免费在线观看| 国产精品久久久久久久app| 亚洲欧美制服综合另类| 福利二区91精品bt7086| 亚洲精品视频网上网址在线观看| 日韩第一页在线| 欧美一区二区三区四区在线| 久久精品国产精品|