java编写飞行棋


/**
*
*创建地图类
*/
public class Test {
 int [] amp=new int [100];
 Random ran=new Random();
 
 public  void showMap(int indexA,int indexB){
  for(int i=0;i<=30;i++){
   
   System.out.print(getPamrky(indexA, indexB, i));
  }
  System.out.println();
  for(int i=31;i<=33;i++){
   for(int j=0;j<30;j++){
    System.out.print(" ");
   }
   System.out.println(getPamrky(indexA, indexB, i));
  }
  for(int i=64;i>=34;i--){
   System.out.print(getPamrky(indexA, indexB, i));
  }
  System.out.println();
  for(int i=65;i<=68;i++){
   System.out.println(getPamrky(indexA, indexB, i));
  }
  for(int i=69;i<100;i++){
   System.out.print(getPamrky(indexA, indexB, i));
  }
  
 }
/**
*设置陷阱的方法
*/
 public void into(){
  /**
   * 地雷
   */
 for(int i=1;i<=4;i++){
  int r=ran.nextInt(92)+4;
  if(amp[r]==0){
   amp[r]=1;
  }else{
   
   i--;
  }
 }


//时空隧道
 for(int i=1;i<=4;i++){
  int r=ran.nextInt(92)+4;
  if(amp[r]==0){
   amp[r]=2;
  }else{
   i--;
  }
 }
//幸运大轮盘
 for(int i=1;i<=4;i++){
  int r=ran.nextInt(92)+4;
  if(amp[r]==0){
   amp[r]=3;
  }else{
   i--;
  }
 }

//暂停
 for(int i=1;i<=4;i++){
  int r=ran.nextInt(92)+4;
  if(amp[r]==0){
   amp[r]=4;
  }else{
   i--;
  }
 }
 }
 
 /**
  *  创建玩家地图
  * @return
  */
 public String getPamrky(int indexA,int indexB,int index){
  String str = "";
  if (indexA == index && indexB == index) {
   str = "X";
  } else if (indexA == index) {
   str = "A"; // 玩家A
  } else if (indexB== index) {
   str = "B";
  } else {
   switch (amp[index]) {
   case 0:
    str = "*";
    break;
   case 1:
    str = "@"; // 地雷
    break;
   case 2:
    str = "#"; // 时空隧道
    break;
   case 3:
    str = "&"; // 幸运大轮盘
    break;
   case 4:
    str = "$"; // 暂停
    break;
   }
  }
  return str;
 
 }
 
}





/***
*
*创建游戏开始
/
public class BeGin {
 
 int index1,index2;
 Scanner sc=new Scanner(System.in);
 Random ran=new Random();
 boolean isb1=false,isb2=false;  //代表不暂停
 int turns;//轮流操作
 Test t=new Test();
 public static void main(String[] args) {
  BeGin G=new BeGin();
  G.show();
  
  
 }
 /**
  * 游戏开始
  */
 public void show(){
  
  t.into();
  t.showMap(index1, index2);
  System.out.println("请选择是A、B两个玩家谁先开始游戏?1.A先开始游戏; 2.B先开始游戏");
  int input=sc.nextInt();
  if(input==1){
   //A玩家开始游戏
   turns=0;
  }else{
   //B玩家开始游戏
   turns=1;
  }
  
  while(true){
   //判断AB谁先到达终点
   if(index1==99||index2==99){
    if(index1==99){
     System.out.println("A胜利");
     break;
    }
    if(index2==99){
     System.out.println("B胜利");
     break;
    }
   }
   //进行两个玩家的轮流操作
   if(turns%2==0){
    wA();
    turns++;
   }else{
    WB();
    turns++;
   }
   
   
  }
  
 }
 //第一个玩家
  public void wA(){
   if(isb1==true){
    isb1=false;
   }else{
    System.out.println("请A玩家任意键开始游戏,请开始掷骰子");
    sc.next();
    int ranNum=ran.nextInt(6)+1;
    System.out.println("玩家A的骰子数为"+ranNum);
    index1+=ranNum;
    //判断玩家的位置
    if(index1>=99){
     index1=99;
    }
    if(index1<=1){
     index1=1;
    }
    //判断地图陷阱
    switch (t.amp[index1]) {
    case 1:
     System.out.println("对不起, 你踩中了地雷");
     index1-=4;
     
     break;
    case 2:
     System.out.println("欢迎进入时空隧道");
     index1+=4;
     break;
    case 3:
     System.out.println("欢迎来到幸运大轮盘,请选择:1.对方后退四步  2.自己前进4步");
     int xuanzhe=sc.nextInt();
     if(xuanzhe==1){
      index2-=4;
     }else if(xuanzhe==2){
      index1+=4;
     }
     break;
    case 4:
      System.out.println("暂停一回合");
      isb1=true;
     break;
    }
    t.showMap(index1,index2);
   }  
   
   
  }
  //第二个玩家
  public void WB(){
   if(isb2==true){
    isb2=false;
   }else{
    System.out.println("请B玩家先进行游戏,请开始掷骰子");
    sc.next();
    int rannumB=ran.nextInt(6)+1;
    index2+=rannumB;
    if(index2>=99){
     index2=99;
    }
    if(index2<=1){
     index2=1;
    }
    switch (index2) {
    case 1:
     System.out.println("对不起, 你踩中了地雷");
     index2-=4;
     
     break;
    case 2:
     System.out.println("欢迎进入时空隧道");
     index2+=4;
     break;
    case 3:
     System.out.println("欢迎来到幸运大轮盘,请选择:1.对方后退四步  2.自己前进4步");
     int xuanB=sc.nextInt();
     if(xuanB==1){
      index2+=4;
     }else if(xuanB==2){
      index1-=4;
     }
     break;
    case 4:
      System.out.println("暂停一回合");
      isb2=true;
     break;
    }
    t.showMap(index1,index2);
   }
  }
}
  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值