Mastermind için sadece kod-golf zorlukları bulabildim, işte kendime almak isteyeceğim bir kod-meydan okuma versiyonu.
1993 yılında Koyama ve Lai tarafından normal Mastermind oyunu MM (4,6) için en uygun strateji, ortalama # tahmin = 5625/1296 ~ 4.34 olarak bulundu. MM (5,8) hala çözülmemiştir, ancak ortalama tahmin sayısının ~ 5.5 olduğu tahmin edilmektedir.
Göreviniz, pow(8,5) = 32768
olası tüm farklı çözümleri kapsayan 5 delik ve 8 renk için bir MM (5,8) stratejisi oluşturmaktır . Açıkçası, bunun optimal olması gerekmez. İki seçeneğiniz var:
- Stratejiyi oluşturan deterministik bir program yayınlayın. Program, herhangi bir ekstra özgür olmayan yazılım olmadan Windows 7, Mac OS X veya Linux'ta derlenebilir / çalıştırılabilir olmalıdır.
- Stratejinizi (StackExchange adınızla birlikte) İnternet'te bir yerde yayınlayın ve URL'yi buraya gönderin.
Her iki durumda da, yanıtın başlığında puanı (aşağıya bakın) belirtin.
Strateji aşağıdaki dilbilgisine göre kodlanmalıdır:
strategy : guessing-strategy | known-solution-strategy
guessing-strategy : '{' guess ':' branches '}'
known-solution-strategy : guess
guess : color color color color color
color : 'A'..'H'
branches : '{' branch (',' branch)* '}'
branch : reply ':' strategy
reply : number-of-blacks number-of-whites
number-of-blacks : number-of-key-pegs
number-of-whites : number-of-key-pegs
number-of-key-pegs : '0'..'5'
Siyah / beyaz tuş mandallarının sayısına karar vermek için kullanılan algoritma http://en.wikipedia.org/wiki/Mastermind_(board_game)
"50" cevabının (yani doğru tahmin) ima edildiğini ve gramerin bir parçası olmadığını unutmayın.
Puanlama: N = 32768 yol / çözümün her biri için tahmin sayısının toplamı. En düşük N değerine sahip strateji kazanır. İlk tie-break: En düşük maksimum tahmin sayısı. İkinci beraberlik: İlk gönderilen cevap. Yarışma 1 Ağustos 2014 0:00 GMT'de sona eriyor .
MM (2,3) puanı = 21 olan bir strateji örneği:
{AB:{10:{AC:{10:AA,01:CB,00:BB}},02:BA,01:{BC:{01:CA}},00:CC}}
Bu stratejiyi kullanarak, olası 9 oyun şu şekilde olacaktır:
- AB 20
- AB 10, AC 20
- AB 10, AC 10, AA 20
- AB 10, AC 01, CB 20
- AB 10, AC 00, BB 20
- AB 02, BA 20
- AB 01, BC 20
- AB 01, BC 01, CA 20
- AB 00, CC 20
Size kolaylık sağlamak için yakında Java tabanlı bir MM (5,8) strateji doğrulayıcısı yayınlayacağım.
{AB:{10|01:BB}}
mi? Bir cevabım var, ama oldukça naif ve dilbilgisinin ağaç yapısı nedeniyle hiç iyi ölçeklenmiyor (4 delik, 3 renk, bölümlerini birleştirerek önemli ölçüde azaltabileceğim 147 MB'lik bir strateji oluşturuyor ağaç).