Monty Hall Problemini simüle etmeyle ilgili bir soru zaten vardı . Bu farklı. Kullanıcı edecek oynamak Monty Hall Sorununu. Programınız ana bilgisayarın rolünü oynayacaktır. İsterseniz Montybot.
İşte adımlar:
- Üç kapıdan hangisinin ödülü gizlediğini seçin (rastgele).
- Üç kapının görsel görüntüsünü çıkarın. Basit bir
ABCiş yapacak. Veya üç kare. Ya da her neyse. - Kapılardan birini seçerek girişi alın. Bu, seçilen kapıya bir fare tıklaması veya tek bir harf girişi (
B) veya herhangi bir şey olabilir. - Başka bir kapı aç. Seçilen kapıyı açmazsınız. Ana ödülü gizleyen kapıyı açmazsınız. Yani olabilir seçeneğin yok demek, ya da olabilir Eğer ikisinin bir seçim var demek. İki seçeneğiniz varsa, rastgele birini seçin. Görsel olarak kapının açıldığını ve arkasında hiçbir ödül gizlenmediğini belirtin. Bir program metin tabanlı giriş / çıkış için, bu
AB0, kapınınCaçıldığını göstermek için çıkış kadar basit olabilir . Daha yaratıcı olmaktan çekinmeyin. Bir GUI programı yapıyorsanız, ekran seçiminiz size kalmış. - Kullanıcının girişini kabul edin. Kullanıcı girebilir
stickveyaswitch(veya bir GUI programı için düğmelere tıklayabilir veya bir seçim girdisi kullanabilir veya her neyse). Kullanıcıstickveya dışında bir şey girerseswitch, uygulama tanımsızdır. Ne istersen onu yap. - Metin çıktısını
You won!veyaYou lost. - Programı sonlandırın.
Kurallar:
- Rastgele bir şey seçmeniz gerektiğinde, kriptografik rastgele olma konusunda endişelenmeyin. Herhangi bir
rand()işlev yapacak. - Program hile yapmamalıdır. Oyun başlamadan önce ödülün yerinde olması gerekir. Yani adımlar verilen sırayla gerçekleştirilmelidir: Önce ödülünüzü gizleyeceğiniz bir kapı seçin, sonra oyuncudan seçim yapmasını isteyin. 4. adımda açılacak kapının seçimi 4. adımda gerçekleşmelidir: önceden seçilmemiştir.
- 6. adımdaki çıktı dürüst olmalıdır.
- Bu kod golf. En kısa kod kazanır.
Bu siteye ilk kez gönderiyorum, ama çok pusuda kalıyorum, bu yüzden normlarına aşina olduğumu düşünüyorum .
—
TRiG
Meta.codegolf.stackexchange.com adresinde, soru önermek ve resmi olarak gönderilmeden önce insanların herhangi bir sorunu çözmesine izin vermek için bir konu vardır. Burada ütülenebilecek özel olarak yanlış bir şey olup olmadığını bilmiyorum, ama bir dahaki sefere bilmek iyi olabilir.
—
undergroundmonorail
Kazanın başka bir golfscript cevabı olacağını önizleyeceğim ...
—
Victor Stafusa
BTW, "yaratıcı olmak" codegolfing ile iyi gitmez, çünkü yaratıcı olmak bazı byte tüketir ve codegolfing'in amacı bunun tam tersidir.
—
Victor Stafusa
Evet, @Victor. Yaratıcı olmak bir gereklilik değildir. Sadece (a) bunu komut satırı programlarıyla sınırlamak istemedim ve (b) komut dışı bir programın kullanıcı seçimini nasıl uygulaması gerektiği hakkında hiçbir fikrim yoktu. Ben de cevaplayanlara bıraktım. Yaratıcı olmak bir seçenektir, ancak fazladan puan kazanmayacak bir seçenektir.
—
TRiG