Było już pytanie o symulację problemu Monty Hall . Ten jest inny. Użytkownik będzie grać w Monty Hall problem. Twój program będzie pełnił rolę gospodarza. Montybot, jeśli chcesz.
Oto kroki:
- Wybierz (losowo), które z trzech drzwi ukrywa nagrodę.
- Wyświetl wizualny obraz trzech drzwi. Proste
ABCwystarczy. Lub trzy kwadraty. Lub cokolwiek. - Odbierz dane wejściowe wybierając jedno z drzwi. Może to być kliknięcie myszką wybranych drzwi, wprowadzanie pojedynczej litery (
B) lub cokolwiek innego. - Otwórz kolejne drzwi. Nie otwierasz wybranych drzwi. Nie otwierasz drzwi, ukrywając główną nagrodę. Które mogą oznaczać nie masz wyboru, czy to może oznaczać, że masz do wyboru dwa. Jeśli masz do wyboru dwa, wybierz jeden losowo. Wskaż wizualnie, że drzwi zostały otwarte i nie kryje się za nimi żadna nagroda. W przypadku wejścia / wyjścia opartego na tekście programu może to być tak proste, jak wyjście
AB0, aby pokazać, że drzwiCzostały otwarte. Bądź bardziej pomysłowy. Jeśli wykonujesz program GUI, wybór sposobu wyświetlania zależy od Ciebie. - Zaakceptuj dane wejściowe od użytkownika. Użytkownik może wprowadzić
sticklubswitch(lub, w przypadku programu GUI, kliknąć przyciski lub użyć wejścia select lub cokolwiek innego). Jeśli użytkownik wprowadzi cokolwiek innego niżsticklubswitch, implementacja jest niezdefiniowana. Rób co chcesz. - Wydrukuj tekst
You won!lubYou lost. - Zakończyć program.
Zasady:
- Kiedy musisz wybrać coś losowo , nie martw się przypadkowością kryptograficzną. Każda
rand()funkcja zadziała. - Program nie może oszukiwać. Nagroda musi być na miejscu przed rozpoczęciem gry. To znaczy, że kroki należy wykonać w podanej kolejności: Najpierw wybierz drzwi, za którymi ukryjesz swoją nagrodę, a następnie poproś gracza o wybranie. Wybór drzwi do otwarcia w kroku 4 musi nastąpić w kroku 4: nie jest wcześniej wybierany.
- Dane wyjściowe w kroku 6 muszą być uczciwe.
- To jest kod golfowy. Najkrótszy kod wygrywa.