Случайные кнопки в викторине на Android. Одна из кнопок должна быть правильной. Как это сделать?JAVA

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

Сообщение Anonymous »


Я пытаюсь реализовать своего рода распознаватель масштаба, своего рода викторину в Android. Он будет воспроизводить случайный интервал, затем я назову этот интервал именем гаммы (фригий, лидийский, дориан и т. д.), а затем отобразится 4 кнопки, каждая из которых является альтернативой. Моя проблема: как всегда показывать одну правильную альтернативу, поскольку возможно, что генерация только случайным образом не приведет к правильному ответу? Вот код (я использую JFugue). :

пакет com.example.intervalguesser; импортировать android.os.Bundle; импортировать com.google.android.material.snackbar.Snackbar; импортировать androidx.appcompat.app.AppCompatActivity; импортировать android.view.View; импортировать android.widget.Button; импортировать android.widget.TextView; импортировать org.jfugue.player.Player; импортировать org.jfugue.theory.Intervals; импортировать org.jfugue.theory.Note; импортировать org.jfugue.theory.Scale; импортировать androidx.core.view.WindowCompat; импортировать androidx.navigation.NavController; импортировать androidx.navigation.Navigation; импортировать androidx.navigation.ui.AppBarConfiguration; импортировать androidx.navigation.ui.NavigationUI; импортировать com.example.intervalguesser.databinding.ActivityAdvinhaEscalaBinding; импортировать java.util.ArrayList; публичный класс AdvinhaEscala расширяет AppCompatActivity { Случайное aleatorio = новый Random(); Кнопка альтернативаUm; Кнопка альтернативаDois; Альтернатива кнопки Tres; Кнопка альтернативаQuatro; int respostasCorretas = 0; int respostasErradas = 0; частные интервалы adicionaIntervalos() { String[] notas = Note.NOTE_NAMES_COMMON; IntervaloFrigio = new Intervals("1 b2 b3 4 5 b6 b7").setRoot(notas[aleatorio.nextInt(notas.length)]); IntervaloLidio = new Intervals("1 2 3 4# 5 6 7").setRoot(notas[aleatorio.nextInt(notas.length)]); IntervaloPentBlues = new Intervals("1 b3 4 b5 5 b7").setRoot(notas[aleatorio.nextInt(notas.length)]); ИнтервалыintervaloMixolidio = new Intervals("1 2 3 4 5 6 b7").setRoot(notas[aleatorio.nextInt(notas.length)]); IntervaloDorico = new Intervals("1 2 b3 4 5 6 b7").setRoot(notas[aleatorio.nextInt(notas.length)]); IntervaloEolio = new Intervals("1 2 b3 4 5 b6 b7").setRoot(notas[aleatorio.nextInt(notas.length)]); IntervaloJonio = new Intervals("1 2 3 4 5 6 7").setRoot(notas[aleatorio.nextInt(notas.length)]); IntervaloLocrio = new Intervals("1 b2 b3 4 b5 b6 b7").setRoot(notas[aleatorio.nextInt(notas.length)]); List интервалы = новый ArrayList(); интервалос.добавить(интервалоЛокрио); интервалос.добавить(интервалоЛидио); интервалос.добавить(интервалоМиксолидио); интервалос.добавить(интервалодорико); интервалос.добавить(интервалоДжонио); интервалос.добавить(интервалоФриджио); интервалос.добавить(интервалоЭолио); Интервалы intPlay = periodos.get(aleatorio.nextInt(intervalos.size())); } частная пустота tocaEscala () { Игрок pl = новый игрок(); pl.play(adicionaIntervalos()); } частная строка nomeiaEscala(){ String[] escalas = {"jônio", "lócrio", "lídio", "mixolídio", "dórico", "eólio", "jônio", "frígio"}; Струнная эскала; интервалАлеаторио = мистураИнтервалос(); переключатель(botoes.toString()) { случай «1 b2 b3 4 5 b6 b7»: эскала = "фриджио"; перерыв; случай «1 2 3 4# 5 6 7»: эскала = "лидио"; перерыв; случай «1 b3 4 b5 5 b7»: escala = "пентатоника блюз"; перерыв; случай «1 2 3 4 5 6 b7»: эскала = "миксолидио"; перерыв; случай «1 2 b3 4 5 6 b7»: эскала = "дорико"; перерыв; случай «1 2 b3 4 5 b6 b7»: эскала = "эолио"; перерыв; случай «1 2 3 4 5 6 7»: эскала = "Джонио"; перерыв; случай «1 b2 b3 4 b5 b6 b7»: эскала = "Локрио"; перерыв; } альтернативаUm.setText(); } @Override protected void onCreate (Bundle saveInstanceState) { интервал я = 0; super.onCreate(saveInstanceState); окончательная кнопка alternativa_um = (Кнопка) findViewById(R.id.questao_um); последняя кнопка botaoPlayer = (Кнопка) findViewById(R.id.play_button); alternativa_um.setText(escalas(new Random().nextInt(escalas.length))); alternativa_dois.setText(escalas(new Random().nextInt(escalas.length))); alternativa_tres.setText(escalas(new Random().nextInt(escalas.length))); alternativa_quatro.setText(escalas(new Random().nextInt(escalas.length))); // передаем целое значение Пакет b = новый пакет (); b.putInt("оценка", оценка); // Твой счет намерение.putExtras(б); // Поместите свой результат на следующий startActivity (намерение); заканчивать(); } } } Сгенерируйте 4 случайные кнопки, но одна из них случайным образом будет показывать правильный ответ.
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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