999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JAVA技術象棋游戲的分析與設計

2017-05-09 11:27:10張昊
關鍵詞:游戲

張昊

【摘 要】Java語言具有平臺無關性、易移植性等諸多特征,得到了廣泛的應用。程序開發費用少,工作效率高,并擁有很好的用戶界面和強大的開發工具。網上數據編程體現的非常充分,是其它語言無法做到的。

本論文著眼于Java技術的應用,開發中國象棋游戲程序,完成基于Java技術象棋游戲的分析與設計,充分在游戲中體現了java的優勢。

【關鍵詞】Java 象棋 游戲 類 接口

【中圖分類號】TP311 【文獻標識碼】A 【文章編號】2095-3089(2017)06-0063-02

中國象棋被譽為中國的“國粹”,從誕生到現在已經成為國人最喜歡的棋類競技游戲,對青少年的影響也是很廣泛,雙方在象棋的對弈過程中,體驗著智慧對壘的快樂。

隨著游戲與Java技術平臺的合作,越來越多的游戲編程愛好者把Java作為了實現游戲程序的首選。如今Java技術在游戲產業中發展迅猛,并在網絡的支持下,在游戲領域中開辟了自己的廣闊天地。

游戲設計目的及意義

象棋歷史悠久,棋類博弈游戲越來越受廣大游戲愛好者的喜愛,它不僅能給對弈的雙方帶來快樂,而且還在競技的過程中感受使用計策戰術,戰勝對手的自豪感。

功能需求

通過對中國象棋游戲的需求分析,該游戲應實現棋盤界面的顯示功能,雙方下棋使用鼠標挪動棋子并吃子的功能,每走一步棋對棋譜進行記錄的功能,嚴格實現中國象棋走棋規則的功能,關閉退出游戲等功能。

象棋游戲設計的幾個要點

對弈的程序,至少應具備如下幾個部分:

①在機器中表示棋盤的方法,能夠提供一個最基本的操作界面,有了這個界面才能運行。

②產生中國象棋走法的規則,以使對弈正確地進行,并可判斷雙方是否亂走。

③實現吃子過程中的圖形替換、重繪,使得雙方能看出游戲當前的形勢。

象棋游戲棋盤的設計

中國象棋的棋盤與其它博弈類的棋盤不同,對陣雙方各執一方戰場,中間有空白河界相隔,俗稱“楚河漢界”。在己方各有一個交點互相連接的田字格,俗稱“九宮格”,“將”和“士”只能在這個范圍內走動,不能踏出。

中國象棋的棋盤如圖1-1所示:

棋盤表示就是使用一種數據結構來描述棋盤及棋盤上的棋子,通常是使用一個二維數組。一個典型的中國象棋棋盤是使用9×10的二維數組表示。每一個元素代表棋盤上的一個交點。在Java中我們在ChessBoard這個類下來具體實現,定義一個ChessPoint point[ ][ ]二維數組,縱列從1到9,橫列從A到J,這樣就表示了象棋棋盤的9×10的方陣,為每個棋子提供了放置位置。

中國象棋游戲規則的實現描述

從中國象棋游戲的棋子和規則可以看出,由于將或帥、仕和士、象和相、卒和兵的走法相同,只是棋子的標示不同,再加上車、馬、炮,所以規則的主要實現點有七點,以下對中國象棋游戲的部分棋子行棋規則實現加以描述。

首先我們對每個棋子行棋時的初始和中止位置設置為startI,startJ,endI,endJ。這樣我們就可以用這四個值表示出棋子的初始及中止位置的坐標點。

接著,我們再定義兩個整形變量xAxle和yAxle,他們分別表示初始與終止坐標值之間差值的絕對值。

將或帥:只能在王宮內移動。每一步只可以水平或垂直移動一點。

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

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

行棋規則則通過if((xAxle==1&&yAxle==0)||(xAxle==0&&yAxle==1))這條語句限定,就圖1-2所示,帥只能移動到(x2,y1)、(x2,y3)、(x1,y2)、(x3,y2)四個點,他們的坐標差絕對值只有滿足上面語句這兩種情況才可以行棋。

象或相:河界的一側。每一步只可以沿對角線方向移動兩點,另外,在移動的過程中不能夠穿越障礙。

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

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

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

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

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

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

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

對于棋子向右側跳的情況,即滿足if(endI>startI)時,我們判斷“馬腿”位置的棋子通過if(point[startI+1][startJ].isPiece())語句來判斷;對于棋子向左側跳的情況,即滿足if(endI

車:任何位置。可以水平或垂直方向移動任意個無阻礙的點。

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

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

炮:任何位置。移動起來和車很相似,但它必須跳過一個棋子來吃掉對方的一個棋子。

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

分析描述:移動起來和車很相似,但它必須跳過一個棋子來吃掉對方的一個棋子。就圖1-7所示,對于炮縱向行棋情況,即if(startI==endI),我們為了判斷行棋路線上是否有棋子,引入一個變量number,然后賦j=0,通過對炮初始位置和中止位置之間進行掃描,通過if(point[startI][j].isPiece())這條語句判斷有無阻礙的棋子,如果有棋子,則number++,這樣number這個變量就相當于一個計數器,對炮初始位置和中止位置之間棋子的數量進行統計。if(number>1),則表示初始位置和中止位置之間多于1個棋子,返回值false,不能走棋;if(number==1),則表示初始位置和中止位置之間有1個棋子,且if(point[endI][endJ].isPiece()),表示中止位置上有對方棋子,則可以走棋吃子;if(number==0&&!point[endI][endJ].isPiece()),表示初始位置和中止位置之間沒有棋子,則可以行棋。對于炮橫向行棋情況,原理同上。

本論文主要研究基于Java技術象棋游戲的分析與設計,對java 在中國象棋游戲編程中的方法和思想進行了深刻的分析,對中國象棋特殊的走棋規則給予了細致理解,充分體現了在中國象棋游戲中java的優勢。

參考文獻:

[1]耿祥義編著.《JAVA 課程設計》.清華大學出版社.

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

[3]孫鑫編著. 《Java Web開發詳解》. 2006年4月第一版. 電子工業出版社.

[4]朱戰立,沈偉編著. 《Java程序設計實用教程》. 電子工業出版社.

[5]《Java Web開發詳解》光盤視頻教程

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

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

[8]中文Java技術網 http://www.cn-java.com/

[9]Sun中國技術社區http://developers.sun.com.cn/home/sdnchina/home

[10]Java高級編程專區 http://dev.yesky.com/javagaoji/

猜你喜歡
游戲
做游戲
夜間游戲
游戲
送信游戲
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
第八章 直接逃出游戲
小學科學(2015年6期)2015-07-01 14:30:14
游戲五計算
主站蜘蛛池模板: 色欲色欲久久综合网| 91久久夜色精品| 中文天堂在线视频| 亚洲日韩每日更新| 爱做久久久久久| 免费看久久精品99| 亚洲无限乱码| 无码一区中文字幕| 99ri国产在线| 九九九精品视频| 激情乱人伦| 国产麻豆永久视频| 欧美午夜精品| www.亚洲色图.com| 4虎影视国产在线观看精品| 国产探花在线视频| 久久亚洲中文字幕精品一区| 2021国产v亚洲v天堂无码| 亚洲 日韩 激情 无码 中出| 在线观看免费AV网| 啪啪啪亚洲无码| 九色视频一区| 91极品美女高潮叫床在线观看| 日本不卡在线视频| 91精品国产丝袜| 国产后式a一视频| 国产精品原创不卡在线| 国产精品视频系列专区| 免费看a级毛片| 国产欧美日韩资源在线观看| 喷潮白浆直流在线播放| 久久无码高潮喷水| 中文字幕第4页| 91精品国产91久无码网站| 成人韩免费网站| 亚洲成人一区在线| 亚洲人人视频| 天堂亚洲网| 国产精品午夜福利麻豆| 国产在线自乱拍播放| 97视频在线精品国自产拍| 久久九九热视频| 毛片最新网址| 欧美国产综合色视频| 日本欧美在线观看| 毛片网站在线看| 呦女亚洲一区精品| 国产婬乱a一级毛片多女| 国产人人干| 国产午夜看片| 久久久久国产一级毛片高清板| 久久国产精品嫖妓| 日韩大片免费观看视频播放| 国产成人高清亚洲一区久久| 亚洲嫩模喷白浆| 91亚洲视频下载| 欧美福利在线播放| 国产丝袜第一页| 久久久久国产一区二区| 嫩草在线视频| 欧美高清三区| 亚洲香蕉久久| 自拍中文字幕| 91精品aⅴ无码中文字字幕蜜桃| AV无码一区二区三区四区| 久久综合亚洲色一区二区三区| 日本午夜影院| 色综合中文| 综合色亚洲| 992tv国产人成在线观看| 国产高潮流白浆视频| www精品久久| 色婷婷狠狠干| 88av在线| 十八禁美女裸体网站| 青青草原国产一区二区| 婷婷开心中文字幕| 国产草草影院18成年视频| 99热亚洲精品6码| 久久精品aⅴ无码中文字幕| 麻豆国产精品| 亚洲人成日本在线观看|