2015-04-07 95 views
0

所以我創建了一個遊戲,比較兩個數字,humanChoseroomChose。我有一個聲明,如果比較兩個數字,如果數字不匹配,控制檯打印出「這是不對的!」。如果數字匹配,則打印出「你是對的!」。無論您打到什麼數字鍵humanChose成爲。例如,如果你打了3個關鍵humanChose變得3.對於一些奇怪的原因,如果我按3和roomChose是2還在說我是正確的無論什麼。任何方式我可以更改我的代碼,以便它比較數字嗎?提前致謝。的Java int值進行比較,但沒有作出正確的比較

檢查類代碼:

public class SeeIfRight { 
public void seeIfRight(){ 
    Pick p = new Pick(); 
    GameStateManager gsm = new GameStateManager(); 
    MapStateChoose msc = new MapStateChoose(gsm); 
    if(p.roomChosen == msc.humanChose){ 
     System.out.println("You're right!!!"); 
    } 
    if(p.roomChosen != msc.humanChose){ 
     System.out.println("You're wrong!!!"); 
    } 
} 

} 

數確定代碼:

public class MapStateChoose { 
    private void select1() throws InterruptedException { 
      humanChose = 1; 
      si.seeIfRight(); 
     } 

     public void keyPressed(int k) throws InterruptedException { 
      if(k == KeyEvent.VK_1){ 
       select1(); 
      } 
      if(k == KeyEvent.VK_2){ 
       select2(); 
      } 
      if(k == KeyEvent.VK_3){ 
       select3(); 
      } 
      if(k == KeyEvent.VK_4){ 
       select4(); 
      } 
      if(k == KeyEvent.VK_5){ 
       select5(); 
      } 
      } 



     private void select5() { 
      // TODO Auto-generated method stub 
      humanChose = 5; 
      si.seeIfRight(); 
     } 
     private void select4() { 
      // TODO Auto-generated method stub 
      humanChose = 4; 
      si.seeIfRight(); 
     } 
     private void select3() { 
      // TODO Auto-generated method stub 
      humanChose = 3; 
      si.seeIfRight(); 
     } 
     private void select2() { 
      // TODO Auto-generated method stub 
      humanChose = 2; 
      si.seeIfRight(); 
     } 

匹克類:

public class Pick { 
public int roomChosen; 
    public void pickRoom(Random rand){ 

     int room = rand.nextInt(99); 
System.out.println(room); 
if(room < 31){ 
    roomChosen = 1; 
    System.out.println("Treasure has been hidden in the Great Hall!"); 
} 
if(room ==31){ 
    roomChosen = 2; 
    System.out.println("Treasure has been hidden in the Library!"); 
} 
    if(room > 31 && room < 46){ 
     roomChosen = 2; 
     System.out.println("Treasure has been hidden in the Library!"); 
    } 
    if(room == 46){ 
     roomChosen = 3; 
     System.out.println("Treasure has been hidden in the Den!"); 
    } 
    if(room > 46 && room < 52){ 
     roomChosen = 3; 
     System.out.println("Treasure has been hidden in the Den!"); 

    } 
    if(room == 52){ 
     roomChosen = 4; 
     System.out.println("Treasure has been hidden in the Dining Hall!"); 
    } 
    if(room > 52 && room < 80){ 
     roomChosen = 4; 
     System.out.println("Treasure has been hidden in the Dining Hall!"); 
    } 
    if(room> 79){ 
     roomChosen = 5; 
     System.out.println("Treasure has been hidden in the Front Hall!"); 
    } 

    } 






} 
+0

你得到了「你發現了寶藏」的消息多次對不同的房間? – Zymus

+0

是的。 「無論您點擊哪個房間,您都能找到寶藏。」 – Ethan

+0

這是因爲你沒有使用,如果其他人。多個條件返回true。 – Zymus

回答

0

我想你不使用p對象調用PickRoom()方法,這樣roomChoosen變量就會得到一些價值並可以進行比較。