【正文】
感謝本班的黃澤角同學(xué),他的構(gòu)思給了我很大的幫助,特別是搜索算法方面。 關(guān)于學(xué)位論文使用權(quán)和研究成果知識產(chǎn)權(quán)的說明: 本人完全了解成都信息工程學(xué)院有關(guān)保管使用學(xué)位論文的規(guī)定,其中包括: ( 1)學(xué)校有權(quán)保管并向有關(guān)部門遞交學(xué)位論文的原件與復(fù)印件。 ( 5)學(xué)??梢怨紝W(xué)位論文的全部或部分內(nèi)容(保密學(xué)位論文在解密后遵守此規(guī)定)。s over. Or end them. It39。s the39。ve put down everything I saw and everything that was said just the way it happened. It can all be checked against this account I am writing now. It39。s just say that it brought in enough to eat out in restaurants where they don39。m not married. I39。t too wild about it but we always managed to avoid any heavy scenes. So much for romance. I39。t like to tell them that I preferre d Fritz the Cat to Mic key Mouse and that I hadn39。t need to get into that here. Let39。t waiting at the desk. The duty nurse, w ho knew who I was, phoned around and located Miriam in the mue. I tried to figure out what she was doing there. Normally, she works in Emergency and I know she hates losing out. Miriam told the nurse that she39。We may be stuck here for a little while. Did you make a re servation?39。I wasn39。 replied Miriam. 39。 39。No,39。d known about her. Which they didn39。d had some trouble in getting a cab. As a result, I didn39。s wedding. End of life story. There39。s married to a dentist up in Boston. She used to play cello with the Philharmonic but now she39。m open to offers. Miriam that39。t get up there all that often. I don39。d better tell you who I am. My name is Leo Resnic k. I39。s one hell of a story. I39。t guarantee to explain everything. You39。 特此聲明! 作者簽名: 2020年 06月 日 Chapter 1 The night I called at the Manhattan General to pick up this lady doctor I was dating, something quite extraordinary happened. For Miriam and me, it was the first in a chain of events that were to change our lives mine especially in a way that neither of us could possibly have imagined. For what we stumbled across that night was not the beginning of the story. If I am to believe what I have learned so far, the beginning was before and beyond Time as we know it. O ur lifestreams along with those of the handful of other people who became involved have established a brief interface with a cosmic event whose magnitude dwarfs the imagination. If this is starting to sound heavy, hold on. I39。 ( 3)學(xué)校可以學(xué)術(shù)交流為目的復(fù)制、贈(zèng)送和交換學(xué)位論文。文中除了特別加以標(biāo)注地方外,不包含他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得成都信息工 程學(xué)院或其他教學(xué)機(jī)構(gòu)的學(xué)位或證書而使用過的材料。 [6] 彭建國 ,那威 .連珠五子棋入門 .北京:金盾出版社 .。 [2] 何橋 ,李肅義 .Java 2 程序設(shè)計(jì)簡明教程 .北京: 中國水利水電出版社 ,2020。它的概念、方法和技術(shù),正在各行各業(yè)廣泛滲透。 結(jié) 論 通過本次課題的研究, 用 JAVA 實(shí)現(xiàn)了五子棋人工智能和網(wǎng)絡(luò)游戲。 關(guān)于電腦學(xué)習(xí),這聽起來似乎是算法無法實(shí)現(xiàn)的功能。否則照同樣的方法向下分析,就可以預(yù)測出多步。不過即使沒采用遞歸算法,要是讓電腦先下子的話,你的大部分時(shí)間也是花在防守上,可能是我的棋力太菜了,我自己還沒有下贏過電腦。 if(RectX2RectY2) RectY2 = y+(RectX2x)。 if(y+414) RectY2=14。 if(x+414) RectX2=14。因此,要使棋手做出這種判斷,就要把第一種情況的估值設(shè)置得高。 第 20 頁 共 23 頁 y=temp[1]。j++){ if(arr[i][j]swt){ temp[0]=i。 for(int i=0。 } } n=weight(value,flag)。 k5。 break。 k5。flag=0。 方向 for(i=RectX1,j=y。但是有些棋類游戲,比如在中國象棋和國際象棋中,情況就有些復(fù)雜了,每個(gè)棋子都有它特定的著法, 電腦下子要考慮自己和玩家的棋型,優(yōu)先防守 ,如果沒有要防的棋型,則搜索自己的棋型下子。 在估值的時(shí)候,必須要考慮棋 子的合法落子情況。 參考了很多五子棋算法,大部分思想差不多,就是搜索估值確定重要性,然后選取最大的一個(gè)點(diǎn)下子 。在這里所抽象化后的博弈問題是,已知參與者集合 (兩 方 ),策略集合 (所有棋著 ),和盈利集合 (贏子輸子 ),最終是想去找到一個(gè)理論上的解或平衡,也就是對參與雙方來說都最合理、最優(yōu)的具體策略。 } 圖 16 邀請游戲 電腦 AI 廣義上來講,博弈是指在一定的環(huán)境條件和一定的規(guī)則約束 下,依靠自己所能夠掌握的信息,從各自選擇的行為或是策略進(jìn)行選擇并加以實(shí)施,并從各自取得相應(yīng)結(jié)果或收益的過程。 if(==1){ ss = new String(white)。如果,有一方獲勝,則提示消息通知雙方,確定則繼續(xù)開始新游戲。 網(wǎng)絡(luò)部分很簡單,但是我也做出了自己的特色,就是事件處理 ,做工可根據(jù)具體情況修改,雖然沒有多少實(shí)用價(jià)值,但是也盡量使程序留有擴(kuò)展性。 //繼續(xù)新游戲 (Player2)。但很多專家表明,先下子有很大的幾率獲勝,即使有禁手,先下子的一方還是有很大的優(yōu)勢,我覺得對于我們一般玩家而言,這些規(guī)定可以不考慮。 } return false。i5。 if(count==5) return true。i5。 第 14 頁 共 23 頁 圖 14 獲勝 勝負(fù)判斷條件以下給出了 X 方向的代碼: protected boolean judge(int x,int y,int clr){ int i=0,j=0,count=0。思想還是比較簡單,相同顏色連成五子即勝利,網(wǎng)上有些網(wǎng)友評論說完整的判斷勝負(fù)條件包括連五和活四,我覺得完全沒必要,活四還要檢查兩邊的棋子,雖然運(yùn)算量不大,但五子棋的標(biāo)準(zhǔn)就是連五即勝,一步之差,我們既要遵守規(guī)則,也要簡化代碼實(shí)現(xiàn)盡完整的功能。 // 棋子 Y 坐標(biāo) if(col==1) ()。 //(white, 16 + i * 30, 16 + j * 30, this)。 (xp,yp,28,28)。 j 15。 (455, 25, 455, 455)。 //行 (30 + i * 30, 30, 30 + i * 30, 450)。i++,j+=2){ (rowNum2,j,2,10,35+i*30)。i9。 ()。 // 棋子 X 坐標(biāo) private static int yp。}。,39。,39。,39。,39。,39。 char [] rowNum2={39。839。639。439。239。 初 始 化主 循 環(huán) 控 制 模 塊盤 面 分 析 填 寫 棋型 表輪 到 電 腦電 腦 下 子玩 家 下 子輪 到 玩 家勝 負(fù) 判 斷否 則開 始勝 利 棋盤及棋子的類 棋盤 棋盤如圖 1,具體代碼如下: String line = a b c d e f g h i j k l m n o。 則負(fù)責(zé) 網(wǎng)絡(luò)對戰(zhàn)的處理。 圖 12 Jcreator IDE 4 課題詳細(xì)研究方法 程序結(jié)構(gòu)說明 既然是 Java Application,要實(shí)現(xiàn)網(wǎng)絡(luò)對戰(zhàn),故采用 C/S 模式編寫,程序包含 7 個(gè) 獨(dú) 立 的 類 文 件- 、 、 、 、 、 。在命令提示窗口輸入 Java version 如果能正確顯示版本號,則表示環(huán)境配置成功。字節(jié)碼文件是由與平臺無關(guān)的二進(jìn)制碼組成的,執(zhí)行時(shí)由解釋器解釋成本地機(jī)器碼。 源 文 件 : 文 件 名 . j a v a由 J a v a 解 釋 器 執(zhí) 行 由 瀏 覽 器 執(zhí) 行字 節(jié) 碼 文 件J a v a 編 譯 器 : j a v a c編譯生成Java應(yīng)用程序Java小應(yīng)用程序 圖 10 Java程序的開發(fā)過程 源文件:使用一個(gè)文本編輯器,如 Edit 或記事本來編寫源文件。針對這個(gè)目的, Java 的編譯器可以產(chǎn)生一種結(jié)構(gòu)中立 的目標(biāo)碼文件格式――字節(jié)碼( Byte Code)。 5:安全性 (Secure) Java 是被設(shè)計(jì)用于網(wǎng)絡(luò)及分布式環(huán)境中的,所以安全性是一個(gè)很重要的考慮。 3:分布式( Distributed) 計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展使得信息應(yīng)用朝著分布式的環(huán)境發(fā)展,所以現(xiàn)代的信息開發(fā)語言及環(huán)境要有配合分布式的特性及功能。 2:面向?qū)ο?(ObjectOriented) 面向?qū)ο笫墙陙硇畔⒔鐝V為使用的概念 和技術(shù)。因此說,把各種形狀和各個(gè)方面上的二 三 四等子力結(jié)構(gòu)爛熟于胸,做到舉一反三,是學(xué)習(xí)五子棋的基本功,更是能靈活運(yùn)用五種取勝技巧的基礎(chǔ)。而雙攻棋指雙向或雙行的攻棋。所以,在對局的后期,就要在精確計(jì)算的前提下,盡早發(fā)動(dòng)攻勢,以取得棋局的控制權(quán),否則一旦貽誤戰(zhàn)機(jī),被對方搶先發(fā)動(dòng)攻勢,就會(huì)成為被控制的一方。 五子棋的點(diǎn)的選擇十分關(guān)鍵。 眾所周知,連珠五子,連五為勝。 D、 E 中的 X 點(diǎn)為四、四禁手。但是 職業(yè)連珠五子棋雖然對黑棋采取了種限制,但是先行的 一方 優(yōu)勢依然很大 。白棋無禁手 ,如果黑子在落下的關(guān)鍵的第五子即形成五連的同時(shí),又形成禁手。 一子雙殺:指用同一手棋同時(shí)形成兩個(gè)勝點(diǎn)的著法。 沖四