2017-09-29 39 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); 
} 

此代碼,如果有一個以上的馬具相同的「能力」(他們都是勝利者),只打印第一其中。作爲一項練習,你應該尋求如何展示所有這些。

相關問題