Возможно, несколько дней назад вы видели новость, что маленькая девочка написала и опубликовала свою игру в стиме. Меня это заинтересовало и я решил приобрести творение этого вундеркинда. Оказалось, что это тренажер по сложению двузначных чисел. В голове появилась мысль: "А смогу ли я написать нечто подобное?"
И так, у девочки: сложение двузначных чисел. Выводятся два числа (последовательность примеров не меняется, вероятно, количество примеров ограниченно и они внесены вручную);
В виде ответа внести можно только цифры;
В случае правильно ответа выходит строка с поздравлением, и начисляется 1 очко. Выводится общая сумма накопленных баллов.
Что хочу я:
- цикл сложения двух рандомных двузначных чисел
- ввод ответа с клавиатуры
- в зависимости от ответа - начисление или списание баллов
- в случае неправильного ответа - указывать верный
import java.util.Scanner;
public class MathGame {
public static void main(String[] args)
{
int i = 1; //цикл
for (; ;) //цикл. как работает - не понимаю, просто нагуглил вариант
{
int a = 0, b = 100; //задаю слагаемые
int x = a + (int) (Math.random() * b); //как работает рандом, почему надо умножать и складывать - не понимаю
int y = a + (int) (Math.random() * b);
System.out.print(x + "+" + y + "=? "); //вывод строки с заданием в консоль
Scanner in = new Scanner(System.in); //считывание ответа
int s = in.nextInt();
String o; //сравнение введеного ответа
if (s == x + y)
o = "Отлично! Вы заработали 1 очко.";
else
o = "Вы ошиблись! Правильный ответ: " + (x + y);
System.out.println(o);
int sc = 0; //счетчик баллов. НЕ РАБОТАЕТ.
if (s == x + y)
sc = sc + 1;
else
sc = sc - 1;
System.out.println("Ваш счёт " + sc + ".");
}
}
}
Что не получилось (не знаю как реализовать):
- счетчик баллов. как его надо написать - пока не понимаю. не получается сохранить накопленный результат и к нему прибавлять/вычитать новые баллы
- выделение цветом - желтым если ответ верный, красный - неверный
- ввод с клавиатуры только цифр - если ввести буквы, программа закрывается с ошибкой
- задания не только на сложение, но и на вычитание
- в идеале ввести прогрессивную сложность - первые 10 примеров только однозначные числа, потом 10 - двузначное и однозначное, далее - двузначные до 50 очков, потом одно из слагаемых становится трехзначным
- скомпиллировать файл .exe и .dmg (для Windows и MasOS соответственно)
Если кто может что-то добавить, объяснить как работает или как надо писать такой код, порекомендовать изучить что-то конкретное - буду рад вас выслушать.
К попыткам решения в первую очередь приглашаю своих "однокурсников" 3-4 уровня, чтобы искать ответы используя одинаковый объем знаний.