【问题标题】:Reset random generator Android重置随机生成器 Android
【发布时间】:2015-11-01 18:01:19
【问题描述】:

我正在创建一个应用程序,在课堂上我有这个随机:

public class Ejemplo extends Activity implements OnClickListener {
 int ran=(int)(1*Math.random()) +1;

还有这个柜台

int contador= 0; // this is just to know how many time i won

然后我有 2 个按钮 a1 和 a2

在我的 onClick 中

     switch (v.getId()) {
    case R.id.a1:
        if(ran == 1){
            a1.setText("WIN");
            contador= contador + 1;
        }
        else{
            a1.setText("0");
        }
        a1.setClickable(false);
        break;

    case R.id.a2:
        if(ran == 2){
        a2.setText("WIN");
        contador= contador + 1;
        }

        else{
            a2.setText("0");
        }
        a2.setClickable(false);
        break;

所以问题是当我按下按钮时:新游戏随机数将具有相同的随机数,我不能再次调用活动,因为我不想重置我的计数器:contador。

我怎样才能重置我的随机数,所以它不会总是选择同一个按钮?

【问题讨论】:

    标签: java android eclipse android-activity random


    【解决方案1】:

    只需使用Random 而不是Math.random 它更容易使用,你可以这样:

    Random random = new Random(); // random generator
    
    // then inside your onClick this code
    if(random.nextBoolean()){
       // win
    } else {
       // lose
    }
    

    https://developer.android.com/reference/java/util/Random.html

    编辑:

    这真的比你想做的简单得多:

    public class Ejemplo extends Activity implements OnClickListener {
       Random random = new Random(); // random generator
    
    
    
    
       // then inside the click listener:
       @Override
       public void onClick(View v) {
    
       switch (v.getId()) {
         case R.id.a1:
            if(random.nextBoolean()){
               a1.setText("WIN");
               contador= contador + 1;
               gano();
              }
              else{
                 a1.setText("0");
              }
              a1.setClickable(false);
              break;
    

    【讨论】:

    • 我会尝试 thx,但我必须把它放在代码的什么地方?我可以有 Random random = new Random();在哪里我有我的 int run=(int)(1*Math.random()) +1;以及 switch 中的 if?
    • 是的。 Random 替换 intif-else 替换 switch
    • thx 但我不能,我在 github 上试试这个,如果你有机会看看,那就太好了:github.com/Aqwe123/Problem-with-reset-random-Android-
    • 问题是按钮不只有2个(我放了两个是为了更快),所以我必须放一个排名。
    【解决方案2】:

    int ran=(int)(1*Math.random()) +1; 放在onClick 中,而不是将其声明为活动中的实例变量。因此,每次点击时,您的 ran 变量都会有不同的值。

    【讨论】:

    • 我不能那样做,因为游戏的理念是你有两个选择,其中一个是获胜的,如果我在那次交换中选择了那个,也许没有人会获胜。然后我也不能点击两次一个按钮,只有一个
    猜你喜欢
    • 1970-01-01
    • 2012-03-13
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    • 2012-11-26
    • 2011-11-24
    相关资源
    最近更新 更多