2D pole

Cvičení

3. ročník

Programování

SSŠVT

Dvourozměrné pole

Piškvorky

Zadání

Založte nový konzolový projekt ve VS (target framework: .NET 6).

Naprogramujte piškvorky pro 2 hráče v konzoli.

Jeden hráč bude mít křížky, druhý kolečka. Hráči se střídají. Hraje se na čtvercové síti (čtverečkovaný papír). Kdo je na tahu, vepíše svůj symbol (např. křížek) do některého čtverce na herní ploše. Vyhrává ten, komu se podaří udělat "piškvorku", tj. 5 svých symbolů (např. křížků) v jednom ze 4 směrů (vodorovně, svisle, diagonálně dolů nebo diagonálně vzhůru).

Pro určení toho, kam chce hráč umístit svůj symbol, můžete použít např. Console.ReadLine(). Program vyzve hráče, který je na tahu, aby zadal souřadnice čtverce, kam chce umístit svůj symbol. Hráč zadá např. "B4", což znamená, že chce dát např. křížek na 2. pozici na čtvrtém řádku (pokud řádky číslujeme 1, 2, 3, 4, ... a sloupce A, B, C, D, ... jako např. ve hře šachy).


Minimální požadavky
  1. Oddělte v programu uživatelské rozhraní od vnitřní reprezentace stavu hry.
  2. Pro stav hry použijte dvourozměrné pole.

Kdo zná a má raději GUI (WinForms/WPF), může hru udělat v této technologii.

Pokud při návrhu architektury použijete třídy, bude to super, ale stačí si appku rozvrhnout i do několika statických metod.

Nevkládejte metodu do metody. Pokud potřebujete sdílet data, předejte si je v parametrech.


Těžší zadání

Udělejte variantu piškvorek pro 1 hráče, který hraje proti počítači.

Implementujte "piškvorkový engine": Algoritmus, který bude hledat výhodnou strategii tak, aby lidského hráče porazil.


Příklad koncové herní situace

Vyhrává hráč, který používá symbol "křížku".

ABCDEFGHIJKLMNO
1
2
3 x o
4 xo
5 xx
6 o x
7 oxoox
8
9
10
11
12
13
14
15