2017-09-29 35 views
1
class racing_info{ 
    ArrayList<horse_info> list = new ArrayList<horse_info>(); 

    void racing_information() { 
     System.out.println("====경주 정보===="); 

     for(int i=0; i<8; i++) { 
      int speedA = (int)(Math.random()*40)+30; 
      int skillA = (int)(Math.random()*50)+20; 
      int betA = (int)(Math.random()*9)+5; 
      horse_info HI = new horse_info(speedA, skillA, betA); 
      list.add(HI); 
      System.out.println((i+1) +"번마 || 마속:" + HI.returnSpeed() + " 기수의 노련함:" + HI.returnSkill() + " 배당률:" + HI.returnBet()); 

     }System.out.println(); 

    } 


    void winner_information() { 
     double winner = 0.0; 
     double max = 0.0; 

     System.out.println("====승자===="); 
     for(int i=0; i<list.size(); i++) { 
      horse_info temp = list.get(i); 
      winner = (temp.returnSpeed() * 0.3) + (temp.returnSkill() * 0.2); 
      max = Integer.MIN_VALUE; 
     } 
     if(winner > max) { 
      max = winner; 

      System.out.println(); 
     } 
    } 
} 
class horse_info{ 
    int speed = 0; 
    int skill = 0; 
    int bet = 0; 

    horse_info(int a, int b, int c){ 
     speed = a; 
     skill = b; 
     bet = c; 
    } 
    int returnSpeed() {return speed;} 
    int returnSkill() {return skill;} 
    int returnBet() {return bet;} 
} 

我做了一个简单的'赛马'代码。所以我试图通过使用'if(winner> max){....'代码来获得胜利的马。至于结果,我得到的具有最高点(=“双料得主”的一部分)的马,但我无法得到它 简单地说,我想这样的如何根据java中的最大值获取数字?

System.out.println("No." + (i+1) + " horse is the winner!!!"); 
+0

为什么你不把你的赢家> max的for循环内? – Stultuske

+2

当我看到低等级的第一个字符和班级名称中的下划线时,我很畏惧 – GurV

+3

使用您当前的代码,最后一匹马永远是胜利者。 –

回答

0

结果以获得马你的赢家,你可以改变你winner为int代表获奖者的指标:

void winner_information() { 
    int winner=0; 
    for(int i=0; i<list.size(); i++) { 
     horse_info temp = list.get(i); 
     if(calculateProficiency(temp) > calculateProficiency(list.get(winner)) 
      winner = i 
    } 
    //Print your winner horse (i) info 
} 
double calculateProficiency(horse_info h) { 
    return (h.returnSpeed() * 0.3) + (h.returnSkill() * 0.2); 
} 

此代码,如果有一个以上的马具相同的“能力”(他们都是胜利者),只打印第一其中。作为一项练习,你应该寻求如何展示所有这些。

相关问题