Can you help me to make a function random range 0-15 with 2 number duplicate? eg: i have 6 players: A,B,C,D,E,F. random player A and B or C or D or E or F will get same random range 0-15. then we get A = 1, C = 1 or B = 4, F = 4 or E = 14, B = 14
thanks in advance for your help
Thanks guys for your help here is my complete code and its working as i was expected.
public static void main(String[] args) {
int size = 15;
ArrayList<Integer> rnd = new ArrayList<Integer>();
ArrayList<Integer> list = new ArrayList<Integer>(size);
ArrayList<Player> player = new ArrayList<Player>();
player.add(new Player(1));
player.add(new Player(2));
player.add(new Player(3));
player.add(new Player(4));
player.add(new Player(5));
player.add(new Player(6));
player.add(new Player(7));
Collections.shuffle(player);
for(int i = 0; i <= size; i++) {
list.add(i);
}
Random rand = new Random();
while(list.size() > 0) {
int index = rand.nextInt(list.size());
rnd.add(list.remove(index));
}
Iterator<Player> iter = player.iterator();
while (iter.hasNext()) {
Player first = iter.next();
Player second = iter.hasNext() ? iter.next() : first;
int rnds = rand.nextInt(rnd.size());
int a = rnd.remove(rnds);
first.setSlotID(a);
second.setSlotID(a);
System.out.println("matchmaking id: "+first.getOID()+" VS "+second.getOID()+" (battle slot: "+first.getSlotID()+" "+second.getSlotID()+")");
}
}
Player.class
public static class Player {
private int oid;
private int id;
private String name;
Player(int oid) {
this.oid = oid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getOID() {
return oid;
}
public void setOID(int oid) {
this.oid = oid;
}
public int getSlotID() {
return id;
}
public void setSlotID(int id) {
this.id = id;
}
}
output result:
- matchmaking id: 5 VS 6 (battle slot: 13 13)
- matchmaking id: 4 VS 7 (battle slot: 0 0)
- matchmaking id: 1 VS 2 (battle slot: 9 9)
- matchmaking id: 3 VS 3 (battle slot: 3 3) <-- this match dont have opponent