2015-04-07 77 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变量就会得到一些价值并可以进行比较。