java骑士飞行棋Word格式.docx

上传人:b****6 文档编号:16505397 上传时间:2022-11-24 格式:DOCX 页数:19 大小:44.17KB
下载 相关 举报
java骑士飞行棋Word格式.docx_第1页
第1页 / 共19页
java骑士飞行棋Word格式.docx_第2页
第2页 / 共19页
java骑士飞行棋Word格式.docx_第3页
第3页 / 共19页
java骑士飞行棋Word格式.docx_第4页
第4页 / 共19页
java骑士飞行棋Word格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

java骑士飞行棋Word格式.docx

《java骑士飞行棋Word格式.docx》由会员分享,可在线阅读,更多相关《java骑士飞行棋Word格式.docx(19页珍藏版)》请在冰豆网上搜索。

java骑士飞行棋Word格式.docx

game.start();

//开始游戏

}

}

2、创建游戏类Game:

publicclassGame{

Mapmap;

//地图

intplayerPos1;

//对战中玩家1的当前位置

intplayerPos2;

//对战中玩家2的当前位置

String[]goAndStop=newString[2];

//走或停标识设置

String[]playerName=newString[2];

//对战角色

publicvoidinit(){

//调用createMap()生成地图

publicvoidstart(){

//两人对战开始游戏

publicvoidsetRole(intno,introle){

//设置对战角色

publicvoidplay(){

//两人对战玩法

publicintthrowShifter(intno){

//掷骰子并返回掷出的骰子数目

publicintgetCurPos(intno,intposition,intstep){

//计算玩家此次移动后的当前位置并返回移动后的位置

publicvoidjudge(){

//显示对战结果

3、定义Map类:

classMap{

int[]map=newint[100];

//对战地图

int[]luckyTurn={6,23,40,55,69,83};

//幸运轮盘

int[]landMine={5,13,17,33,38,50,64,80,94};

//地雷位置

int[]pause={9,27,60,93};

//暂停

int[]timeTunnel={20,25,45,63,72,88,90};

//时空隧道

publicvoidcreateMap(){

//生成地图

publicStringgetGraph(inti,intindex,intplayerPos1,intplayerPos2){

//显示地图关卡对应的图形并返回地图当前位置的对应图片

publicvoidshowLine1(intstart,intend,intplayerPos1,intplayerPos2){

//输出地图的奇数行(第1、3行)

publicvoidshowLine2(intstart,intend,intplayerPos1,intplayerPos2){

//输出地图的偶数行(第2行)

publicvoidshowRLine(intstart,intend,intplayerPos1,intplayerPos2){

/输出地图的右竖列

publicvoidshowLLine(intstart,intend,intplayerPos1,intplayerPos2){

//输出地图的左竖列

publicvoidshowMap(intplayerPos1,intplayerPos2){

//显示对战地图

4、定义测试类Test:

classTest{

Mapmap=newMap();

map.createMap();

map.showMap(0,0);

三、程序代码:

importjava.util.*;

//Map类

String[]playerName=newString[2];

//初始化游戏的一局

publicvoidinit(){

map=newMap();

//生成地图

playerPos1=0;

//设置玩家1起始位置

playerPos2=0;

//设置玩家2起始位置

goAndStop[0]="

on"

;

//记录玩家1下一次走或停

goAndStop[1]="

//设置玩家2下一次走或停

//开始游戏

publicvoidstart(){

//初始化

init();

System.out.println("

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※"

);

////"

//骑士飞行棋//"

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n\n"

\n~~~~~~~~~~~~~~~~~~~两人对战~~~~~~~~~~~~~~~~~~~"

\n请选择角色:

1.戴高乐2.艾森豪威尔3.麦克阿瑟4.巴顿"

Scannerinput=newScanner(System.in);

System.out.print("

请玩家1选择角色:

"

introle1=input.nextInt();

introle2;

do{

请玩家2选择角色:

role2=input.nextInt();

//双方选择角色代号

}while(role2==role1);

//不允许角色重复

setRole(1,role1);

//设置玩家1代表的角色

setRole(2,role2);

//设置玩家2代表的角色

play();

//开始两人对战

/*设置对战角色

*no玩家次序1:

玩家12:

玩家2

*role角色代号

*/

publicvoidsetRole(intno,introle){

switch(role){

case1:

playerName[no-1]="

戴高乐"

break;

case2:

艾森豪威尔"

case3:

麦克阿瑟"

case4:

巴顿"

default:

//两人对战玩法

publicvoidplay(){

\n\n\n\n"

System.out.print("

\n\n****************************************************\n"

GameStart\n"

****************************************************\n\n"

//显示对战双方士兵样式

^_^"

+playerName[0]+"

的士兵:

 A"

+playerName[1]+"

B\n"

//显示对战地图

\n图例:

+"

■暂停¤

幸运轮盘★地雷〓时空隧道∷普通\n"

map.showMap(playerPos1,playerPos2);

//游戏开始

intstep;

//存储骰子数目

while(playerPos1<

99&

&

playerPos2<

99){//有任何一方走到终点,跳出循环

//轮流掷骰子

if(goAndStop[0].equals("

)){

//玩家1掷骰子

step=throwShifter

(1);

//掷骰子

\n-----------------"

//显示结果信息

骰子数:

+step);

playerPos1=getCurPos(1,playerPos1,step);

//计算这一次移动后的当前位置

\n您当前位置:

+playerPos1);

对方当前位置:

"

+playerPos2);

-----------------\n"

//显示当前地图

if(playerPos1==99){//如果走到终点

//退出

}else{

\n"

停掷一次!

//显示此次暂停信息

//设置下次可掷状态

if(goAndStop[1].equals("

//玩家2掷骰子

step=throwShifter

(2);

playerPos2=getCurPos(2,playerPos2,step);

if(playerPos2==99){//如果走到终点

//游戏结束

****************************************************\n"

GameOver\n"

judge();

/*掷骰子

*no玩家次序

*returnstep掷出的骰子数目

publicintthrowShifter(intno){

intstep=0;

\n\n"

+playerName[no-1]+"

请您按任意字母键后回车启动掷骰子:

Stringanswer=input.next();

step=(int)(Math.random()*10)%6+1;

//产生一个1~6的数字,即掷的骰子数目

returnstep;

/*计算玩家此次移动后的当前位置

*position移动前位置

*step掷的骰子数目

*returnposition移动后的位置

publicintgetCurPos(intno,intposition,intstep){

position=position+step;

//第一次移动后的位置

if(position>

=99){

return99;

switch(map.map[position]){//根据地图中的关卡代号进行判断

case0:

//走到普通格

if(no==1&

playerPos2==position){//玩家1与对方骑兵相遇

//踩到对方,对方回到起点

:

-D哈哈哈哈...踩到了!

if(no==2&

playerPos1==position){//玩家2与对方骑兵相遇

\n◆◇◆◇◆欢迎进入幸运轮盘◆◇◆◇◆"

请选择一种运气:

1.交换位置2.轰炸"

=============================\n"

intchoice=input.nextInt();

inttemp;

switch(choice){

if(no==1){

temp=position;

position=playerPos2;

playerPos2=temp;

}elseif(no==2){

position=playerPos1;

playerPos1=temp;

6){

playerPos2=playerPos2-6;

playerPos1=playerPos1-6;

//System.out.println("

~)"

幸福的我都要哭了..."

//踩到地雷

position=position-6;

//踩到地雷退6步

~:

-("

踩到地雷,气死了..."

//下一次暂停一次

goAndStop[no-1]="

off"

//设置下次暂停掷骰子

~~>

_<

~~要停战一局了。

position=position+10;

//进入时空隧道,加走10步

|-P"

进入时空隧道,真爽!

//返回此次掷骰子后玩家的位置坐标

if(position<

0){

return0;

}elseif(position>

99){

returnposition;

//显示对战结果

publicvoidjudge(){

if(playerPos1>

playerPos2){

\n恭喜"

将军!

您获胜了!

//packages1java.xmal1;

/*生成地图:

*关卡代号为:

1:

幸运轮盘2:

地雷3:

暂停4:

时空隧道0:

普通

publicvoidcreateMap(){

inti=0;

//在对战地图上设置幸运轮盘

for(i=0;

i<

luckyTurn.length;

i++){

map[luckyTurn[i]]=1;

//在对战地图上设置地雷

landMine.length;

map[landMine[i]]=2;

//在对战地图上设置暂停

pause.length;

map[pause[i]]=3;

//在对战地图上设置时空隧道

timeTunnel.length;

map[timeTunnel[i]]=4;

/*显示地图关卡对应的图形

*i地图当前位置的关卡代号

*index当前地图位置编号

*playerPos1玩家1的当前位置

*playerPos2玩家2的当前位置

*return地图当前位置的对应图片

publicStringgetGraph(inti,intindex,intplayerPos1,intplayerPos2){

Stringgraph="

if(index==playerPos1&

index==playerPos2){

graph="

@@"

}elseif(index==playerPos1){

//graph="

♀"

A"

}elseif(index==playerPos2){

♂"

B"

switch(i){

¤

//地雷

★"

grap

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1