如何让这种随机方法起作用?

时间:2013-12-24 05:58:49

标签: java arrays random

我有一款游戏,可以根据订单在屏幕上显示图案。我不希望这个订单对1 2 3 4 5 6这样的订单非常严格。我希望订单更随机。所以我正在尝试创建一个从1-6生成随机顺序的方法。我试图创建一个方法,但我失败了。任何人都可以帮我解决这个问题。

P.S。这是在java btw。

public static Random rand = new Random();

public static int[] array = new int[]{0,0,0,0,0,0};

public static void main(String[] args)
{
    for(int i =0;i<6;i++)
    {
        for (int a =0;a<6;a++)
        {
            array[i] = rand.nextInt(6)+1;
            while(array[i] == array[a])
            {
                array[i] = rand.nextInt(6)+1;
            }
        }
    }
}

3 个答案:

答案 0 :(得分:3)

  1. 创建1-6的列表
  2. 使用Collections.shuffle()
  3. 使用此列表
  4. 示例代码:

    final List<Integer> list16 = Lists.newArrayList(1,2,3,4,5,6); // guava Lists
    Collections.shuffle(list16);
    // use list16
    

    或没有番石榴:

    final List<Integer> list16 = new ArrayList<Integer>();
    for (int i = 1; i < 7; i++) {
        list16.add(i);
    }
    Collections.shuffle(list16);
    // use list16
    

答案 1 :(得分:0)

//your no.array say a[6]={0,0,0,0,0,0}

 boolean flag=true;
 int temp=0;
 for(int i=0;i<6;i++)
 {
   while(flag==true)
   {
    temp=rand.nextInt(6);
    if(a[temp]==0)
     {
      array[i] = temp+1; 
      a[temp]=1;
      flag=false;
     }


   }
   flag=true;
  }

答案 2 :(得分:0)

int num = 6;
    ArrayList<Integer> randomList = new ArrayList<Integer>(); 
    Random rand = new Random();
    for (int i = 0; i < 6; i++) {
        randomList.add(rand.nextInt(6));
    }
     for (int i = 0; i < randomList.size(); i++) {
        System.out.println("numbers  "+randomList.get(i));
    }