Napiši program, ki omogoča grafični prikaz igre križci in krožci na polju 3x3. Posamezne celice predstavi z gumbi, na katere izrisuješ ali . Program naj preverja, kdaj je igre konec.
Besedilo naloge
Napiši program, ki omogoča grafični prikaz igre križci in krožci na polju 3x3. Posamezne celice predstavi z gumbi, na katere izrisuješ ali . Program naj preverja, kdaj je igre konec.
Ideja rešitve
Spodaj sta še dva dodatna gumba. S prvim lahko začnemo celotno igro od začetka (izbrišemo trenutni rezultat), z drugim pa nadaljujemo igro v naslednjem krogu. Drugi gumb lahko uporabimo samo, ko zaključimo trenutno igro.
Klik na eno izmed igralnih celic
Ko kliknemo na eno izmed celic, najprej preverimo, da na tej celici ni še ničesar zapisanega, saj v nasprotnem primeru to pomeni, da je že bila uporabljena. Če celica še ni bila uporabljena, pa preverimo, kateri igralec je na vrsti. Glede na trenutnega igralca na celico zapišemo njegov znak, ki mu nastavimo ustrezno barvo za večjo preglednost. Spremenimo trenutnega igralca in zamenjamo napis, ki pove, kateri igralec ima naslednjo potezo. Sproti tudi štejemo, koliko potez je bilo izvedenih, saj če jih je 9, je igre v vsakem primeru konec.
Na koncu preverimo še, če je igre konec s pomočjo funkcije, ki vrne za konec igre in , če igre ni konec. Če je igre konec, onemogočimo gumbe celic in zmagovalcu prištejemo zmago. Če pa je izvedenih 9 potez in ni zmagovalca, samo onemogočimo gumbe za igro.
Preveri konec igre, onemogoči in povečaj
Če je igre konec, preverimo tako, da preverimo vse možne kombinacije za konec igre. Če so pri kateri izmed kombinacij vsi znaki enaki, funkcija vrne , drugače vrne . Pri preverjanju moramo paziti, da napisi niso prazni.
Ko je igre konec, pokličemo funkcijo Onemogoči, ki prikaže napis Konec, onemogoči gumbe igralnih celic in omogoči gumb za igranje naslednjega kroga.
Če igra ni neodločena, moramo zmagovalcu s funkcijo Povečaj prišteti zmago. Ker trenutnega igralca zamenjamo pred preverjanjem konca igre, moramo zmago prišteti igralcu, ki trenutno ni na potezi.
Naslednji krog igre
Ko želimo začeti z naslednjim krogom igre, moramo najprej zbrisati trenutne nastavitve. Onemogočimo gumb za naslednji krog, skrijemo napis za konec igre in omogočimo gumbe za igro.
Ko brišemo trenutne nastavitve, nastavimo števec potez na 0, da pri naslednji igri začnemo šteti od začetka. Na igralnih gumbih izbrišemo morebitne napise.
Omogočimo še gumbe za igranje nove igre.
Nova igra od začetka
Za igranje nove igre, ponastavimo vse nastavitve na začetne. Igralec, ki začne z igro je , morebitne zmage nastavimo na 0 in zbrišemo, kar je napisano na igralnih celicah.
Za primer, če smo prejšnjo igro že zaključili, onemogočimo gumb za naslednji krog, skrijemo napis za konec igre in omogočimo gumbe za igranje igre.
Primer igre