В цикле на каждом шаге скрипт генерирует случайное целое число от 0 до 9, выводит пользователю приглашение угадать загаданное число. После ввода, скрипт проверяет, что введено число от 0 до 9 и при ошибке предлагает повторить ввод. Если введено корректное число, то скрипт сообщает угадано оно или нет, а так же выводит статистику % угаданных чисел и % не угаданных чисел, а так же список чисел, которые были загаданы на предыдущих шагах. Скрипт завершается при вводе "q" вместо числа.
Пример работы:
Статистика (угадано/не угадано): 30% / 70%
Загаданные числа: 7 5 2 2 1 9 4
Какое число от 0 до 9 загадано сейчас (q - закончить)? _
Скрипт создает три стека обозначенные для пользователя как 1, 2, 3. Стек 1 заполняется числами 8, 7, 6, 5, 4, 3, 2, 1 (вершина стека), а другие стеки пустые.
В цикле на каждом шаге пользователь вводит номера двух стеков: откуда взять число и куда положить.
Нельзя положить в стек число, которое большее того, что сейчас лежит на вершине. Если пользователь пытается выполнить не разрешенное перемещение, то скрипт предупреждает об этом и предлагает повторить ход.
Игра заканчивается, когда в другом стеке (отличном от стека 1) числа будут собраны в порядке убывания 8, 7, 6, 5, 4, 3, 2, 1 (вершина стека) или по нажатию на "q".
Примеры вывода скрипта:
1) 8 7 6 5 4 3 2 1
2)
3)
Ход № 1 (откуда куда): 1 2
1) 8 7 6 5 4 3 2
2) 1
3)
Ход № 2 (откуда куда): 1 3
1) 8 7 6 5 4 3
2) 1
3) 2
Ход № 2 (откуда куда):