Как сделать так, чтобы два одинаковых массива не отображали одно и то же значение?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как сделать так, чтобы два одинаковых массива не отображали одно и то же значение?

Сообщение Anonymous »

Я хочу создать приложение с тремя массивами. Каждый массив содержит следующие строки: «белый», «зеленый», «синий», «красный», «черный».
Нас 5 игроков. Итак, когда я запускаю приложение, каждый игрок должен получить 3 цвета. Однако ни один цвет не может быть применен более одного раза.
Так, например:
Игрок 1: красный/зеленый/синий
Игрок 2: зеленый/черный/белыйИгрок 3: синий/белый/черный
Игрок 4: белый/красный/зеленый
Игрок 5: черный/синий/красный
Чтобы упростить задачу вначале я попробовал только 1 Player с двумя цветами:
(Извините за плохое кодирование.. я в этом новичок)
package com.example.array_abgleich_test;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

public class MainActivity extends AppCompatActivity {

TextView pos, enemy1, enemy2;
Button reset;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});

pos = findViewById(R.id.pos);
enemy1 = findViewById(R.id.enemy1);
enemy2 = findViewById(R.id.enemy2);
reset = findViewById(R.id.reset);

reset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if (position[0].equals(enemy_1[0])) {
shuffleenemy_1();
}

showrandompos();
showrandomenemy1();
showrandomenemy2();

}
});

}

//--------------------------------------ARRAYS------------------------------------------------------

String[] position = {"white", "green", "blue", "red", "black"};
String[] enemy_1 = {"white", "green", "blue", "red", "black"};
String[] enemy_2 = {"white", "green", "blue", "red", "black"};

//--------------------------------------METHOD------------------------------------------------------

public void shuffleposition() {
Collections.shuffle(Arrays.asList(position));
}
public void shuffleenemy_1() {
Collections.shuffle((Arrays.asList(enemy_1)));
}
public void shuffleenemy_2(){
Collections.shuffle((Arrays.asList(enemy_2)));
}

public void showrandompos () {
shuffleposition();
pos.setText(position[0]);
pos.setText(position[1]);
pos.setText(position[2]);
pos.setText(position[3]);
pos.setText(position[4]);
}
public void showrandomenemy1 (){
shuffleenemy_1();
enemy1.setText(enemy_1[0]);
enemy1.setText(enemy_1[1]);
enemy1.setText(enemy_1[2]);
enemy1.setText(enemy_1[3]);
enemy1.setText(enemy_1[4]);
}
public void showrandomenemy2 (){
shuffleenemy_2();
enemy2.setText(enemy_2[0]);
enemy2.setText(enemy_2[1]);
enemy2.setText(enemy_2[2]);
enemy2.setText(enemy_2[3]);
enemy2.setText(enemy_2[4]);
}

}

Из другого поста я получил методы «shuffle & showrandompos», поэтому реализовал их и попытался,
нажав кнопку, чтобы проверить, совпадают ли первые позиции массива. Если да --> перемешать.
Но это не работает.
Мне удалось написать рабочий код в IntelliJ Idea, но мне не удалось перенести этот код в Android Studio.
reset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if (position[0].equals(enemy_1[0])) {
shuffleenemy_1();
}

showrandompos();
showrandomenemy1();
showrandomenemy2();

}
});


Подробнее здесь: https://stackoverflow.com/questions/785 ... same-value
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»