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

正文內(nèi)容

最新基于java的五子棋游戲系統(tǒng)設(shè)計與實現(xiàn)免費下載(編輯修改稿)

2024-07-20 07:52 本頁面
 

【文章內(nèi)容簡介】 ion 和 GraphicsDevice 可以獲得多屏幕感知顯示尺寸。 // JOptionPane 有助于方便地彈出要求用戶提供值或向其發(fā)出通知的標準對話框 //MouseLinstener 是鼠標監(jiān)聽,功能是接收用戶通過鼠標所做的操作,可以取得用戶點擊鼠標的坐標,從而進行其他的操作。Graphics 類, 它的功能是類似于畫筆的功能,用來在窗口中繪制文字以及圖形等。他的調(diào)用是通過覆寫JFrame 的 paint() 方法來使用的,通過 repaint() 方法來調(diào)用。 //這個是產(chǎn)生中斷并且調(diào)用文件用到的類。、序列化和文件系統(tǒng)提供系統(tǒng)輸入和輸出。File 類文件和目錄路徑名的抽象表示形式。 // BufferedImage 子類描述具有可訪問圖像數(shù)據(jù)緩沖區(qū)的 Image。BufferedImage 由圖像數(shù)據(jù)的 ColorModel 和 Raster 組成。Raster 的 SampleModel 中 band 的數(shù)量和類型必須與 ColorModel 所要求的數(shù)量和類型相匹配,以表示其顏色和 alpha 分量。所有 BufferedImage 對象的左上角坐標都為 (0,0)。因此,用來構(gòu)造 BufferedImage 的任何 Raster 都必須滿足:minX=0 且 minY=0。 可以用來調(diào)用一個圖片作為我們下棋的背景圖片使用。 五子棋界面設(shè)計開始開發(fā)游戲的第一步就是先制作出游戲的窗口界面,一個漂亮美麗大方的游戲界面,往往先能吸引玩家去嘗試,所以這個地方不能夠馬虎。首先我們得按照大家的習慣,也就是游戲風格。按照國人的五子棋游戲風格。一般是在木質(zhì)的棋盤上下,這樣能夠顯示出棋類游戲的沉穩(wěn)、大氣而又不失典雅的氣質(zhì)。所以我們設(shè)計界面的時候需要按照木質(zhì)棋盤的顏色來設(shè)計底色。在一般的五子棋游戲比賽中,需要有比賽的信息顯示,方便下棋者與觀看者根據(jù)信息思考。所以在我們設(shè)計的界面上,必要的信息是不可缺少的。國人多喜歡把棋盤放在左邊,然后右邊顯示下棋的信息,所以設(shè)計棋盤的時候應(yīng)該按照國人的喜好擺放位置。基本流程如圖32所示:圖32 五子棋界面設(shè)計流程圖綜上所述,棋盤的設(shè)計是以木質(zhì)顏色為棋盤底色,畫上棋盤線條,把棋盤擺設(shè)在左邊,然后再右邊添加下棋的信息,如:狀態(tài),時間顯示,開始游戲等一些按鈕。 五子棋算法設(shè)計 五子棋算法設(shè)計可以包括如圖33所示設(shè)計:圖33 五子棋算法設(shè)計圖五子棋的算法設(shè)計包括棋盤設(shè)計,棋子設(shè)計,落子設(shè)計以及輸贏判斷。能設(shè)計出這四個算法,一個基本的五子棋算法就算完成了。 五子棋棋盤設(shè)計 五子棋棋盤設(shè)計可以使用JAVA自帶的畫圖算法。設(shè)計成十五行十五列的小型棋盤即可,然后按照圍棋棋盤的設(shè)定,畫上天元以及天星等標記,那么此棋盤就已經(jīng)設(shè)計完成了。 設(shè)計圖如下:圖34 棋盤設(shè)計流程圖棋盤設(shè)計如上圖所示,首先是設(shè)計棋盤大小,然后設(shè)計棋盤底色(這里設(shè)計底色一般為木質(zhì)顏色,如:蠟黃色)和線條顏色,接下來就可以畫棋盤線條了,執(zhí)行一個循環(huán),循環(huán)次數(shù)為15次,畫出行線,然后再執(zhí)行一個15次循環(huán),畫列線。最后找到相對應(yīng)的點,畫上天元和天星。如此下來,一個優(yōu)質(zhì)的棋盤就已經(jīng)完成了。顏色、線條等個方面符合國人的審美觀。讓玩家下起來有一種和現(xiàn)實下五子棋一樣的感覺。 棋子設(shè)計棋子設(shè)計也可以使用JAVA自帶的畫圖算法,分為黑白兩種顏色的棋子,畫一個實心圓即可表示棋子。具體的實現(xiàn)設(shè)計如圖35所示:圖35 棋子設(shè)計流程圖棋子設(shè)計就需要使用java自帶的畫圖方法,獲取橫豎交叉點,然后以該點為圓心,畫一個半徑為13的圓,然后填充兩種顏色:黑色和白色。完成后判定該圓是否屬于剛剛落下的棋子,如果是,則在填充一個半徑為6的紅色圓,表示該棋子剛剛走完。 落子算法設(shè)計 由于需要設(shè)計單機游戲和聯(lián)機對戰(zhàn)。但是該算法不涉及到聯(lián)機對戰(zhàn),所以該算法只針對單機游戲。 初步設(shè)定單機游戲分為三種難度等級。分別為容易、中等和困難。我們可以通過一個算法來體現(xiàn)不同難度,電腦只能從玩家手中獲取玩家下棋的情況,包括以下幾種情況:1. 當計算出的自己已經(jīng)有四個連珠并且沒有被堵住的情況下當然也就是說下一顆子就必贏的情況2. 當計算出的對方已經(jīng)有四個連珠并且沒有被堵住的情況下當然也就是說必須堵住3. 當計算出的自己已經(jīng)有三個連珠并且沒有被堵住的情況下當然也就是說下一顆子就必贏的情況4. 當計算出的對方已經(jīng)有三個連珠并且沒有被堵住的情況下當然也就是說必須堵住5. 四三連的情況 6. 三三連的情況 其算法流程圖如圖36所示:圖 36 五子棋算法流程圖 開始下子,系統(tǒng)賦予該棋子(Value)初始值,然后系統(tǒng)自動分“\” “/” “–” “|”這四個方向進行判斷是否結(jié)束。當系統(tǒng)定義為簡單的時候只能滿足以下情況:1. 當計算出的自己已經(jīng)有四個連珠并且至少有一個沒有被其他顏色棋子攔截的情況下,就會自動去補齊。2. 當計算出的對方已經(jīng)有四個連珠并且沒有被攔截住的情況就會去攔截。 其他情況則不攔截。所以簡單的電腦較為容易。中等難度算法1. 當自己已經(jīng)有四個連珠并且至少有一個沒有被其他顏色棋子攔截的情況下,就會自動去補齊。2. 當計算出的對方已經(jīng)有四個連珠并且沒有被攔截住的情況就會去攔截。3. 當計算出的自己已經(jīng)有三個連珠并且沒有被攔截的情況下就會繼續(xù)補齊到第四顆棋子,然后繼續(xù)1號操作。 4. 當計算出的對方已經(jīng)有三個連珠并且沒有被攔截的情況就會主動去攔截。 當為棋盤出現(xiàn)四三連(三三連)連子的情況時候它不攔截當系統(tǒng)設(shè)定為困難的時候1. 當計算出的自己已經(jīng)有四個連珠并且至少有一個沒有被其他顏色棋子攔截的情況下,就會自動去補齊。2. 當計算出的對方已經(jīng)有四個連珠并且沒有被攔截住的情況就會去攔截。3. 當計算出的自己已經(jīng)有三個連珠并且沒有被攔截的情況下就會繼續(xù)補齊到第四顆棋子,然后繼續(xù)1號操作。 4. 當計算出的對方已經(jīng)有三個連珠并且沒有被攔截的情況就會主動去攔截。 5. 當計算機即將出現(xiàn)四三連的情況時候,計算機就會自動去補齊。6. 當計算機即將出現(xiàn)三三連的情況時候,計算機就會自動去補齊。7. 當對方快或者已經(jīng)出現(xiàn)四三連子的時候,電腦就會視優(yōu)先級去攔截一個方向。8. 當對方快或者已經(jīng)出現(xiàn)三三連子的時候,電腦就會視優(yōu)先級去攔截一個方向。 判斷輸贏設(shè)計五子棋判斷輸贏的規(guī)則就是連續(xù)五個顏色相同的子,代表該顏色所代表的一方獲勝。其具體設(shè)計流程圖如圖37所示: 圖37 五子棋輸贏判斷流程圖五子棋游戲勝負的判斷是五子棋游戲的最基本的算法設(shè)計。根據(jù)五子棋游戲的規(guī)則,當任一行、列、斜行連續(xù)相同的棋子數(shù)達到5以后,則判定改色棋子的玩家勝利。所以設(shè)計判斷五子棋輸贏的方法就從查找連續(xù)相同棋子開始。首先從橫向查找,循環(huán)查找橫向是否有連續(xù)顏色相同的五個以上的棋子。若有,則判斷勝利,若沒有,則可以豎向查找,步驟和橫向查找類似。若有,則判斷勝利,若沒有,則可以繼續(xù)斜向查找,其步驟和判斷結(jié)果和前面類似。若還是不能判斷勝利,則搜索是否還有可下的棋盤點位。若有,則證明判斷失敗,若沒有則可以宣布和棋。五子棋的判定方法不分單機或者聯(lián)網(wǎng),無論是和電腦對戰(zhàn),還是和玩家聯(lián)機對戰(zhàn)其判斷結(jié)果都如上述方法來判斷。 網(wǎng)絡(luò)五子棋算法設(shè)計 網(wǎng)絡(luò)五子棋是使用的Socket網(wǎng)絡(luò)編程來實現(xiàn)的。下面先介紹下Socket編程流程圖:圖38 Socekt原理流程圖 這個是整個Socket原理流程圖。利用這個原理可以把它應(yīng)用到網(wǎng)絡(luò)五子棋的流程圖。網(wǎng)絡(luò)五子棋的整體設(shè)計思路如圖39所示:圖39 網(wǎng)絡(luò)五子棋網(wǎng)絡(luò)通信原理圖 首先開啟服務(wù)器程序為客戶端提供服務(wù),初始化。然后等待已注冊好的客戶端程序的連接;客戶端主程序開始運行,初始化。通過客戶端代理程序向服務(wù)器端發(fā)送連接處理請求;服務(wù)器端監(jiān)聽到客戶端發(fā)送過來的請求后,進行相應(yīng)的處理,并將處理結(jié)果打包,由服務(wù)器代理程序?qū)⑻幚砗玫慕Y(jié)果包發(fā)送到客戶端;客戶端這時就可以接收到來自服務(wù)器端處理好的數(shù)據(jù)并做相應(yīng)的處理,如客戶端界面刷新顯示數(shù)據(jù)等問題。接著不斷重復以上操作。從而實現(xiàn)網(wǎng)絡(luò)對戰(zhàn)通信的目的。第四章 軟件的具體實現(xiàn)第四章 軟件的具體實現(xiàn)首先用MyEclipse來建一個工程,我將此工程的名字命為:FIR。然后在我所建的工程里建立一個包,包名為goumoku。再在包里面建立我需要的類,建立一個名字為MainFrame的JAVA類,而且同時引入MouseListener 這個監(jiān)聽的接口。通過這個接口實現(xiàn)對五子棋的每項功能進行鼠標監(jiān)聽。然后準備一個算法類Qipan,其中包括三種算法對比,分別為簡單,中等,復雜三個等級,這樣可以提高游戲者的興趣,根據(jù)自己的技術(shù)選擇相應(yīng)的難度。也包括棋盤的設(shè)計,輸贏的判斷,下子的判斷等功能。最后建立服務(wù)器端和客服端,實現(xiàn)網(wǎng)絡(luò)編程。 圖41 單機游戲主界面當玩家運行程序以后,就會出現(xiàn)個棋盤的主界面。這個界面是有木質(zhì)顏色來作為棋盤的底色。而且棋盤已經(jīng)畫成功。等待玩家下一個步驟,是否選擇聯(lián)機游戲或者選擇單機游戲。當玩家選擇好了單機游戲以后,由于本軟件實現(xiàn)了難度選擇,所以玩家可以選擇難度(默認為中等難度),難度分為三種:簡單,中等,困難。在玩家選擇了單機游戲而且又選擇好了難度以后,系統(tǒng)會更具玩家所選擇的游戲難度來體現(xiàn)電腦的水平。當玩家選擇聯(lián)機游戲時,系統(tǒng)會出現(xiàn)等待的界面,當系統(tǒng)掃描局域網(wǎng)的IP,若該局域網(wǎng)內(nèi)有個IP也在運行次程序,則主動匹配,完成網(wǎng)絡(luò)游戲的功能。若無IP運行,則系統(tǒng)將一直搜索等待。棋盤實現(xiàn)核心代碼如下圖:圖42 棋盤實現(xiàn)核心代碼圖43 五子棋下棋界面當玩家在選擇是否單機或聯(lián)機以后,就可以下棋了,圖41顯示了玩家單機游戲的界面,無論是人機五子棋,還是人人五子棋在下棋的動作方面都如圖41所示的方法來顯示。其落子的判定是根據(jù)玩家的鼠標點擊來獲取時間源,然后對鼠標點擊時間判定,獲取鼠標點擊坐標。獲取坐標以后,首先需要判定這個坐標點有無已經(jīng)存在的棋子,若存在則點擊無效,若不存在,則根據(jù)坐標與最近的十字交叉點相匹配。獲取十字交叉點以后,則系統(tǒng)畫出相對應(yīng)的黑白棋子,下棋子事件就成功了。 若玩家選取的是單機游戲,則可以選取難度,每個難度等級都有對應(yīng)的算法。三個難度選擇不同,對應(yīng)的算法不同。系統(tǒng)定義為簡單的時候只能滿足以下情況:1. 當計算出的自己已經(jīng)有四個連珠并且至少有一個沒有被其他顏色棋子攔截的情況下,就會自動去補齊。2. 當計算出的對方已經(jīng)有四個連珠并且沒有被攔截住的情況就會去攔截。3. 當計算出的自己已經(jīng)有三個連珠并且沒有被攔截的情況下就會繼續(xù)補齊到第四顆棋子,然后繼續(xù)1號操作。 其他情況則不攔截。系統(tǒng)定義為中等難度時候會滿足1. 當計算出的自己已經(jīng)有四個連珠并且至少有一個沒有被其他顏色棋子攔截的情況下,就會自動去補齊。2. 當計算出的對方已經(jīng)有四個連珠并且沒有被攔截住的情況就會去攔截。3. 當計算出的自己已經(jīng)有三個連珠并且沒有被攔截的情況下就會繼續(xù)補齊到第四顆棋子,然后繼續(xù)1號操作。 4. 當計算出的對方已經(jīng)有三個連珠并且沒有被攔截的情況就會主動去攔截。 當為四三連(三三連)連的時候它不攔截系統(tǒng)定義為困難難度時候會滿足1. 當計算出的自己已經(jīng)有四個連珠并且至少有一個沒有被其他顏色棋子攔截的情況下,就會自動去補齊。2. 當計算出的對方已經(jīng)有四個連珠并且沒有被攔截住的情況就會去攔截。3. 當計算出的自己已經(jīng)有三個連珠并且沒有被攔截的情況下就會繼續(xù)補齊到第四顆棋子,然后繼續(xù)1號操作。 4. 當計算出的對方已經(jīng)有三個連珠并且沒有被攔截的情況就會主動去攔截。 5. 當計算機即將出現(xiàn)四三連的情況時候,計算機就會自動去補齊。6. 當計算機即將出現(xiàn)三三連的情況時候,計算機就會自動去補齊。困難等級的難度所有三子以上的情況都會攔截圖44 五子
點擊復制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1