Tictactoe

Allikas: Lambda

Põhiosa - 5p

Tuleb programmeerida Trips-Traps-Trulli mängimiseks käsurea programm.

Programm kuvab mängulaua ja võimaldab kasutajal mängida arvutiga.

Arvuti mängib "0"-idega, kasutja "X"-idega.

Näiteks:

+---+---+---+
| 0 | 0 |   |
+---+---+---+
|   | X |   |
+---+---+---+
|   |   |   |
+---+---+---+

Kasutaja sisestab käigud mänguruutude indeksitena järgmiselt:

+---+---+---+
| 1 | 2 | 3 |
+---+---+---+
| 4 | 5 | 6 |
+---+---+---+
| 7 | 8 | 9 |
+---+---+---+

Seega, kui kasutaja sisestab "5", siis märgitakse "X" keskmisele ruudule.

Kes soovib, võib mängulaua hoidmiseks mälus võib kasutada suvalist andmestruktuuri.

Lihtsaima struktuurina võiks kasutada 9-kohalist täisarvude massiivi, kus iga element tähistab mängulaua ruutu. Massiivi elementide väärtused juhul kui

  1. ruut on vaba, siis on sellel on kohal arv 0
  2. juhul kui ruudule on käinud arvuti, siis 1
  3. kasutaja, siis -1

Programm peab mõistlikult lahendama kasutaja väär-sisestused:

  1. kui kasutaja ei sisestanud numbrit, annab vastava teate ja küsib uuesti
  2. kui kasutaja sisestas käigu, mis on juba käidud - annab programm vastava teate ja küsib uuesti
  3. ebakorrektne määramispiirkond 0 < x < 9

Programm võimaldab käike käia mängijatel ainult vaheldumisi. Üks mängija ei saa kunagi kaks käiku järjest teha.

Pärast igat käiku kuvatakse mängulaua uus seis.

Programm suudab tuvastada kui mängulaual ei ole rohkem legaalseid käike ja lõpetab mängu. St. massiivi kõik elemendid on väärtustatud, ei ole 0-id.

Märkused:

  • "põhiosas" on täiesti piisav, et arvuti vaatab mängulauda ja valib esimese või juhusliku käigu, mis ei ole veel võetud - midagi keerulisemat tegema ei pea.

I lisaosa - 2p

Arvuti eelistab käike:

  • kõigepeal keskele
  • siis nurkadesse
  • ülejäänud

Programm suudab tuvastada, et mäng on lõppenud - kumbki mängijatest on 3-märki ritta saanud. Teatab mängu võitja.

II lisaosa - 3p

  • Arvuti käib mängu võitva käigu, kui selline laual leidub. Arvutil on kaks märki juba reas ja arvuti kord on käia.
  • Sarnaselt suudab arvuti blokeerida Kasutaja võitvat käiku. Kasutajal on kaks märki juba reas, aga arvuti kord on käia.

Lisamaterjale