Twoim celem jest napisanie programu, który rozwiąże dowolną zagadkę Mastermind w 6 lub mniej ruchach.
tło
Mastermind to gra planszowa. Celem gry jest dokładne odgadnięcie kombinacji (kolorów i kolejności) 4 kolorowych kołków ukrytych przez drugiego gracza. Kiedy zgadujesz, drugi gracz odpowiada między 0 a 4 białymi lub czerwonymi kołkami. Czerwony kołek to właściwy kolor i lokalizacja. Biały kołek to miejsce, w którym kolor jest reprezentowany w pozostałych kawałkach, ale znajduje się w niewłaściwym miejscu. Jeśli domniemane są zduplikowane kolory, w sekrecie zostanie przyznany tylko jeden kołek na odpowiedni kolor. (Tak więc - jeśli sekret zawierał 1 niebieski, a przypuszczenie zawierało 2 bluesa z jednym we właściwym miejscu, podano jeden czerwony kołek). Istnieje 6 różnych kolorów i można użyć duplikatów.
Na przykład gra może wyglądać następująco: (Zakładając, że rozwiązaniem jest czerwony zielony zielony niebieski niebieski)
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
Zasady są rozszerzone na Wikipedii
Wymagania
- Program musi czytać ze standardowego wejścia i zapisywać na standardowe wyjście
- Będę używał liczb dla uproszczenia zamiast kolorów. Kombinacja zgadywania będzie 4 liczbami od 1 do 6
Muszą wypisywać swoje domysły jako serię 4 liczb oddzielonych spacjami od 1 do 6 kończących się nową linią. Na przykład:
1 5 2 2 \ n
Program otrzyma następnie jako dane wejściowe po odgadnięciu 2 liczb całkowitych od 0 do 4 oddzielonych spacją i kończących znakiem nowej linii. Pierwszy to ilość białych kołków, drugi ilość czerwonych kołków.
- Na wejściu „0 4” (4 czerwone kołki) program musi się zakończyć
- Program musi być w stanie rozwiązać dowolną łamigłówkę w mniej niż 6 turach (twój program daje wynik, a następnie odpowiedź wejściowa to 1 kolej). Nie ma premii (z powodu złożoności dowodu) za możliwość rozwiązania go w mniejszym stopniu.
- Rozwiązanie musi być całkowicie wewnętrzne i zawarte w źródle. Dozwolone są tylko biblioteki standardowe. Rozwiązanie nie może zatem polegać na żadnych innych plikach (takich jak słowniki) ani na Internecie.
Przykład wejścia / wyjścia
> 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
Punktacja
- To jest czysty i prosty Code Golf . Najkrótsze rozwiązanie w bajtach wygrywa.
To jest moje pierwsze pytanie Code Golf. Przepraszam, że zrobiłem coś złego, ale starałem się jak najlepiej zapewnić, że nie ma absolutnie żadnych dwuznaczności i zapobiec jak największej liczbie przepisów prawniczych, jak to możliwe. Jeśli byłem niejednoznaczny lub niejasny, zadawaj pytania.
1 2 3 4powrócić0 1?