Реализуйте методы в классах SimpleMathService и SimpleTextService. Следите за правильностью написания кода - метод должен делать только то, что от него требуется. Также уделите внимание оптимизации, некоторые методы можно выполнить несколькими способами, от быстрого и красивого до нечитаемого и медленного.
Реализовать класс Expression, который создается конструктором с единственным аргументом (стартовое значение) и к
экземпляру возможно применить следующие методы: plus, minus, divide, multiply, sqrt, pow, mod, factorial,
и calculate.
Пример:
new Expression(2)
.plus(6)
.divide(2)
.sqrt()
.calculate() - возвращает ответ (в конкретном случае 2)
При возникновении исключительных ситуаций (например, деление на 0) должно выводиться сообщение об ошибке.
В методе Main необходимо написать демо, демострирующее работу данного класса.
Реализовать игру со спичками в классе MatchGame .
Суть игры: есть n спичек, число которых задано в начале игры. Каждый игрок делает ход по очереди убирая 1, 2 или 3
спички.
Кто сделает ход последним - проиграл. В ходе программы рекомендуется использовать стандартный поток вывода (консоль)
Считывать число можно методом new Scanner( System.in ).nextInt(), выводить сообщения в консоль методом
System.out.println
- Программа должна объявлять о начале игры, о количесве спичек после каждого хода, кто сейчас делает свой ход и результат игры.
- При вводе недопустимого числа спичек для взятия в консоль выводится ошибка и ввод предлагается снова.
- Право первого хода определяется случайным образом
- Реализуйте 2 типа игры:
- playWithFriend - игра с другом. Каждый игрок совершает ходы за одной консолью.
- playWithMachine - игра против компьютера. Компьютер может брать случайное количество спичек.
Задание под звездочкой - сделать так, чтобы выиграть playWithMachine было невозможно. (Компьютер должен ходить первым)
Если с какое-то задание не берется с первого раза, всегда можно вернуться к нему позднее с новыми силами и знаниями