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

        ?

        基于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ù)獨(dú)游戲
        瘋狂的游戲
        飛碟探索(2016年11期)2016-11-14 19:34:47
        爆笑游戲
        第八章直接逃出游戲
        第八章 直接逃出游戲
        游戲五計(jì)算
        水蜜桃视频在线观看免费18| 日本一区二区三区精品免费| av高清视频在线麻豆免费观看| 精品露脸熟女区一粉嫩av| 一个人看的视频在线观看| 婷婷色婷婷开心五月四房播播| 精品一区二区三区在线观看| 97av在线播放| 好爽要高潮了在线观看| 日韩有码在线观看视频| 麻豆精品久久久久久中文字幕无码| 亚洲gv白嫩小受在线观看| 午夜国产精品久久久久| 美女丝袜诱惑在线播放蜜桃| 精品国产日韩一区2区3区| 秘书边打电话边被躁bd视频| 精品人妻伦九区久久AAA片69| 人人妻人人添人人爽日韩欧美| 91呻吟丰满娇喘国产区| 韩国主播av福利一区二区| 日本高清一区二区在线播放| 亚洲不卡一区二区视频| 妺妺窝人体色777777| 在线亚洲午夜理论av大片| 一本大道久久a久久综合| 亚洲中文字幕av一区二区三区人| 日韩少妇人妻精品中文字幕| 亚洲av一二三四区四色婷婷| 7777精品久久久大香线蕉| 亚洲一区二区三区免费av在线| 国产精品黄色在线观看| 又黄又爽又色视频| 免费观看黄网站| 久久久国产精品ⅤA麻豆百度| 国产自拍伦理在线观看| 一个色综合中文字幕人妻激情视频| 欧美精品中文字幕亚洲专区| 91精品国产色综合久久不卡蜜 | 无码爽视频| 人人妻人人狠人人爽天天综合网| 99久久婷婷国产综合亚洲91 |