Вы находитесь на странице: 1из 5

Этап первый

Написать игру в которой имитируется бросание кубиков игроком. Игра должна


представлять собой консольное приложение. В игре 2 кубика и на каждом из них
может выпасть от 1 до 6 очков. Пользователь загадывает число от 2 до 12, затем
бросает кости. После броска показать, нарисованные символами кубики и количество
очков, выпавших на них. 
Конечное число выигранных очков будет высчитываться по формуле: 
x - Math.Abs(x-y)*2, где:       

 x - количество очков выпавшее на костях


 y - загаданное число очков

            То есть конечным количеством очков будет количество выпавших на костях


очков минус удвоенная ошибка в догадке.
            Пользователь выигрывает, если в результате выходит количество очков
больше нуля. В конце нужно отобразить формулу расчета очков, конечное количество
очков с вычетом удвоенной ошибки в догадке и вынести вердикт - выиграл
пользователь или проиграл.
 
Пример вывода на экран:
 
---          Start game          ---
 
Predict the points number (2..12): 9
 User rolls the dice:
 ---------
| #  #  # |
|            |
| #  #  # |
---------
---------
|  #   #  |
|     #    |
|  #   #  |
---------
On the dice fell 11 points.
Result is 11-abs(11-9)*2: 7 points
User wins!
 
Указания:

 Для отображения кубика напишите метод PrintDice(int


number); внутри которого используйте конструкцию if для выбора
отображения нужной стороны кубика
 Бросок кубика сделать методом RollTheDice();
 Какой стороной упадет кубик должно выбираться случайным образом

Этап второй
Ввести в игру второго игрока - компьютер. Бросает первым игрок. Затем компьютер.
Потом идет подсчет баллов и объявляется победитель с указанием разницы в очках.
Побеждает тот у кого больше очков, даже если у него отрицательный результат.
Также возможна ничья, если количество очков у игроков равное. 
 
Пример вывода:
 
---          Start game          ---
 
Predict the points number (2..12): 9
User rolls the dice:
 ---------
| #  #  # |
|            |
| #  #  # |
---------
---------
| #     # |
|     #    |
| #     # |
---------
On the dice fell 11 points.
Result is 11-abs(11-9)*2: 7 points
 
Computer predicted 5 points.
Computer rolls the dice:
 ---------
| #      # |
|            |
| #      # |
---------
---------
| #        |
|     #    |
|        # |
---------
On the dice fell 7 points.
Result is 7-abs(7-5)*2: 3 points
 
Users win 4 points more.
Congratulations!
 
Указания:
 Компьютер должен загадывать число автоматически используя случайное
число в диапазоне от 2 до 12.
 

Этап третий
Дописать программу таким образом, чтобы проводился не один тур, а три. То есть
игрок и компьютер должны бросать кубики поочередно по три раза каждый.
 
В конце каждого тура должны выводиться данные о разнице в счете игроков. Пример:
 
---------- Current score ---------
 User:        3 points
 Computer:    7 points
 
 Computer is ahead by 4 points!
----------------------------------
 
После последнего тура должна отобразиться таблица с результатами всей игры.
Пример таблицы:
 
-------------- Finish game --------------
 
 Round |           User        |      Computer
---------+-------------------+----------------
             | Predicted:  11   | Predicted:   7
 - 1 -     | Dice:        9       | Dice:        5
             | Result:      5      | Result:      1
---------+-------------------+----------------
             | Predicted:   3    | Predicted:   5
 - 2 -     | Dice:     12        | Dice:        2
             | Result:     -6      | Result:     -4
---------+-------------------+----------------
             | Predicted:  10   | Predicted:   3
 - 3 -     | Dice:       11      | Dice:       12
             | Result:      9      | Result:     -6
---------+-------------------+----------------
Total     | Points:       8     | Points:     -9
 
Users win 17 points more.
Сongratulations!
 

Этап четвертый
Если вы выполнили всю работу на предыдущих этапах, то приступайте к данному
этапу. Не беритесь за этот этап не выполнив всех задач на предыдущих этапах.
 
Доработайте программу таким образом, чтобы после проведения трех туров
пользователю задавался вопрос хочет ли он сыграть еще раз:
“Do you want to play ones more (Y/N)”
В случае, если пользователь соглашается, результаты предыдущих 3 туров
обнуляются, текст на консоли очищается и игра начинается заново. В случае отказа,
программа завершает свою работу.

Этап пятый (Бонусный)


Выполнив данный этап вы можете получить дополнительный 1 балл к работе.
Внести в игру возможность жульничать. После того как пользователь укажет какое
число очков он загадал перед броском кубиков предлагать ему жульничать.
Возможность удачного жульничества  рассчитывается в зависимости от номера тура
по таблице:
 
Тур первый 1 шанс из 2-х (50% на 50%)

Тур второй 1 шанс из 4 (один к четырем)

Тур третий 1 шанс из 6 (один к шести)


 
Удачная попытка жульничества заставляет кубики упасть таким образом, чтобы
количество очков на них точно совпало с загаданным игроком числом. Компьютер
также должен предпринимать попытки жульничать. Расчет вероятности того, что
компьютер предпримет попытку жульничества проводить по диаграмме:

В случае неудачи при жульничестве кубики падают как обычно случайным


образом, а у  игрока отнимаются 10 балов от результата тура в виде штрафа.
Таблицу результатов дополнить информацией о штрафе (penalty), если таковой
был.
 
Пример вывода на экран:
 
---           Start game          ---
 
Predict the points number (2..12): 9
Do you want to cheat?(Y/N): N
User rolls the dice:
 ---------
| #  #  # |
|            |
| #  #  # |
---------
---------
| #     # |
|     #    |
| #     # |
---------
On the dice fell 11 points.
Result is 11-abs(11-9)*2: 7 points
 
Сomputer predicted 5 points.
Сomputer successfully cheated.
Computer rolls the dice:
 --------
| #         |
|            |
|         # |
 ---------
 --------
|  #       |
|     #    |
|        # |
---------
On the dice fell 5 points.
Result is 5-abs(5-5)*2: 5 points
 
... 
... 
... 
 

Вам также может понравиться