freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于java的五子棋游戲的設(shè)計(含源程序代碼)(參考版)

2024-12-10 02:27本頁面
  

【正文】 特此聲明! 作者簽名: 2021年 06月 日 。 ( 5)學(xué)??梢怨紝W(xué)位論文的全部或部分內(nèi)容(保密學(xué)位論文在解密后遵守此規(guī)定)。 ( 3)學(xué)??梢詫W(xué)術(shù)交流為目的復(fù)制、贈送和交換學(xué)位論文。 關(guān)于學(xué)位論文使用權(quán)和研究成果知識產(chǎn)權(quán)的說明 : 本人完全了解成都信息工程學(xué)院有關(guān)保管使用學(xué)位論文的規(guī)定,其中包括: ( 1)學(xué)校有權(quán)保管并向有關(guān)部 門遞交學(xué)位論文的原件與復(fù)印件。文中除了特別加以標(biāo)注地方外,不包含他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得成都信息工程學(xué)院或其他教學(xué)機(jī)構(gòu)的學(xué)位或證書而使用過的材料。在此向他表示我最衷心的感謝! 感謝本班的黃澤角同學(xué), 他的構(gòu)思給了我很大的幫助,特別是搜索算法方面。 [6] 彭建國 ,那威 .連珠五子棋入 門 .北京 : 金盾出版社 .。 [4] 徐 立 ,孫計安 .Java 應(yīng)用與開發(fā)案例教程 .北京: 清華大學(xué)出版社 ,。 [2] 何橋 ,李肅義 .Java 2 程序設(shè)計簡明教程 .北京: 中國水利水電出版社 ,2021。隨著新的算法和理論的研究,人工智能必定會在人們生活中扮演重要的角色。它的概念、方法和技術(shù),正在各行各業(yè)廣泛滲透。對五子棋相關(guān)規(guī)則及技巧有了新的收獲,最重要的是自己動手解決問題的能力得到了提高。 結(jié) 論 通過本次 課 題的研究, 用 JAVA 實現(xiàn)了 五子棋人工智能和網(wǎng)絡(luò)游戲 。但我 并不以為這是很好的方法。 關(guān)于電腦學(xué)習(xí), 這聽起來似乎是算法無法實現(xiàn)的功能。 關(guān)于 增加細(xì)致的特定棋形的判斷 ,前面已經(jīng)說過,以為不同的棋型,例如“死四”就有不同的幾種情況,如果對每一種設(shè)置不同的重要值,也可以提高電腦 AI,但是要設(shè)置合適的分?jǐn)?shù)就要在實踐中檢驗了,因為這個不是大小的問題,而是相差多少 。否則照同樣的方法向下分析,就可以預(yù)測出多步 。我大體說一下這 2種算法的思路:遞歸算法的意思可以說成“今后幾步預(yù)測法”,首先讓電腦分析一個可能的點,如果在這兒下子將會形成對手不得不防守的棋型(例如:“沖四”、“活三”);那么下一步對手就會照你的思路來防守你,如第 21 頁 共 23 頁 此一來便完成了第一步的預(yù)測。不過即使沒采用遞歸算法,要 是讓電腦先下子的話,你的大部分時間也是花在防守上 ,可能是我的棋力太菜了,我自己還沒有下贏過電腦。 } 努力提高電腦 AI 一直是五子棋游戲關(guān)鍵,第一步的人工智能只是估值和搜索算法的集合,要真正的提高電腦 AI 還有很多步,例如,我的電腦 AI 只是片面的分析了雙方的器型,沒有前瞻性。 if(RectX2RectY2) RectY2 = y+(RectX2x)。 if(RectX1RectY1) RectX1 = x(yRectY1)。 if(y+414) RectY2=14。 if(y40) RectY1=y4。 if(x+414) RectX2=14。 同理 ,和判斷勝負(fù) 一樣下子 也要考慮邊界 特殊 情況 ,矩形設(shè)置如下: private void setRect(int x,int y){ if(x40) RectX1=x4。因此,要使棋手做出這種判斷,就要把第一種情況的估值設(shè)置得高。 } 對于特定的棋型,都有一個不同的估值,以此來區(qū)別不同棋型的優(yōu)劣,也以此來決定最終的落子位置。 第 20 頁 共 23 頁 y=temp[1]。 swt=arr[i][j]。j++){ if(arr[i][j]swt){ temp[0]=i。i++){ for(int j=0。 for(int i=0。 } } } 設(shè)定相應(yīng)空位的重要值以后,選取最大的值下 子,代碼如下: private void getBiggest(int [][] arr,int x,int y){ int [] temp=new int[2]。 } } n=weight(value,flag)。 } if([i+k][j]==0){ flag++。 k5。i+kRectX2 amp。 break。 continue。 k5。ik=RectX1 amp。flag=0。i++){ if([i][j]!=0){ continue。 方向 for(i=RectX1,j=y。 // 39。但是有些棋類游戲,比如在中國象棋和國際象棋中,情況就有些復(fù)雜了,每個棋子都有它特定的著法, 電腦下子要考慮自己和玩家的棋型,優(yōu)先防守 ,如果沒有要防的棋型,則搜索自己的棋型下子。不同的棋類游戲各有所謂的規(guī)則,規(guī)則中就有博弈雙方都可以走哪些著法。 在估 值的時候,必須要考慮棋子的合法落子情況。因為有可能有復(fù)合棋型,比如“四三 ” ..從第一步起,不管是哪一方下子,電腦都有以這點為中心搜索 9X9 的矩陣內(nèi)的所有空白點上棋子的重要性,一顆棋子對棋型影響的大小有 9X9。 參考了很多五子棋算法,大部分思想差不多,就是搜索估值確定重要性,然后選取最大的一個點下子。換言之,博弈就是研究個體如何在錯綜復(fù)雜的相互影響中得出最合理的策略,博弈論正是衍生于古老的游戲或曰博弈如象棋、撲克等。在這里所抽象化后的博弈問題 是,已知參與者集合 (兩方 ),策略集合 (所有棋著 ),和盈利集合 (贏子輸子 ),最終是想去找到一個理論上的解或平衡,也就是對參與雙方來說都最合理、最優(yōu)的具體策略。 諾伊曼 ( John von Neumann,19031957)和摩根斯坦恩( Oskar Margenstern, 19021977)在 1944 年出版了《博弈論與經(jīng)濟(jì)行為》( Theory of Games and Economic Behavior)一書 中,最早地提出了關(guān)于博弈論的概念。 } 圖 16 邀請游戲 電腦 AI 廣義上來講,博弈是指在一定的環(huán) 境條件和一定的規(guī)則約束下,依靠自己所能夠掌握的信息,從各自選擇的行為或是策略進(jìn)行選擇并加以實施,并從各自取得相應(yīng)結(jié)果或收益的過程。 } else{ ss = new String(black)。 if(==1){ ss = new String(white)。 圖 23 服務(wù)端監(jiān)聽 圖 15 服務(wù)端監(jiān)聽 第 17 頁 共 23 頁 雙擊除自己以外的一個玩家,發(fā)出游戲請求,同時要確定自己棋子的顏色,用 MSG 發(fā)回服務(wù)端 。如果,有一方獲勝,則提示消息通知雙方, 確定則繼續(xù)開始新游戲。 /** * 消息列表 * type = 1 // 請求連接 , msg = 連接者 名字 * type = 2 // 放棋子 * type = 3 // 請求和其他人游戲 第 16 頁 共 23 頁 * type = 4 // 拒絕游戲請求 * type = 5 // 同意請求 * type = 6 // 發(fā)送勝利消息 * type = 7 // 斷開連接請求 * type = 8 // 保存游戲,但是不放在磁盤上,在下一局開始時將會丟失 * type = 9 // 添加新的玩家到所有客戶端的玩家列表 * type = 10// 響應(yīng)信息 type ==1 * type = 11// 和玩家游戲 ,msg 保存玩家的名字 ,創(chuàng)建游戲的玩家設(shè)置游戲 * type = 12//信息設(shè)置 * type = 13// 設(shè)置玩家顏色 * type = 14// msg= 接受請求的一方設(shè)置 * type = 15// 服務(wù)端更新信息 * type = 16// 發(fā)送控制或錯誤信息 * type = 17// 游戲失敗 * type = 18// 服務(wù)端套接字關(guān)閉 * type = 19// 玩家結(jié)束游戲及更新 * tyep = 20// 電腦獲勝 / 玩家獲勝 */ SOCKET 監(jiān)聽端口,如果 有玩家則更新玩家列表,如果雙擊除自己以外的玩家,則可以開始游戲,發(fā)送游戲請求,如果同意則返回棋子顏色并開始游戲 ,同時清空玩家列表。 網(wǎng)絡(luò)部分很簡單,但是我也做出了自己的特色,就是事件處理 ,做工可根據(jù)具體情況修改,雖然沒有多少實用價值,但是也 盡量使程序 留有擴(kuò)展性 。 } 需要注意的一點是落下的棋子如果離任何一方的邊界小于 4,則以邊界為限制判斷是否有一方獲勝 ,這樣的話也要考慮多種方向,但原理還是和基本情況是一樣的。 //繼續(xù)新游戲 (Player2)。 如果有一方獲勝,彈出提示框,如果確認(rèn)則清空棋盤繼續(xù)新游戲。但很多專家表明,先下子有很大的幾率獲勝,即使有禁手,先下子的一方還是有很大的優(yōu)勢,我覺得對于我們一般玩家而言,這些規(guī)定可以不考慮。 但是我們一般沒有這個規(guī)則限制,都是輪流先下子。 } return false。 }else{ break。i5。x+i15amp。 if(count==5) return true。 } else{ break。i5。xi=0amp。 第 14 頁 共 23 頁 圖 14 獲勝 勝負(fù)判斷條件以下給出了 X 方向的代碼: protected boolean judge(int x,int y,int clr){
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1