• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于JAVA技術(shù)象棋游戲的分析與設(shè)計(jì)

      2017-05-09 11:27:10張昊
      關(guān)鍵詞:接口游戲

      張昊

      【摘 要】Java語(yǔ)言具有平臺(tái)無(wú)關(guān)性、易移植性等諸多特征,得到了廣泛的應(yīng)用。程序開(kāi)發(fā)費(fèi)用少,工作效率高,并擁有很好的用戶界面和強(qiáng)大的開(kāi)發(fā)工具。網(wǎng)上數(shù)據(jù)編程體現(xiàn)的非常充分,是其它語(yǔ)言無(wú)法做到的。

      本論文著眼于Java技術(shù)的應(yīng)用,開(kāi)發(fā)中國(guó)象棋游戲程序,完成基于Java技術(shù)象棋游戲的分析與設(shè)計(jì),充分在游戲中體現(xiàn)了java的優(yōu)勢(shì)。

      【關(guān)鍵詞】Java 象棋 游戲 類 接口

      【中圖分類號(hào)】TP311 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】2095-3089(2017)06-0063-02

      中國(guó)象棋被譽(yù)為中國(guó)的“國(guó)粹”,從誕生到現(xiàn)在已經(jīng)成為國(guó)人最喜歡的棋類競(jìng)技游戲,對(duì)青少年的影響也是很廣泛,雙方在象棋的對(duì)弈過(guò)程中,體驗(yàn)著智慧對(duì)壘的快樂(lè)。

      隨著游戲與Java技術(shù)平臺(tái)的合作,越來(lái)越多的游戲編程愛(ài)好者把Java作為了實(shí)現(xiàn)游戲程序的首選。如今Java技術(shù)在游戲產(chǎn)業(yè)中發(fā)展迅猛,并在網(wǎng)絡(luò)的支持下,在游戲領(lǐng)域中開(kāi)辟了自己的廣闊天地。

      游戲設(shè)計(jì)目的及意義

      象棋歷史悠久,棋類博弈游戲越來(lái)越受廣大游戲愛(ài)好者的喜愛(ài),它不僅能給對(duì)弈的雙方帶來(lái)快樂(lè),而且還在競(jìng)技的過(guò)程中感受使用計(jì)策戰(zhàn)術(shù),戰(zhàn)勝對(duì)手的自豪感。

      功能需求

      通過(guò)對(duì)中國(guó)象棋游戲的需求分析,該游戲應(yīng)實(shí)現(xiàn)棋盤(pán)界面的顯示功能,雙方下棋使用鼠標(biāo)挪動(dòng)棋子并吃子的功能,每走一步棋對(duì)棋譜進(jìn)行記錄的功能,嚴(yán)格實(shí)現(xiàn)中國(guó)象棋走棋規(guī)則的功能,關(guān)閉退出游戲等功能。

      象棋游戲設(shè)計(jì)的幾個(gè)要點(diǎn)

      對(duì)弈的程序,至少應(yīng)具備如下幾個(gè)部分:

      ①在機(jī)器中表示棋盤(pán)的方法,能夠提供一個(gè)最基本的操作界面,有了這個(gè)界面才能運(yùn)行。

      ②產(chǎn)生中國(guó)象棋走法的規(guī)則,以使對(duì)弈正確地進(jìn)行,并可判斷雙方是否亂走。

      ③實(shí)現(xiàn)吃子過(guò)程中的圖形替換、重繪,使得雙方能看出游戲當(dāng)前的形勢(shì)。

      象棋游戲棋盤(pán)的設(shè)計(jì)

      中國(guó)象棋的棋盤(pán)與其它博弈類的棋盤(pán)不同,對(duì)陣雙方各執(zhí)一方戰(zhàn)場(chǎng),中間有空白河界相隔,俗稱“楚河漢界”。在己方各有一個(gè)交點(diǎn)互相連接的田字格,俗稱“九宮格”,“將”和“士”只能在這個(gè)范圍內(nèi)走動(dòng),不能踏出。

      中國(guó)象棋的棋盤(pán)如圖1-1所示:

      棋盤(pán)表示就是使用一種數(shù)據(jù)結(jié)構(gòu)來(lái)描述棋盤(pán)及棋盤(pán)上的棋子,通常是使用一個(gè)二維數(shù)組。一個(gè)典型的中國(guó)象棋棋盤(pán)是使用9×10的二維數(shù)組表示。每一個(gè)元素代表棋盤(pán)上的一個(gè)交點(diǎn)。在Java中我們?cè)贑hessBoard這個(gè)類下來(lái)具體實(shí)現(xiàn),定義一個(gè)ChessPoint point[ ][ ]二維數(shù)組,縱列從1到9,橫列從A到J,這樣就表示了象棋棋盤(pán)的9×10的方陣,為每個(gè)棋子提供了放置位置。

      中國(guó)象棋游戲規(guī)則的實(shí)現(xiàn)描述

      從中國(guó)象棋游戲的棋子和規(guī)則可以看出,由于將或帥、仕和士、象和相、卒和兵的走法相同,只是棋子的標(biāo)示不同,再加上車、馬、炮,所以規(guī)則的主要實(shí)現(xiàn)點(diǎn)有七點(diǎn),以下對(duì)中國(guó)象棋游戲的部分棋子行棋規(guī)則實(shí)現(xiàn)加以描述。

      首先我們對(duì)每個(gè)棋子行棋時(shí)的初始和中止位置設(shè)置為startI,startJ,endI,endJ。這樣我們就可以用這四個(gè)值表示出棋子的初始及中止位置的坐標(biāo)點(diǎn)。

      接著,我們?cè)俣x兩個(gè)整形變量xAxle和yAxle,他們分別表示初始與終止坐標(biāo)值之間差值的絕對(duì)值。

      將或帥:只能在王宮內(nèi)移動(dòng)。每一步只可以水平或垂直移動(dòng)一點(diǎn)。

      將或帥的行棋思路如圖1-2所示:

      分析描述:對(duì)于帥的活動(dòng)范圍,通過(guò)if(endI<=6&&endI>=4&&endJ>=8)語(yǔ)句限定,如果滿足則可以走棋,不滿足則不能走棋,這就限定棋盤(pán)下方的帥不能走出九宮格。對(duì)于將的活動(dòng)范圍,通過(guò)if(endI<=6&&endI>=4&&endJ<=3)語(yǔ)句限定,原理同上。

      行棋規(guī)則則通過(guò)if((xAxle==1&&yAxle==0)||(xAxle==0&&yAxle==1))這條語(yǔ)句限定,就圖1-2所示,帥只能移動(dòng)到(x2,y1)、(x2,y3)、(x1,y2)、(x3,y2)四個(gè)點(diǎn),他們的坐標(biāo)差絕對(duì)值只有滿足上面語(yǔ)句這兩種情況才可以行棋。

      象或相:河界的一側(cè)。每一步只可以沿對(duì)角線方向移動(dòng)兩點(diǎn),另外,在移動(dòng)的過(guò)程中不能夠穿越障礙。

      象或相的行棋思路如圖1-3所示:

      分析描述:對(duì)于象的活動(dòng)范圍,通過(guò)if(endJ<=5)語(yǔ)句就可限定,如果滿足則可以走棋,不滿足則不能走棋,這就限定了象不能越過(guò)河界到對(duì)方盤(pán)面去。對(duì)于相的活動(dòng)范圍,通過(guò)if(endJ>=6)語(yǔ)句限定,原理同上。

      行棋規(guī)則比較特殊,它是沿對(duì)角線方向移動(dòng)兩點(diǎn),另外,在移動(dòng)的過(guò)程中不能夠穿越障礙。就圖1-3所示,象要走到(x3,y3)這一點(diǎn)上的前提條件是(x2,y2)這個(gè)田字格的中心,也就是“象眼”的位置沒(méi)有棋子,對(duì)于這一點(diǎn)的坐標(biāo),我們要定義兩個(gè)變量centerI=(startI+endI)/2和centerJ=(startJ+endJ)/2,這樣當(dāng)我們行棋時(shí),就可以用if(point[centerI][centerJ].isPiece())這條語(yǔ)句判斷“象眼”位置是否有棋子,如果有則返回false,無(wú)則返回true。對(duì)于沿對(duì)角線方向移動(dòng)兩點(diǎn)的實(shí)現(xiàn),則通過(guò)if(xAxle==2&&yAxle==2)語(yǔ)句來(lái)限定,他們的坐標(biāo)差絕對(duì)值只有滿足上面語(yǔ)句這種情況才可以行棋。

      馬:任何位置。每一步只可以水平或垂直移動(dòng)一點(diǎn),再按對(duì)角線方面向左或者右移動(dòng)。另移動(dòng)的過(guò)程中不能夠穿越障礙。

      馬的行棋思路如圖1-4,1-5所示,有兩種形式:

      分析描述:行棋規(guī)則比較特殊,每一步只可以水平或垂直移動(dòng)一點(diǎn),再按對(duì)角線方面向左或者右移動(dòng)。另外移動(dòng)的過(guò)程中不能夠穿越障礙。

      就圖1-4所示,這種跳躍形式屬于if(xAxle==2&&yAxle==1)這一情況,馬可以走到(x1,y1)(x5,y1)(x1,y3)(x5,y3)這四個(gè)點(diǎn)上的前提條件是(x2,y2)(x4,y2)這兩個(gè)點(diǎn)上,也就是“馬腿”的位置沒(méi)有棋子。

      對(duì)于棋子向右側(cè)跳的情況,即滿足if(endI>startI)時(shí),我們判斷“馬腿”位置的棋子通過(guò)if(point[startI+1][startJ].isPiece())語(yǔ)句來(lái)判斷;對(duì)于棋子向左側(cè)跳的情況,即滿足if(endI

      車:任何位置。可以水平或垂直方向移動(dòng)任意個(gè)無(wú)阻礙的點(diǎn)。

      車的行棋思路如圖1-6所示:

      分析描述:可以水平或垂直方向移動(dòng)任意個(gè)無(wú)阻礙的點(diǎn)。就圖1-6所示,對(duì)于車縱向行棋情況,即if(startI==endI),先賦j=0,通過(guò)對(duì)車初始位置和中止位置之間進(jìn)行掃描,通過(guò)if(point[startI][j].isPiece())這條語(yǔ)句判斷有無(wú)阻礙的棋子。對(duì)于車橫向行棋情況,即if(startJ==endJ),先賦i=0,通過(guò)對(duì)車初始位置和中止位置之間進(jìn)行掃描,通過(guò)if(point[i][startJ].isPiece())這條語(yǔ)句判斷有無(wú)阻礙的棋子。

      炮:任何位置。移動(dòng)起來(lái)和車很相似,但它必須跳過(guò)一個(gè)棋子來(lái)吃掉對(duì)方的一個(gè)棋子。

      炮的行棋思路如圖1-7所示:

      分析描述:移動(dòng)起來(lái)和車很相似,但它必須跳過(guò)一個(gè)棋子來(lái)吃掉對(duì)方的一個(gè)棋子。就圖1-7所示,對(duì)于炮縱向行棋情況,即if(startI==endI),我們?yōu)榱伺袛嘈衅迓肪€上是否有棋子,引入一個(gè)變量number,然后賦j=0,通過(guò)對(duì)炮初始位置和中止位置之間進(jìn)行掃描,通過(guò)if(point[startI][j].isPiece())這條語(yǔ)句判斷有無(wú)阻礙的棋子,如果有棋子,則number++,這樣number這個(gè)變量就相當(dāng)于一個(gè)計(jì)數(shù)器,對(duì)炮初始位置和中止位置之間棋子的數(shù)量進(jìn)行統(tǒng)計(jì)。if(number>1),則表示初始位置和中止位置之間多于1個(gè)棋子,返回值false,不能走棋;if(number==1),則表示初始位置和中止位置之間有1個(gè)棋子,且if(point[endI][endJ].isPiece()),表示中止位置上有對(duì)方棋子,則可以走棋吃子;if(number==0&&!point[endI][endJ].isPiece()),表示初始位置和中止位置之間沒(méi)有棋子,則可以行棋。對(duì)于炮橫向行棋情況,原理同上。

      本論文主要研究基于Java技術(shù)象棋游戲的分析與設(shè)計(jì),對(duì)java 在中國(guó)象棋游戲編程中的方法和思想進(jìn)行了深刻的分析,對(duì)中國(guó)象棋特殊的走棋規(guī)則給予了細(xì)致理解,充分體現(xiàn)了在中國(guó)象棋游戲中java的優(yōu)勢(shì)。

      參考文獻(xiàn):

      [1]耿祥義編著.《JAVA 課程設(shè)計(jì)》.清華大學(xué)出版社.

      [2]王克宏編著.《Java技術(shù)教程(基礎(chǔ)篇)》.2002年4月第一版.清華大學(xué)出版社.

      [3]孫鑫編著. 《Java Web開(kāi)發(fā)詳解》. 2006年4月第一版. 電子工業(yè)出版社.

      [4]朱戰(zhàn)立,沈偉編著. 《Java程序設(shè)計(jì)實(shí)用教程》. 電子工業(yè)出版社.

      [5]《Java Web開(kāi)發(fā)詳解》光盤(pán)視頻教程

      [6]Thomas Petche編著.《Java游戲編程》.清華大學(xué)出版社.

      [7]王小春編著.《PC游戲編程》.重慶大學(xué)出版社.

      [8]中文Java技術(shù)網(wǎng) http://www.cn-java.com/

      [9]Sun中國(guó)技術(shù)社區(qū)http://developers.sun.com.cn/home/sdnchina/home

      [10]Java高級(jí)編程專區(qū) http://dev.yesky.com/javagaoji/

      猜你喜歡
      接口游戲
      某電站工程設(shè)計(jì)管理與施工、質(zhì)量控制接口關(guān)系研究
      脫硝數(shù)據(jù)傳輸系統(tǒng)遠(yuǎn)程無(wú)線監(jiān)控技術(shù)的研發(fā)與應(yīng)用
      中文信息(2016年10期)2016-12-12 12:56:55
      西門(mén)子SPPA—T3000在委內(nèi)瑞拉燃機(jī)電廠中的應(yīng)用與接口
      數(shù)獨(dú)游戲
      瘋狂的游戲
      飛碟探索(2016年11期)2016-11-14 19:34:47
      爆笑游戲
      中俄網(wǎng)絡(luò)語(yǔ)言編碼接口問(wèn)題的研究
      科技視界(2016年3期)2016-02-26 10:14:32
      第八章直接逃出游戲
      工布江达县| 沂源县| 独山县| 桐梓县| 漳州市| 荣昌县| 中阳县| 本溪市| 尤溪县| 福泉市| 巨鹿县| 阿拉善左旗| 鹤壁市| 津市市| 东乡| 乐安县| 衡东县| 项城市| 庆云县| 榕江县| 紫阳县| 晋州市| 留坝县| 疏附县| 阿拉尔市| 循化| 会宁县| 彩票| 油尖旺区| 抚远县| 清徐县| 富蕴县| 长丰县| 唐山市| 吉木乃县| 博乐市| 噶尔县| 杭州市| 庆阳市| 中山市| 嘉善县|