亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于JAVA的象棋游戲設(shè)計(jì)與實(shí)現(xiàn)

        2016-03-20 02:07:13
        關(guān)鍵詞:網(wǎng)絡(luò)通信游戲設(shè)計(jì)

        蘭 偉

        (重慶科創(chuàng)職業(yè)學(xué)院 信息工程系, 重慶 永川 402160)

        棋牌對弈類游戲是玩家利用休閑時(shí)消遣的主要競技性游戲,因具有良好的娛樂性和智慧性,深受玩家喜愛。同時(shí)軟件程序員也熱衷編寫棋牌對弈類游戲,原因是棋牌對弈類游戲可以訓(xùn)練程序員面向?qū)ο笤O(shè)計(jì)能力,同時(shí)也能學(xué)習(xí)和應(yīng)用人工智能相關(guān)知識(shí)。中國象棋,是由兩人輪流走子,以“將死”或“困斃”對方將(帥)為勝的一種棋類運(yùn)動(dòng)。由于用具簡單,趣味性強(qiáng),是當(dāng)今國內(nèi)最流行棋藝活動(dòng)之一。

        Java語言是一款非常優(yōu)秀的面向?qū)ο蟪绦蛟O(shè)計(jì)語言,因其具有極高的安全性和跨平臺(tái)性,廣泛應(yīng)用于互聯(lián)網(wǎng)、嵌入式智能終端、游戲開發(fā)等領(lǐng)域。[1]本文以Java語言為例,利用面向?qū)ο笤O(shè)計(jì)思想設(shè)計(jì)一款網(wǎng)絡(luò)對弈版的中國象棋游戲。

        一、需求分析

        (一)功能需求

        本系統(tǒng)主要需要完成網(wǎng)絡(luò)對戰(zhàn)時(shí)開始新局、走棋、認(rèn)輸、求和、悔棋、網(wǎng)絡(luò)連接設(shè)置等基本操作。

        (二)性能需求

        本系統(tǒng)完成中國象棋網(wǎng)絡(luò)對弈功能。除了滿足功能需求外,還需要考慮網(wǎng)絡(luò)質(zhì)量問題,因?yàn)榱己玫木W(wǎng)絡(luò)環(huán)境才能增加游戲樂趣。用戶對網(wǎng)絡(luò)性能要求主要體現(xiàn)連接時(shí)延、棋局同步時(shí)延和連接穩(wěn)定性方面。連接時(shí)延是指對弈雙方建立網(wǎng)格連接的平均時(shí)延,棋局同步時(shí)延是指一方玩家落子后到另一方玩家游戲界面顯示的時(shí)間差,網(wǎng)絡(luò)穩(wěn)定性是規(guī)定時(shí)間內(nèi)連接玩家之間棋局同步成功的概率。性能需求見表1。[2]

        表1 網(wǎng)絡(luò)對弈版的中國象棋性能需求

        二、核心技術(shù)

        網(wǎng)絡(luò)編程需要解決兩個(gè)問題:一個(gè)是如何在網(wǎng)絡(luò)中準(zhǔn)確定位一臺(tái)或多臺(tái)主機(jī),另一個(gè)是當(dāng)找到所需要的主機(jī)后如何進(jìn)行可靠高效的數(shù)據(jù)傳輸。Java Socket(中文翻譯成:套接字)技術(shù)就是用來解決Java網(wǎng)絡(luò)編程中主機(jī)定位和數(shù)據(jù)傳輸?shù)?,Socket實(shí)質(zhì)是雙向連通的輸入輸出流。無論是服務(wù)器端還是客戶端都可以向流中寫入和讀取信息,從而實(shí)現(xiàn)服務(wù)器與客戶端的通信功能。[3]

        三、系統(tǒng)功能設(shè)計(jì)

        本系統(tǒng)主要需要解決兩個(gè)核心問題,第一是中國象棋棋盤、棋子等各元素的抽象,即類的設(shè)計(jì);第二是對游戲友好界面的設(shè)計(jì)。

        (一)棋盤類設(shè)計(jì)

        中國象棋棋盤是一個(gè)由10條橫線和9條豎線構(gòu)成的網(wǎng)絡(luò),共90個(gè)交叉點(diǎn)。這些交叉點(diǎn)又稱為棋點(diǎn),每一個(gè)棋子只能在棋點(diǎn)上行走。為了能準(zhǔn)確記錄下棋盤的每個(gè)棋點(diǎn),可以選擇一個(gè)大小為90的數(shù)組模擬棋盤上的90個(gè)棋點(diǎn)。如圖1所示。

        圖1 中國象棋棋盤模型

        因此可以設(shè)計(jì)一個(gè)棋點(diǎn)類(ChessPoint)和一個(gè)類盤類(ChessBoard),設(shè)計(jì)如下:

        (二)棋子類設(shè)計(jì)

        中國象棋共有32顆棋子,雙方各16顆。類型有“車”、“馬”、“相/象”、“士”、“帥/將”、“炮”、“兵/士”。紅方的“帥”和黑方的“將”只是所加載的圖片不同,棋子的功能是一樣的。類似的還有“兵/士”和“相/象”。棋子另外還有所在位置、是否顯示、紅方或黑方等屬性。因此中國象棋棋子可抽象出的棋子類(ChessPiece)如下:[4]

        (三)棋子走棋規(guī)則類設(shè)計(jì)

        不同的棋子有不同的走法,即走棋規(guī)則。例如“車”的走棋規(guī)則是按水平或垂直方向無障礙行走或吃棋子。因?yàn)橹袊笃遄咂逡?guī)則較復(fù)雜,因此單獨(dú)設(shè)計(jì)一個(gè)規(guī)則類(Rule)。[5]

        (四)游戲主界面設(shè)計(jì)

        游戲主界面類ChineseChess是一個(gè)可視化的界面,因此需要繼承JFrame類。在該界面中我們通過菜單完成網(wǎng)絡(luò)設(shè)置、開始新棋局、認(rèn)輸、求和等操作。另外還要顯示棋盤及棋子,可以完成走棋操作。[6]因此,ChineseChess類設(shè)計(jì)如下:

        (五)網(wǎng)絡(luò)通信設(shè)計(jì)

        因?yàn)楸鞠到y(tǒng)為一款網(wǎng)絡(luò)對弈版的中國象棋游戲,因此需要設(shè)計(jì)網(wǎng)絡(luò)通信模塊。根據(jù)面向?qū)ο蟮木幊趟枷?,一切皆為對象,網(wǎng)絡(luò)通信模塊可以設(shè)計(jì)成一個(gè)網(wǎng)絡(luò)通信類,完成網(wǎng)絡(luò)對弈的需要。網(wǎng)絡(luò)通信類需要使用Socket技術(shù)。因網(wǎng)絡(luò)對弈需要兩臺(tái)電腦通過Internet完成對弈,因此需要輸入和輸出Socket,即服務(wù)器端和客戶端兩個(gè)方向的流實(shí)現(xiàn)數(shù)據(jù)傳輸。

        在服務(wù)器端,首先需要根據(jù)端口(port)建立一個(gè)serverSocket,然后建立一個(gè)等待客戶端的監(jiān)聽Socket,然后再各創(chuàng)建一個(gè)輸入輸出流。在客戶端需要根據(jù)服務(wù)器的IP地址和Port創(chuàng)建客戶端Socket,同樣需要各創(chuàng)建一個(gè)輸入輸出流,這樣服務(wù)器端和客戶端就可以通信了。另外網(wǎng)絡(luò)通信類中設(shè)計(jì)一個(gè)調(diào)度方法 dispatcher(String s),通過提取字符 s的信息,可以得出調(diào)用者的操作類別,包括走棋、悔棋、新游戲申請等,再根據(jù)操作類別做相應(yīng)的處理。

        四、結(jié)論

        本文在分析中國象棋走棋規(guī)則后,采用Java技術(shù)、網(wǎng)絡(luò)通信技術(shù)和面向?qū)ο蟮脑O(shè)計(jì)方法,完成了網(wǎng)絡(luò)對弈版中國象棋設(shè)計(jì),實(shí)現(xiàn)玩家通過網(wǎng)絡(luò)完成對弈功能。通過實(shí)驗(yàn)運(yùn)行,證明本次設(shè)計(jì)可行,并達(dá)到了預(yù)期效果。

        [1]Bruce Eckel.Java 編程思想[M].北京:機(jī)械工業(yè)出版社,2007:680-688.

        [2]臧利萍,程文靜,王衛(wèi)振.基于Android的中國象棋游戲的模擬[J].電腦知識(shí)與技術(shù),2014(32):7742-7743.

        [3]杜幫國.基于Java平臺(tái)的中國象棋游戲的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2013.

        [4]高偉,郭瑾,張昊.基于JAVA技術(shù)的中國象棋游戲設(shè)計(jì)與實(shí)現(xiàn)[J].大連民族學(xué)院學(xué)報(bào),2007(5):17-19.

        [5]李勇.基于移動(dòng)互聯(lián)網(wǎng)的國際象棋對弈系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2011.

        [6]戴錦餛.計(jì)算機(jī)象棋[J].微計(jì)算機(jī)應(yīng)用,1994(3):5-11.

        猜你喜歡
        網(wǎng)絡(luò)通信游戲設(shè)計(jì)
        海上軍用網(wǎng)絡(luò)通信的安全控制技術(shù)
        基于網(wǎng)絡(luò)通信的智能照明系統(tǒng)設(shè)計(jì)
        電子制作(2019年15期)2019-08-27 01:11:48
        瞞天過?!律O(shè)計(jì)萌到家
        網(wǎng)絡(luò)通信中信息隱藏技術(shù)的應(yīng)用
        談?dòng)?jì)算機(jī)網(wǎng)絡(luò)通信常見問題及技術(shù)發(fā)展
        電子制作(2017年17期)2017-12-18 06:41:06
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計(jì)叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        數(shù)獨(dú)游戲
        瘋狂的游戲
        飛碟探索(2016年11期)2016-11-14 19:34:47
        爆笑游戲
        国产一区二区三区av免费观看| 亚洲а∨天堂久久精品2021| 久久天天躁夜夜躁狠狠躁2022 | 久久国产国内精品对话对白| 羞涩色进入亚洲一区二区av | 日本高清www午色夜高清视频| 无码综合天天久久综合网| 国产福利酱国产一区二区| 91亚洲国产成人久久精品网站| 日韩欧美精品有码在线观看| 久久青青草原国产精品最新片| 狠狠亚洲婷婷综合久久久| 亚洲乱码av一区二区蜜桃av| 欧美成人www在线观看| 乱子伦视频在线看| 四虎成人精品国产永久免费| 国产av丝袜熟女丰满一区二区| 天天碰免费上传视频| 欧美精品一区二区性色a+v| 亚洲精品无人区一区二区三区| 99国产精品久久一区二区三区| 人妻 色综合网站| 真实国产乱视频国语| 国产91精品清纯白嫩| 久久久久99人妻一区二区三区| 亚洲av无码1区2区久久| 亚洲欧美日韩国产综合专区| 国产成人精品一区二区不卡| 久久国产色av免费观看| 久久久精品久久波多野结衣av| 亚洲在线视频一区二区| 丝袜美腿亚洲综合在线播放 | 国产黑色丝袜一区在线| 亚洲一级天堂作爱av| 少妇被又大又粗又爽毛片久久黑人| 精品人妻系列无码人妻免费视频| 91日本在线精品高清观看| 日本成人午夜一区二区三区| 日本中文字幕一区二区高清在线| 日韩AV无码一区二区三| 亚洲蜜臀av一区二区三区漫画|