Amacınız, herhangi bir Mastermind bulmacasını 6 ya da daha az hamle ile çözecek bir program yazmaktır.
Arka fon
Beyni bir tahta oyunudur. Oyunun amacı, diğer oyuncu tarafından gizlenen 4 renkli mandalın kombinasyonunu (renkler ve sıra) tam olarak tahmin etmektir. Tahmin yapıldığında, diğer oyuncu 0 ile 4 arasında beyaz ve / veya kırmızı mandallarla tepki verir. Rengin ve yerin doğru olduğu yerde kırmızı bir mandal bulunur. Rengin kalan parçalarda temsil edildiği beyaz bir dübel, ancak yanlış yerdedir. Tahminde yinelenen renkler varsa, sırda karşılık gelen renk başına verilen yalnızca bir mandal olacaktır. (Yani - sır 1 Blue içeriyorsa ve tahmin doğru yerde bir tane olmak üzere 2 maviye sahipse, verilen bir kırmızı mandal olurdu). 6 farklı renk vardır ve kopyalar kullanılabilir.
Örneğin, bir oyun aşağıdaki gibi ilerleyebilir: (Çözümün Kırmızı Yeşil Yeşil Mavi olduğu varsayımıyla)
1: Blue Purple Black Green - 2 white pegs
2: Green Red Black Blue - 2 white pegs, 1 red peg
3: Green Green Green Blue - 3 red pegs
4: Red Green Green Blue - 4 red pegs
Kurallar Wikipedia'da genişletildi
Gereksinimler
- Program stdin'den okumalı ve stdout'a yazmalı
- Basitlik için renkler yerine sayıları kullanacağım. Tahmin edilecek kombinasyon 1 ile 6 arasında 4 rakam olacaktır.
Tahminlerini, yeni bir çizgiyle sonuçlanan 1-6 arasında 4 boşlukla ayrılmış bir sayı dizisi olarak ortaya koymaları gerekir. Örneğin:
1 5 2 2 \ n
Program daha sonra bir boşlukla ayrılmış ve yeni bir satırla sonuçlanan 2 ile 0 arasındaki 4 tamsayısının tahmin edilmesinden sonra girdi olarak alınacaktır. Birincisi beyaz mandal miktarı, ikincisi kırmızı mandal miktarı olacak.
- "0 4" (4 kırmızı mandal) girişinde, program sonlandırılmalıdır
- Program, herhangi bir bulmacayı 6 turdan daha kısa sürede çözebilmelidir (programınız çıktı verir, ardından cevap girişi 1 turdur). Daha az çözebilmek için bonus (ispat karmaşıklığı nedeniyle) yoktur.
- Çözüm tamamen dahili olmalı ve kaynağa dahil edilmelidir. Sadece standart kütüphanelere izin verilir. Bu nedenle çözüm, başka dosyalara (sözlükler gibi) veya internete dayanmayabilir.
Örnek Giriş / Çıkış
> is your programs output
< is the responding input
Solution is 1 5 6 6
> 1 2 3 4
< 0 1
> 4 1 6 6
< 1 2
> 1 6 5 6
< 2 2
> 1 5 6 6
< 0 4
puanlama
- Bu saf ve basit Code Golf . En kısa çözüm bayt kazanır.
Bu benim ilk Code Golf sorum. Yanlış bir şey yaptıysam özür dilerim, ancak kesinlikle belirsizlik olmadığından emin olmak için elimden geldiğince gayret gösterdim ve olabildiğince fazla kurallara uymalarını önledim. Belirsiz ya da belirsiz davrandıysam, lütfen soru sormaktan çekinmeyin.
1 2 3 4
geri dönmemeli0 1
mi?