Napisz program do gry w Connect 4 . Podajesz stan planszy jako dane wejściowe i musisz zdecydować, w której kolumnie umieścić swój pionek, aby uzyskać 4 z rzędu (poziomo, pionowo lub po przekątnej) lub zablokować przeciwnikowi wykonanie tego samego.
Plansza to tablica 6x7, w której każda komórka może być pusta („”), zawierać twój pionek („X”) lub pionek przeciwnika („O”). Przykładowa tablica:
O
XX X
XOX OO
XOO OXO
OXXOXXO
XOXOXOX
Chcesz zagrać w kolumnie 3 (kolumny to 0-6, ponumerowane od lewej), aby wygrać po przekątnej. Więc wyprowadzasz:
3
Twój kod musi wyświetlać numer kolumny i musi spełniać następujące kryteria:
- Nie możesz grać w kolumnie, która ma już 6 elementów.
- Jeśli jest co najmniej jeden wygrywający ruch, musisz zagrać w jeden z nich.
- Jeśli możesz uniemożliwić przeciwnikowi wygraną w następnym ruchu, musisz to zrobić.
Pamiętaj, że optymalna gra nie jest konieczna, tylko że odniosłeś natychmiastową wygraną lub zapobiegłeś natychmiastowej wygranej przeciwnika. Jeśli twój przeciwnik ma więcej niż jeden sposób na wygraną, nie musisz blokować żadnego z nich.
Otrzymujesz płytkę na standardowym wejściu i musisz wydrukować numer kolumny, w której chcesz grać na standardowym wyjściu. Plansza gwarantuje, że jest dobrze uformowana (bez dziur, co najmniej jeden możliwy ruch) i nie ma już wygranej dla żadnego z graczy.
Najkrótszy kod wygrywa.
Przykład 1
X
O
X
O
OOO X
XXX O
Aby wygrać, musisz zagrać w kolumnę 0 lub 4.
Przykład 2
X
X X
O O
XOX XO
XXO XOX
XXO XXO
Musisz zagrać w kolumnę 3, aby zablokować natychmiastową wygraną przeciwnika.
Przykład 3
X
XO
OX O
XO XX
XXO OOO
OOO XXO
Nie możesz wygrać ani zatrzymać zwycięstwa przeciwnika, możesz więc zagrać dowolną kolumnę 1-6 (0 jest pełna).
Przykład 4
X
O
X
OOO
XOX
OXOX
Nie możesz grać w kolumnie 3, ponieważ pozwala to przeciwnikowi od razu wygrać. Możesz grać w kolumnach 1-2 lub 4-6.
źródło