Já existe uma pergunta sobre a simulação do problema de Monty Hall . Este é diferente. O usuário vai jogar o problema de Monty Salão. Seu programa desempenhará o papel de host. Montybot, se quiser.
Aqui estão os passos:
- Escolha (aleatoriamente) qual das três portas oculta o prêmio.
- Saída de uma exibição visual de três portas. Um simples
ABCservirá. Ou três quadrados. Como queiras. - Receba entrada escolhendo uma das portas. Pode ser um clique do mouse na porta escolhida, uma entrada de letra única (
B) ou o que seja. - Abra outra porta. Você não abre a porta escolhida. Você não abre a porta escondendo o prêmio principal. Isso pode significar que você não tem escolha ou pode escolher duas. Se você tiver duas opções, escolha uma aleatoriamente. Indique visualmente que a porta foi aberta e que nenhum prêmio foi escondido atrás dela. Para um programa de entrada / saída baseado em texto, isso pode ser tão simples quanto a saída
AB0, para mostrar que a portaCfoi aberta. Sinta-se livre para ser mais criativo. Se você estiver executando um programa GUI, sua escolha de exibição é com você. - Aceite a entrada do usuário. O usuário pode inserir
stickouswitch(ou, para um programa GUI, clicar nos botões, ou usar uma entrada selecionada ou qualquer outra coisa). Se o usuário digitar algo diferente destickouswitch, a implementação será indefinida. Faça o que você quiser. - Envie o texto
You won!ouYou lost. - Encerre o programa.
Regras:
- Quando você tiver que escolher algo aleatoriamente , não se preocupe com a aleatoriedade criptográfica. Qualquer
rand()função serve. - O programa não deve trapacear. O prêmio deve estar no lugar antes do jogo começar. Ou seja, as etapas devem ser executadas na ordem indicada: primeiro escolha uma porta atrás da qual ocultar seu prêmio e peça ao jogador que escolha. A escolha de qual porta abrir na etapa 4 deve ocorrer na etapa 4: ela não é selecionada previamente.
- A saída na etapa 6 deve ser honesta.
- Isso é código de golfe. O menor código vence.