Napisz program, w który zagrasz w Misère kółko i krzyżyk. Oznacza to, że celem jest zmuszenie przeciwnika do wzięcia trzech z rzędu.
Zaakceptuj na standardowym wejściu albo „X”, albo „O” (litera, a nie zero), aby ustalić, po której stronie będzie grał program. Następnie wypisz jedną cyfrę na swój ruch podczas swojej tury i czytaj jedną cyfrę na swojej turie przeciwników, aż gra się skończy (X zawsze idzie pierwszy). Po rozstrzygnięciu zwycięzcy wypisz X lub O dla wygranej lub D dla remisu. Na przykład, jeśli O otrzyma 3 z rzędu, X wygrywa.
Załóżmy, że plansza jest ponumerowana w następujący sposób:
0|1|2
-----
3|4|5
-----
6|7|8
Idealnie rozwiązanie będzie optymalne i nigdy nie straci. Podobnie jak w kółko i krzyżyk, idealna gra powinna zawsze kończyć się remisem. Jeśli powyższy protokół jest przestrzegany, mogę automatycznie testować zgłoszenia pod kątem różnych możliwych strategii.
Zwycięzca jest najkrótszym kodem. punkty bonusowe, jeśli wybierze losowo z równie dobrych ruchów, aby uczynić go nieco bardziej nieprzewidywalnym.
źródło