Я хочу создать приложение с тремя массивами. Каждый массив содержит следующие строки: «белый», «зеленый», «синий», «красный», «черный».
Нас 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
Как сделать так, чтобы два одинаковых массива не отображали одно и то же значение? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как сделать так, чтобы два одинаковых массива не отображали одно и то же значение?
Anonymous » » в форуме Android - 0 Ответы
- 100 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как сделать так, чтобы два одинаковых массива не отображали одно и то же значение?
Anonymous » » в форуме Android - 0 Ответы
- 83 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Два идентичных/одинаковых решения для лит-кода на Java, но принято только одно [закрыто]
Anonymous » » в форуме JAVA - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-