package 飞行棋5;
import java.util.Scanner;
class Map {
int mapFlag;
int[] map = new int[100]; //对战地图
int[] arr = creatArr(26);
int[] arr1 = cut(0,5,arr);
int[] arr2 = cut(6,14,arr);
int[] arr3 = cut(15,18,arr);
int[] arr4 = cut(19,25,arr);
int[] luckyTurn = arr1; //幸运轮盘
int[] landMine = arr2; //地雷位置
int[] pause = arr3; //暂停
int[] timeTunnel = arr4; //时空隧道
int[] cut(int s,int e,int[] arr){
int[] arr1 = new int[e-s+1];
int i,j;
for(i=s,j=0;i<=e;i++,j++){
arr1[j]=arr[i];
}
return arr1;
}
int[] creatArr(int a){
int[] arr =new int[a];
int i=0,j=0;
for(i=0;i<a;i++){
arr[i]=(int)(Math.random()*98+1);
for(j=0;j<i;j++){
if(arr[i]==arr[j]){
do{
arr[i]=(int)(Math.random()*98+1);
}while(arr[i]==arr[j]);
}
}
}
System.out.println();
return arr;
}
/*生成地图:
* 关卡代号为:1:幸运轮盘 2:地雷 3: 暂停 4:时空隧道 0:普通
*/
public void createMap() {
int i = 0;
//在对战地图上设置幸运轮盘
for (i = 0; i < luckyTurn.length; i++) {
map[luckyTurn[i]] = 1;
}
//在对战地图上设置地雷
for (i = 0; i < landMine.length; i++) {
map[landMine[i]] = 2;
}
//在对战地图上设置暂停
for (i = 0; i < pause.length; i++) {
map[pause[i]] = 3;
}
//在对战地图上设置时空隧道
for (i = 0; i < timeTunnel.length; i++) {
map[timeTunnel[i]] = 4;
}
}
/* 显示地图关卡对应的图形
* i 地图当前位置的关卡代号
* index 当前地图位置编号
* playerPos1 玩家1的当前位置
* playerPos2 玩家2的当前位置
* return 地图当前位置的对应图片
*/
public void getGraph(int i, int index, int playerPos1, int playerPos2) {
if (index == playerPos1 && index == playerPos2) {
System.out.print("@@");
} else if (index == playerPos1) {
System.out.print("A");
} else if (index == playerPos2) {
System.out.print("B");
} else {
switch (i) {
case 1: //幸运轮盘
luckyTurnCla.show();
break;
case 2: //地雷
landMineCla.show();
break;
case 3: //暂停
pauseCla.show();
break;
case 4: //时光隧道
timeTunnelCla.show();
break;
default:
Chess.show();
break;
}
}
}
/**
* 输出地图的奇数行(第1、3行)
* start 输出的起始点在地图上的位置
* end 输出的结束点在地图上的位置
* playerPos1 玩家1的当前位置
* playerPos2 玩家2的当前位置
*/
public void showLine1(int start, int end, int playerPos1, int playerPos2) {
for (int i = start; i < end; i++) {
getGraph(map[i], i, playerPos1, playerPos2);
}
}
/**
* 输出地图的偶数行(第2行1)
* start 输出的起始点在地图上的位置
* end 输出的结束点在地图上的位置
* playerPos1 玩家1的当前位置
* playerPos2 玩家2的当前位置
*/
public void showLine21(int start, int end, int playerPos1, int playerPos2) {
for (int i = end - 1; i >= start; i--) {
getGraph(map[i], i, playerPos1, playerPos2);
}
}
/**
* 输出地图的偶数行(第2行2)
* start 输出的起始点在地图上的位置
* end 输出的结束点在地图上的位置
* playerPos1 玩家1的当前位置
* playerPos2 玩家2的当前位置
*/
public void showLine22(int start, int end, int playerPos1, int playerPos2) {
for(int j=start;j<end;j++){
System.out.print(" ");
}
for (int i = end - 1; i >= start; i--) {
getGraph(map[i], i, playerPos1, playerPos2);
}
}
/**
* 输出地图的右竖列1
* start 输出的起始点在地图上的位置
* end 输出的结束点在地图上的位置
* playerPos1 玩家1的当前位置
* playerPos2 玩家2的当前位置
*/
public void showRLine1(int start, int end, int playerPos1, int playerPos2) {
for (int i = start; i < end; i++) {
for (int j = 30; j > 0; j--) {
System.out.print(" ");
}
getGraph(map[i], i, playerPos1, playerPos2);
System.out.println();
//System.out.println();
}
}
/**
* 输出地图的右竖列2
* start 输出的起始点在地图上的位置
* end 输出的结束点在地图上的位置
* playerPos1 玩家1的当前位置
* playerPos2 玩家2的当前位置
*/
public void showRLine2(int start, int end, int playerPos1, int playerPos2) {
for (int i = start; i < end; i++) {
for (int j = 21; j > 0; j--) {
System.out.print(" ");
}
getGraph(map[i], i, playerPos1, playerPos2);
System.out.println();
//System.out.println();
}
}
/**
* 输出地图的左竖列
* start 输出的起始点在地图上的位置
* end 输出的结束点在地图上的位置
* playerPos1 玩家1的当前位置
* playerPos2 玩家2的当前位置
*/
public void showLLine(int start, int end, int playerPos1, int playerPos2) {
for (int i = start; i < end; i++) {
getGraph(map[i], i, playerPos1, playerPos2);
System.out.println();
}
}
/**
* 显示对战地图
* playerPos1 玩家1的当前位置
* playerPos2 玩家2的当前位置
*/
public void choiceMap(int playerPos1, int playerPos2){
System.out.println("请选择地图类型:1.'2'型,2.'弓'型'");
Scanner s=new Scanner(System.in);
int select=s.nextInt();
switch(select)
{
case 1:
{
mapFlag = 1;
showMap1(0,0);
break;
}
case 2:
{
mapFlag = 2;
showMap2(0,0);
break;
}
default:
{
System.out.println("选择错误!");
System.exit(0);
}
}
System.out.println("\n\n");
System.out.println("是否更换地图:1.否 2.是");
Scanner a = new Scanner(System.in);
int choice = a.nextInt();
switch(choice){
case 1 :break;
case 2 :choiceMap(0,0);break;
default:System.out.println("输入错误! 系统默认为不更换地图!");break;
}
}
public void showMap1(int playerPos1, int playerPos2) {
showLine1(0, 31, playerPos1, playerPos2); //显示地图第一行
System.out.println(); //换行
showRLine1(31, 35, playerPos1, playerPos2); //显示地图右竖行
showLine21(35, 66, playerPos1, playerPos2); //显示地图第二行
System.out.println(); //换行
showLLine(66, 69, playerPos1, playerPos2); //显示地图左竖行
showLine1(69, 100, playerPos1, playerPos2); //显示地图第3行
}
public void showMap2(int playerPos1, int playerPos2) {
showLine1(0, 22, playerPos1, playerPos2); //显示地图第一行
System.out.println(); //换行
showRLine2(22, 26, playerPos1, playerPos2); //显示地图右竖行
showLine21(26, 48, playerPos1, playerPos2); //显示地图第二行
System.out.println(); //换行
showLLine(48, 51, playerPos1, playerPos2); //显示地图左竖行
showLine1(51, 73, playerPos1, playerPos2); //显示地图第3行
System.out.println();
showRLine2(73, 77, playerPos1, playerPos2); //显示地图右竖行
showLine21(77, 99, playerPos1, playerPos2); //显示地图第4行
}
}
飞行棋java版
需积分: 10 92 浏览量
2014-09-16
22:34:53
上传
评论
收藏 6KB RAR 举报
qu8712
- 粉丝: 0
- 资源: 4
最新资源
- ### 1、项目介绍 本项目Scrapy进行数据爬取,并使用Django框架+PyEcharts实现可视化大屏 效果如下:
- # 微信小程序-健康菜谱 基于微信小程序的一个查找检索菜谱的应用 ### 效果 !动态图(./res/gif/demo
- zabbix-get命令包资源
- 毕业设计,基于PyQt5实现的可视化界面的Python车牌自动识别系统源码
- 26-朴素贝叶斯分类.rar
- 没有安Matlab 也可以 生成FIR抽头系数工具.py
- python烟花代码.rar
- 实验目的: 1.构建基于verilog语言的组合逻辑电路和时序逻辑电路; 2.掌握verilog语言的电路设计技巧 3.完成如
- 扩展卡尔曼滤波matlab仿真
- 3_base.apk.1
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈