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

正文內(nèi)容

基于java的五子棋游戲的設(shè)計(jì)—計(jì)算機(jī)畢業(yè)設(shè)計(jì)-文庫(kù)吧資料

2024-12-07 10:23本頁(yè)面
  

【正文】 * type = 16// 發(fā)送控制或錯(cuò)誤信息 * type = 17// 游戲失敗 * type = 18// 服務(wù)端套接字關(guān)閉 * type = 19// 玩家結(jié)束游戲及更新 * tyep = 20// 電腦獲勝 / 玩家獲勝 */ SOCKET 監(jiān)聽端口,如果有玩家則更新玩家列表, 如果雙擊除自己以外的玩家,則可以開始游戲,發(fā)送游戲請(qǐng)求,如果同意則返回棋子顏色并開始游戲,同時(shí)清空玩家列表。 網(wǎng)絡(luò)部分很簡(jiǎn)單,但是我也做出了自己的特色,就是事件處理 ,做工可根據(jù)具體情況修改,雖然沒有多少實(shí)用價(jià)值,但是也盡量使程序留有擴(kuò)展性。 } 需要注意的一點(diǎn)是落下的棋子如果離任何一方的邊界小于 4,則以邊界為限制判斷是否有一方獲勝,這樣的話也要考慮多種方向,但原理還是和基本情況是一樣的。 //繼續(xù)新游戲 (Player2)。 如果有一方獲勝,彈出提示框,如果確認(rèn)則清空棋盤繼續(xù)新游戲。但很多專家表明,先下子有很大的幾率獲勝,即使有禁手,先下子的一方還是有很大的優(yōu)勢(shì),我覺得對(duì)于我們一般玩家而言,這些規(guī)定可以不考慮。但是我們一般沒有這個(gè)規(guī)則限制,都是輪流先下子。 } return false。 }else{ break。i5。x+i15amp。 if(count==5) return true。 } else{ break。i5。xi=0amp。 第 14 頁(yè) 共 23 頁(yè) 圖 14 獲勝 勝負(fù)判斷條件以下給出了 X 方向的代碼: protected boolean judge(int x,int y,int clr){ int i=0,j=0,count=0。由于代碼太多,下面給出了一般狀況的判斷勝負(fù)函數(shù) ,及以坐標(biāo)( x,y)為中心的9X9 矩形,只能在棋盤的內(nèi)部,如果超過棋盤,就要另外考慮。思想還是比較簡(jiǎn)單,相同顏色連成五子即勝利,網(wǎng)上有些網(wǎng)友評(píng)論說完整的判斷勝負(fù)條件包括連五和活四,我覺得完全沒必要,活四還要檢查兩邊的棋子,雖然運(yùn)算量不大,但五子棋的標(biāo)準(zhǔn)就是連五即勝,一步之差,我們既要遵守規(guī)則,也要簡(jiǎn)化代碼實(shí)現(xiàn)盡完整的功能。 (xp,yp,10,28,28)。 // 棋子 Y 坐標(biāo) if(col==1) ()。 private static int xp。 //(white, 16 + i * 30, 16 + j * 30, this)。 } if (board[i][j] == 2){ ()。 (xp,yp,28,28)。 yp=16+j*30。 j 15。i15。 (455, 25, 455, 455)。 (25, 25, 25, 455)。 //行 (30 + i * 30, 30, 30 + i * 30, 450)。 i 15。i++,j+=2){ (rowNum2,j,2,10,35+i*30)。 } for(int i=9,j=0。i9。 //畫橫向標(biāo)識(shí)符 (line,25,15)。 ()。 //()。 // 棋子 X 坐標(biāo) private static int yp。用字符數(shù)組存儲(chǔ),最后確定位圖 13 五子棋程序流程圖 第 12 頁(yè) 共 23 頁(yè) 置放上去即可。}。,39。,39。,39。,39。,39。,39。,39。,39。,39。,39。,39。 char [] rowNum2={39。939。839。739。639。539。439。339。239。139。 初 始 化主 循 環(huán) 控 制 模 塊盤 面 分 析 填 寫 棋型 表輪 到 電 腦電 腦 下 子玩 家 下 子輪 到 玩 家勝 負(fù) 判 斷否 則開 始勝 利 棋盤及棋子的類 棋盤 棋盤如圖 1,具體代碼如下: String line = a b c d e f g h i j k l m n o。在具體實(shí)現(xiàn)的時(shí)候再介紹其作用。 則負(fù)責(zé) 網(wǎng)絡(luò)對(duì)戰(zhàn)的處理。 定義了面板上的其他元素,包括玩家列表,標(biāo)題欄等。 圖 12 Jcreator IDE 4 課題詳細(xì)研究方法 程序結(jié)構(gòu)說明 既然是 Java Application,要實(shí)現(xiàn)網(wǎng)絡(luò)對(duì)戰(zhàn),故采用 C/S 模式編寫,程序包含 7 個(gè) 獨(dú) 立 的 類 文 件- 、 、 、 、 、 。 圖 11 環(huán)境變量 Jcreator 的安裝很簡(jiǎn)單,這里不在詳細(xì)敘述,把路徑配置好就可以了。在命令提示窗口輸入 Java version 如果能正確顯示版本號(hào),則表示環(huán)境配置成功。 Java 應(yīng)用程序必須通過 Java 解釋器( )來解釋執(zhí)行其字節(jié)碼文件; Java 小應(yīng)用程序可通過支持 Java 標(biāo)準(zhǔn)的瀏覽器來解釋執(zhí)行。字節(jié)碼文件是由與平臺(tái)無關(guān)的二進(jìn)制碼組成的,執(zhí)行時(shí)由解釋器解釋成本地機(jī)器碼。將編好的源文件保存起來,源文件的擴(kuò)展名必須是 Java。 源 文 件 : 文 件 名 . 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 或記事本來編寫源文件。 7:多線程 (Multithreaded) 多線程是開發(fā)復(fù)雜和功能強(qiáng)大的程序所必須的手段之一, Java 同樣支持這個(gè)重要功能。針對(duì)這個(gè)目的, Java 的編譯器可以產(chǎn)生一種結(jié)構(gòu)中立 的目標(biāo)碼文件格式――字節(jié)碼( Byte Code)。 6:結(jié)構(gòu)中立性 (Architecture Neutral) 第 9 頁(yè) 共 23 頁(yè) 在網(wǎng)絡(luò)上存在許多不同類型的計(jì)算機(jī),從中央處理器到操作系統(tǒng)的機(jī)構(gòu)均有很高的差異性。 5:安全性 (Secure) Java 是被設(shè)計(jì)用于網(wǎng)絡(luò)及分布式環(huán)境中的,所以安全性是一個(gè)很重要的考慮。 4:強(qiáng)壯性 (Robust) 由 Java 所編寫的程序要能在各種情況下運(yùn)行,而且必須具 有高的穩(wěn)定性。 3:分布式( Distributed) 計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展使得信息應(yīng)用朝著分布式的環(huán)境發(fā)展,所以現(xiàn)代的信息開發(fā)語言及環(huán)境要有配合分布式的特性及功能。對(duì)象的封裝性可以使對(duì)象的接口定義明確;繼承性可以增加軟件的可重用性,有助于分類及模版設(shè)計(jì)等。 2:面向?qū)ο?(ObjectOriented) 面向?qū)ο笫墙陙硇畔⒔鐝V為使用的概念 和技術(shù)。 Java 有以下主要特點(diǎn): 1:簡(jiǎn)單( Simple) 制定 Java 的原則之一,是要建立一種結(jié)構(gòu)簡(jiǎn)單而且使用容易的系統(tǒng),可以讓用戶不必接受很深的訓(xùn)練就可以開始設(shè)計(jì)程序,所以 Java 的語法盡可能與在當(dāng)前許多程序設(shè)計(jì)師都采用的 C 及 C++語言相似。因此說,把各種形狀和各個(gè)方面上的二 三 四等子力結(jié)構(gòu)爛熟于胸,做到舉一反三,是學(xué)習(xí)五子棋的基本功,更是能靈活運(yùn)用五種取勝技巧的基礎(chǔ)。 五子棋的取勝思路是由一個(gè)子開始,目標(biāo)是運(yùn)用各種方法在棋盤上發(fā)展出五連乃至長(zhǎng)連而取勝。而雙攻棋指雙向或雙行的攻棋。如果是黑方,還特別要注意進(jìn)攻終被對(duì)方反擊時(shí)出現(xiàn)的各種禁手點(diǎn)的可能性。所以,在對(duì)局的后期,就要在精確計(jì)算的前提下,盡早發(fā)動(dòng)攻勢(shì),以取得棋局的控制權(quán),否則一旦貽誤戰(zhàn)機(jī),被對(duì)方搶先發(fā)動(dòng)攻勢(shì),就會(huì)成為被控制的一方。 對(duì)局的早期,選點(diǎn)的著眼點(diǎn)主要是使本方的棋子保持聯(lián)系,為以后創(chuàng)造盡可能多的成三、成四的機(jī)會(huì),同時(shí)盡量限制對(duì)方成為好形。 五子棋的點(diǎn)的選擇十分關(guān)鍵。所以,在五子棋的對(duì)局眾進(jìn)攻和防守都是從“二”和“三”的爭(zhēng)奪開始的。 眾所周知,連珠五子,連五為勝。 長(zhǎng)連:相同顏色的連續(xù)六子或六子以上。 D、 E 中的 X 點(diǎn)為四、四禁手。 A B C D 第 7 頁(yè) 共 23 頁(yè) E F 圖 9 禁手 見圖 9。但是 職業(yè)連珠五子棋雖然對(duì)黑棋采取了種限制,但是先行的 一方 優(yōu)勢(shì)依然很大 。 之所以這么規(guī)定也是為了規(guī)范比賽,其實(shí)我們業(yè)余的棋手,黑白棋子誰先下都不限制,只是先落子會(huì)有比較大的優(yōu)勢(shì),另一方始終處于防守的被動(dòng)狀態(tài)。白棋無禁手 ,如果黑子在落下的關(guān)鍵的第五子即形成五連的同時(shí),又形成禁手。 自由獲勝:除了追下取勝以外的獲勝方法,稱之為自由取勝。 一子雙殺:指用同一手棋同時(shí)形成兩個(gè)勝點(diǎn)的著法。 圖 6 活四 第 6 頁(yè) 共 23 頁(yè) 圖 7 跳沖四 圖 8 反沖四 如圖 8,黑棋在 1 點(diǎn)進(jìn)攻,形成一子雙殺,這時(shí)白棋的妙手是在 a位活三,它同時(shí)阻擋了黑棋的兩種取勝方法。 沖四:在同一條線上相連的相同顏色的四個(gè)棋子,它與活四不同的是,其中的一端有對(duì)方的棋子進(jìn)行阻擋,它只有再在另一端下一手棋才可形成“連五”。 四:四的形狀有三種,它分為:活四,沖四、跳沖四。見圖 5。見圖5。如果是死三,將特別指出。 我們通常所說的“三”。或三分為連三、跳三。三分為活三、死三、眠三。 死二:即再下一子可形成死三的二,見圖 3。 五子棋常用術(shù)語 二:二是五子棋的一切進(jìn)攻的基礎(chǔ);又分為活二和死二。因此,在職業(yè)比賽種對(duì)黑方做了種種限制,以利公平競(jìng)爭(zhēng)。如此輪流落子直到某一方首先在棋盤的直線 橫線或斜線上形成連續(xù)的五子或五子以上,則該方就算獲 勝。 五子棋是由兩個(gè)人在一盤棋上進(jìn)行對(duì)抗的競(jìng)技運(yùn)動(dòng)。 7:黑方禁手形成時(shí),白方應(yīng)立即指出。 4:如分不出勝負(fù),則定位平局。黑棋禁 手包括“三、三”;“四、四”;“長(zhǎng)連”。 2:最先在棋盤的橫向、豎向、斜向形成連續(xù)的相同色五個(gè)棋子的一方為勝利。 規(guī)則及解釋 1:黑棋先行,白棋隨后。 第 3 頁(yè) 共 23 頁(yè) 圖 1 棋盤 五子棋的棋子和圍棋相同,分黑白 2 種顏色,通常為散圓形,有一面凸起或二面凸起等形狀,一副棋子總數(shù)為 225 枚,其中黑子 113 枚,白子 112枚。 2 課題相關(guān)基礎(chǔ) 五子棋 棋盤和棋子 現(xiàn)代五子棋棋盤,經(jīng)過國(guó)際棋聯(lián)的多次修改,最終定為 15 X 15 路,即棋盤由橫豎各 15 條平行線交叉組成,共有 225 個(gè)交叉點(diǎn);棋盤上共有五個(gè)星位,中間的星位稱為天元,周圍 四點(diǎn)為小星,與圍棋盤略有不同。難點(diǎn)是人工智能,可以這樣說,人工智能的好壞決定了這個(gè)題目的完成深度。由于 Applet 運(yùn)行速度較慢,如果在加上算法搜索時(shí)間,顯然不符合程序的設(shè)計(jì)要求,決定用 Java 應(yīng)用程序開發(fā) .整個(gè)程序的功能實(shí)現(xiàn)流程是這樣的:網(wǎng)絡(luò)對(duì)戰(zhàn)涉及算法較少,所以先實(shí)現(xiàn)網(wǎng)絡(luò)部分,實(shí)現(xiàn)基本的棋盤和棋子的類,添加判斷勝負(fù)條件,這部是基礎(chǔ),也是很重要的,電腦AI 也在這些基礎(chǔ)上添加上來的。 本課題的研究方法 在進(jìn)行游戲設(shè)計(jì)之前,首先決定的第一個(gè)問題就是,使用什么開發(fā)環(huán)境來編寫環(huán)境 ? 自己雖然比較熟悉 Java 語言,但是實(shí)際開發(fā)項(xiàng)目經(jīng)驗(yàn)很少,所以決定用 Jcreator,其擁有 高亮語法編輯、使用向?qū)б约巴耆ㄖ?的用戶界面 ,最主要的是能夠 自動(dòng)查找文件于 Main 方法或 Html 文件以支持 Java 小應(yīng)用程序,然后啟動(dòng)相應(yīng)的工具 。智能已經(jīng)成為當(dāng)今各種新產(chǎn)品、新裝備的發(fā)展方向。 并且人工智能中的博弈部分,由于采用了大量的搜索算法,其中很多被利用到各方面。而這個(gè)課題就是和人工智能中的博弈論領(lǐng)第 2 頁(yè) 共 23 頁(yè) 域緊密相關(guān)的。人工智能大致可以分成幾個(gè)學(xué)科,它們每一個(gè)都是獨(dú)特的,但是它們常常又互相結(jié)合起來完成設(shè)計(jì)任務(wù),這時(shí),這些學(xué)科之間的差別就變的很模糊。 自己對(duì) 人工智能比較感興趣,而五子棋 游戲 程序的開發(fā)實(shí)現(xiàn)這個(gè)課題,正好提供給我這樣一個(gè)研究的機(jī)會(huì),通過對(duì)人工智能中博弈方面的研究(人機(jī)對(duì)弈),
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1