2013-06-18 49 views
-2

我有一个问题,我的代码,这是一个简单的骰子游戏:Java Dice游戏无法正常工作。需要一些建议

import java.util.Random; 
class Zaruri { 
    public static void main(String args[]) { 
     Random roll = new Random(); 
     int[] zar = new int[2]; 

      for (int i = 0; i < 1; i++) { 
       for(int k = 0; k < 2; k++){ 
       zar[i] = (int) (roll* 6) + 1; 
      } 
      if (zar[0] == zar[1]) { 
       System.out.println("Your numbers are : " + zar[0] + " and " + zar[1] + "\nYou won! \nYEEEY!!"); 

      } else { 
       System.out.println("Your numbers are : " + zar[0] + " and " + zar[1] + "\nYou lost, better luck next time!"); 
      } 
      } 
    } 
} 

我不知道如何使它发挥作用,首先它不会让打印出的第二个骰子(它总是来的0),如果我把多一个1卷和(roll.nextDouble * 6)+ 1;它会工作,但我不想再多一次滚动。 CAn你帮我吗?我究竟做错了什么??

回答

0

尝试使用的Math.random(),而不是随机()

0

我不明白为什么你有两个循环,尤其是一个与k为指标。你没有在任何地方使用那个k。试试这个:

for (int i = 0; i < 2; i++) { 
    zar[i] = roll.nextInt(6) + 1; 
} 
3

你并不需要2个for循环。只需1循环即可。删除外部i循环,并让k循环做你的随机int生成。

for (int k = 0; k < 2; k++) { 
    zar[k] = roll.nextInt(6) + 1; // k loop populates your array. 
} 
if (zar[0] == zar[1]) { 
    System.out.println("Your numbers are : " + zar[0] + " and " 
      + zar[1] + "\nYou won! \nYEEEY!!"); 

} else { 
    System.out.println("Your numbers are : " + zar[0] + " and " 
      + zar[1] + "\nYou lost, better luck next time!"); 
} 
+0

坦克你老兄!:)它的工作,我明白它现在。再次感谢@ R.J – Victor

+0

很高兴帮助! :) – SudoRahul

0

删除与i第一循环,让只有k循环。 然后,它不会在逻辑上工作,并始终打印0,因为您不生成随机数。 您必须做zar[i]=roll.nextInt(6)+1;,因为范围从0(包括)和6(不包括)。从逻辑上说,你必须添加1,无论结果如何,以获得1-6的范围。

0

有一些问题,我会去通过他们1 1

for (int i = 0; i < 1; i++) { 
     for(int k = 0; k < 2; k++){ 
      zar[i] = (int) (roll* 6) + 1; 
     } 
     <snip rest of loop> 

回路具有k在做什么,但重复的行zar[i] = (int) (roll* 6) + 1;几次,它什么都不做,这个循环应该是除去


 for (int i = 0; i < 1; i++) { 
      for(int k = 0; k < 2; k++){ 
       zar[i] = (int) (roll* 6) + 1; 
      } 
      if (zar[0] == zar[1]) { 
       System.out.println("Your numbers are : " + zar[0] + " and " + zar[1] + "\nYou won! \nYEEEY!!"); 

      } else { 
       System.out.println("Your numbers are : " + zar[0] + " and " + zar[1] + "\nYou lost, better luck next time!"); 
      } 
     } 

打印语句中的for循环,所以它通过循环每一次打印出来,冷杉通过循环的第一次只有第一个模具将被设置,第二次只有前两个等等等等。


zar[i] = (int) (roll* 6) + 1; 

卷是类随机的,它不是一个数字,但产生的随机数,这应该是

zar[i] = (int) (roll.nextDouble()* 6) + 1; 

或更理智(你到底想要一个int反正

zar[i] = roll.nextInt()+ 1; 


for (int i = 0; i < 1; i++) 

人数从i = 0到我< 1仅仅是一个数字,0,1骰子从未设置,因为它只能通过循环将一次

相关问题