重置随机生成器Android

时间:2015-08-09 21:41:01

标签: java android eclipse android-activity random

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

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;

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

我怎样才能重置我的随机,所以它并不总是选择相同的按钮?

2 个答案:

答案 0 :(得分:2)

只需使用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;

答案 1 :(得分:0)

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