В одном из моего класса, я писал эти строки:метод Перестановленные не работает по назначению
String[] score = {"2","3","4","5"};
player = new otherClass(score);
host = new otherClasee(score);
player.shuffle();
host.shuffle()
System.out.println("player is: " + Arrays.toString(player.point));
System.out.println("host is: " + Arrays.toString(host.point));
а также OtherClass является:
public class otherClass {
String[] point;
public otherClass(String[] something){
point = something;
}
public void shuffle(){
int ind;
String change;
Random rand = new Random();
for (int i = point.length - 1; i > 0; i--){
ind = rand.nextInt(i+1);
if (ind != i){
change = point[i];
point[i] = point[ind];
point[ind] = swap;
}
}
В «перетасовать()» метод внутри class "otherClass" для замены элементов точки []. Но результат, который я получаю, заключается в том, что «игрок» и «хозяин» перетасовываются точно так же. В частности, «игрок» сначала перетасовывается, а затем «хозяин». Я ожидал, что два перетасовки будут разными.
Было бы здорово, если бы мы увидели фактический метод тасования. Кроме того, если у вас есть статический алгоритм перетасовки, и вы передаете одни и те же начальные значения, вы всегда получите тот же результат. – Li357
Похоже, что ваш метод тасования не использует индуцированную случайность. – Daniel
Вам нужно вручную скопировать содержимое одного массива к другому, в противном случае вы работаете с одним и тем же объектом массива в памяти. –