⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qishi.txt

📁 北大青鸟的一个JAVA小小小项目 骑士飞行棋 提供新手们研究
💻 TXT
📖 第 1 页 / 共 2 页
字号:
          case 1: 
            playerName[no-1] = "戴高乐"; 
            break; 
          case 2: 
            playerName[no-1] = "艾森豪威尔"; 
            break; 
          case 3: 
            playerName[no-1] = "麦克阿瑟"; 
            break; 
          case 4: 
            playerName[no-1] = "巴顿"; 
            break; 
          default: 
            break; 
        } 
      } 
/** 
       * 两人对战玩法 
       */ 
      public void play(){     
          System.out.println("\n\n\n\n"); 
           
        System.out.print("\n\n****************************************************\n"); 
        System.out.print("                     Game Start                    \n"); 
        System.out.print("****************************************************\n\n"); 
         
        //显示对战双方士兵样式 
        System.out.println("^_^" + playerName[0] + "的士兵: A"); 
        System.out.println("^_^" + playerName[1] + "的士兵: B\n"); 
           
        //显示对战地图 
        System.out.println("\n图例: " + "■ 暂停 ¤ 幸运轮盘   ★ 地雷   〓 时空隧道   ∷ 普通\n"); 
           
          map.showMap(playerPos1, playerPos2); 
//游戏开始 
        int step; //存储骰子数目 
          while(playerPos1 < 99 && playerPos2 < 99){ //有任何一方走到终点,跳出循环 
           
            //轮流掷骰子 
            if(goAndStop[0].equals("on")){     
                  //玩家1掷骰子 
                step = throwShifter(1);   //掷骰子 
                System.out.println("\n-----------------"); //显示结果信息 
              System.out.println("骰子数: "+ step); 
              playerPos1 = getCurPos(1, playerPos1, step);   //计算这一次移动后的当前位置 
              System.out.println("\n您当前位置: "+ playerPos1); 
              System.out.println("对方当前位置:"+ playerPos2); 
              System.out.println("-----------------\n"); 
              map.showMap(playerPos1, playerPos2); //显示当前地图 
              if(playerPos1 == 99){ //如果走到终点 
                  break;   //退出 
                } 
          }else{ 
            System.out.println("\n" + playerName[0] +"停掷一次!\n");   //显示此次暂停信息 
            goAndStop[0] = "on";   //设置下次可掷状态 
          } 
System.out.println("\n\n\n\n"); 
           
          if(goAndStop[1].equals("on")){ 
                  //玩家2掷骰子 
              step = throwShifter(2); //掷骰子 
              System.out.println("\n-----------------"); //显示结果信息 
              System.out.println("骰子数: "+ step); 
              playerPos2 = getCurPos(2, playerPos2, step);   //计算这一次移动后的当前位置 
              System.out.println("\n您当前位置: "+ playerPos2); 
              System.out.println("对方当前位置:"+ playerPos1); 
              System.out.println("-----------------\n"); 
              map.showMap(playerPos1, playerPos2); 
              if(playerPos2 == 99){ //如果走到终点 
                  break;   //退出 
                } 
          }else{ 
            System.out.println("\n" + playerName[1] + "停掷一次!\n"); //显示此次暂停信息 
            goAndStop[1] = "on"; //设置下次可掷状态 
          } 
          System.out.println("\n\n\n\n"); 
        } 
//游戏结束 
          System.out.println("\n\n\n\n"); 
          System.out.print("****************************************************\n"); 
        System.out.print("                      Game Over                    \n"); 
        System.out.print("****************************************************\n\n"); 
          judge(); 
      } 
       
       
      /** 
       * 掷骰子 
       * @param no 玩家次序 
       * @return step 掷出的骰子数目 
       */ 
      public int throwShifter(int no){ 
        int step = 0; 
        System.out.print("\n\n" + playerName[no-1] + ", 请您按任意字母键后回车启动掷骰子: "); 
        Scanner input = new Scanner(System.in); 
        String answer = input.next(); 
          step = (int)(Math.random()*10) % 6 + 1;   //产生一个1~6的数字,即掷的骰子数目 
        return step; 
      } 11楼 作者:xiaopai   
/** 
       * 计算玩家此次移动后的当前位置 
       * @param no 玩家次序 
       * @param position 移动前位置 
       * @param step 掷的骰子数目 
       * @return position 移动后的位置 
       */ 
      public int getCurPos(int no, int position, int step){ 
        position = position + step; //第一次移动后的位置 
        if(position >= 99){ 
          return 99; 
        } 
        Scanner input = new Scanner(System.in); 
        switch(map.map[position]){   //根据地图中的关卡代号进行判断 
           case 0:    //走到普通格 
             if(no ==1 && playerPos2 == position){   //玩家1与对方骑兵相遇 
               playerPos2 = 0;    //踩到对方,对方回到起点 
               System.out.println(":-D 哈哈哈哈...踩到了!"); 
             } 
             if (no == 2 && playerPos1 == position){ //玩家2与对方骑兵相遇 
               playerPos1 = 0;    //踩到对方,对方回到起点 
               System.out.println(":-D 哈哈哈哈...踩到了!"); 
             } 12楼 作者:xiaopai    发表时间:2008-06-02    [只看楼主] [刷新本帖] [回复] [顶部] 
break; 
           case 1:   //幸运轮盘 
             System.out.println("\n◆◇◆◇◆欢迎进入幸运轮盘◆◇◆◇◆"); 
             System.out.println("   请选择一种运气:"); 
             System.out.println("   1. 交换位置 2. 轰炸"); 
             System.out.println("=============================\n"); 
             int choice = input.nextInt(); 
             int temp; 
             switch(choice){ 
                 case 1: 
                   if(no == 1){ 
                     temp = position; 
                        position = playerPos2; 
                        playerPos2 = temp; 
                   }else if(no == 2){ 
                     temp = position; 
                        position = playerPos1; 
                        playerPos1 = temp; 
                   } 
                   break; 
case 2: 
                   if(no == 1 && playerPos2 < 6){ 
                     playerPos2 = 0; 
                   }else{ 
                     playerPos2 = playerPos2 - 6; 
                   } 
                   if(no == 2 && playerPos2 < 6){ 
                     playerPos1 = 0; 
                   }else{ 
                     playerPos1 = playerPos1 - 6; 
                   } 
                   break; 
             } 
             //System.out.println(":~) " + "幸福的我都要哭了..."); 
break; 
          case 2:   //踩到地雷 
            position = position -6; //踩到地雷退6步 
            System.out.println("~:-( " + "踩到地雷,气死了..."); 
            break; 
          case 3: //下一次暂停一次 
            goAndStop[no-1] = "off"; //设置下次暂停掷骰子 
            System.out.println("~~>_<~~ 要停战一局了。"); 
            break; 
          case 4:   //时空隧道 
              position = position + 10; //进入时空隧道,加走10步 
              System.out.println("|-P " + "进入时空隧道, 真爽!"); 
              break; 
        } 
//返回此次掷骰子后玩家的位置坐标     
        if(position < 0){ 
          return 0; 
        }else if(position > 99){ 
          return 99; 
        }else{ 
          return position; 
        } 
      } 
       
      /** 
       * 显示对战结果 
       */ 
      public void judge(){ 
        if(playerPos1 > playerPos2){ 
          System.out.println("\n恭喜" + playerName[0] + "将军! 您获胜了!"); 
        }else{ 
          System.out.println("\n恭喜" + playerName[1] + "将军! 您获胜了!"); 
        } 
      } 
} 
package s1java.xmal1; 
public class StartGame { 
/** 
   * 启动游戏 
   * @param args 
   */ 
public static void main(String[] args) { 
    Game game = new Game();   //创建游戏类 
        game.start();             //开始游戏 
   } 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -