Вже виникло питання про моделювання проблеми Monty Hall . Цей інший. Користувач буде грати на Монті Холла проблеми. Ваша програма буде грати роль ведучого. Montybot, якщо вам подобається.
Ось такі кроки:
- Виберіть (випадковим чином), хто з трьох дверей ховає приз.
- Виведіть візуальний дисплей з трьох дверей.
ABC
Зробити це буде просто . Або три квадрати. Або що завгодно. - Отримайте вхід, вибравши одну з дверей. Це може бути клацання миші на обраній двері, або введення однієї літери (
B
) чи інше. - Відкрийте ще одні двері. Ви не відчиняєте вибрані двері. Ви не відчиняєте двері, ховаючи головний приз. Це може означати, що у вас немає вибору, або це може означати, що у вас є вибір двох. Якщо у вас є вибір двох, виберіть один навмання. Візуально вкажіть, що двері відчинені і що за нею не заховано жодного призу. Для програмного введення / виводу на основі тексту це може бути таким же простим, як і вихід
AB0
, щоб показати, що дверіC
були відкриті. Не соромтеся бути більш винахідливими. Якщо ви робите програму GUI, ваш вибір дисплея залежить від вас. - Прийняти дані від користувача. Користувач може ввести
stick
абоswitch
(або, для програми GUI, натиснути на кнопки або використати вибраний вхід чи будь-що інше). Якщо користувач вводить щось, крімstick
абоswitch
, реалізація не визначена. Робити все, що ви хочете. - Виведіть текст
You won!
абоYou lost
. - Припиніть прогаму.
Правила:
- Коли вам доведеться щось вибрати навмання , не хвилюйтесь про криптографічну випадковість. Будь-яка
rand()
функція буде виконуватись. - Програма не повинна обманювати. Приз повинен бути на місці до початку гри. Тобто, кроки потрібно виконувати у вказаному порядку: Спочатку виберіть двері, за якими заховати свій приз, а потім попросіть гравця вибрати. Вибір дверей, які потрібно відкрити на кроці 4, має відбутися на кроці 4: вона не вибирається заздалегідь.
- Вихід на етапі 6 повинен бути чесним.
- Це код гольфу. Найкоротший код виграє.