[ tohn @ 01.06.2006. 22:07 ] @
Stavicu ceo tekst zadatka pa ako neko to resi u kompletu bicu mu veoma, veoma zahvalan. Inace najveci mi je problem konkretna implementacija apstraktnih metoda u klasama igara XoX i DAME pa bi mi bilo od velike pomoci da neko napise samo ove dve klase! Evo i teksta zadatka i hvala unapred svima!! Projektovati i realizovati na jeziku C++ sledeće klase: Astraktna figura za igre ima jednoslovnu oznaku vrste figure, boju i koordinate na dvodimenzionalnoj tabli na kojoj se igra odvija. Može da se postavi na zadato mesto na zadatoj tabli, da se premesti na drugo mesto. Greška je ako figura, prema pravilima kretanja i trenutnom stanju na tabli ne sme da se premesti na odredišno mesto. Polja dvodimenzionalne table za igre mogu da budu prazna ili da sadrže po jednu figuru. Stvara se prazna zadatih dimenzija. indeks donjeg levog ugla table je (0,0). Figure mogu da se postave na prazna polja jedna po jedna, da se figura na datom polju ukloni i da se figura premesti sa jednog na drugo polje (eventualna figura na odredišnom polju se uklanja). Sadržaj table može da se upiše u datoteku, jedna vrsta po redu. Pišu se oznake figura na pojedinim poljima. Prazna polja se popunjavaju znakom koji se zadaje pri stvaranju table. Apstraktan igrač igra figurama zadate boje na zadatoj tabli. Može da odigra potez čitajući potrebne podatke s glavnog ulaza. Posle izvođenja poteza, shodno pravila igre, može da dobije pravo na još jedan potez pre drugih igrača. Apstraktna igra sadrži jednu tablu za igru i nekoliko igrača. Stvara se sa praznom tablom zadatih dimenzija i popunjenim nizom igrača zadate dužine. Može da se postavi početno stanje igre, da se izvodi jedan potez u igri, da se ispita da li je igra završena, da se dohvati indeks pobedničkog igrača (−1 ako je nerešeno) i da se trenutno stanje igre upiše u datoteku (piše se stanje na tabli i koji je igrač na potezu. Pri svakom potezu izvodi se potez jednog igrača po cikličnom redosledu, osim ako trenutni igrač dobija pravo na još jedan potez. XoX je igra koja se igra sa dva igrača na tabli 3×3. Na početku tabla je prazna. Igrači naizmenično stavljaju svoje figure na slobodna polja. Postavljene figure se više ne pomeraju. Popednik je onaj igrač koji prvi zauzme tri uzastopna polja u nekoj vrsti, koloni ili dijagonali table. Igra je nerešena ako se tabla popuni bez pobednika. Dame je igra koja se igra sa dva igrača na tabli 8×8. Na početku oba igrača imaju po 8 pešaka (oznaka P/p) rasporedjena u prva dva reda table na svako drugo polje pocev od (0,0). Igrači naizmeničo vuku po jedan potez. Pešaci mogu da se pomeraju koso za po jedno mesto ka suprotnom kraju (gronjoj, odnosno donjoj ivici) table ili da ukoso preskoče jednu figuru praveći na taj način korak dužine dva. Tom prilikom dobija se pravo na još jedan potez. Ako se preskače tuđa figura, ista se uklanja sa table. Kad pešak stigne do suprotne ivice table, pretvara se u damu (oznaka D/d) koja može da se kreće u svim kosim pravcima (ne samo ka suoprotnoj ivici u odnosu na početni položaj) na isti način kao i pešaci. Igra se završava kad jednom igraču budu uklonjene sve figure. Uz konkretne igre postoje i odgovarajuće konkretne klase figura i igrača. Napisati na jeziku C++ glavni program kojim se odigra proizvoljan broj igara po izboru. |