Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc oko domaceg zadatka iz C++! Vazno!!!!

[es] :: C/C++ programiranje :: Pomoc oko domaceg zadatka iz C++! Vazno!!!!

[ Pregleda: 2280 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

tohn
Milos Strasni
Bg

Član broj: 95391
Poruke: 3
*.maksnet.net.



Profil

icon Pomoc oko domaceg zadatka iz C++! Vazno!!!!01.06.2006. u 22:07 - pre 217 meseci
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.
 
Odgovor na temu

MuskoBre

Član broj: 20799
Poruke: 57
*.5.14.vie.surfer.at.



Profil

icon Re: Pomoc oko domaceg zadatka iz C++! Vazno!!!!01.06.2006. u 23:35 - pre 217 meseci
I stvarno mislis da ce ti neko tek tako uraditi cijeli zadatak?? Da vidimo dokle si doshao,dalje cemo lako..
 
Odgovor na temu

tohn
Milos Strasni
Bg

Član broj: 95391
Poruke: 3
*.maksnet.net.



Profil

icon Re: Pomoc oko domaceg zadatka iz C++! Vazno!!!!02.06.2006. u 11:56 - pre 217 meseci
Ovako otprilike izgleda kod. Neki nebitnih datalja su zamenjeni sa ... :
Code:

class Figura {
               private:
                         char oz, boja;
                         int x,y;
                public:
                        Figura(int xx, int yy, char oz, char b) {....} 
                        virtual ~Figura() {}
                        virtual void Premesti (int, int, int, int) = 0;//sa koje pozzicije i gde                        
                         char GetOznaka(){ return oz;}
}

class Greska {...}    

class Tabla {
                 private:
                            Figura **t;
                            int dim;
                            char ozt;
                  public:
                            Tabla (int d, char oz){
                             dim=d; ozt=oz;
                             t=new Figura* [dim]; // alociranje prostora za niz pokaivaca na tablu
                             for (int i=0; i<dim; i++)
                                    for (int j=0; j<dim; j++)   t[i][j]= new Figra (i,j,ozt,n); //popunjavanje table "virtuelnim" 
                                                                                                              //figurama
                              }
                              ~Tabla () {
                              for (int i=0; i<dim; i++) delete [] t[i];
                              delete [] t;
                               }                 
                               Tabla& operator += (const Figura& f, int x, int y){
                                     if (t[x][y].GetOznaka==ozt) t[x][y]=f           //ako je ozanaka fig. jednaka oz. table tu 
                                     else throw Greska();                                  // je virtuelna figura tj polje je prazno
                                     return *this;
                                }
                                Tabla& operator -= (int x, int y){
                                 t[x][y]= new Figura (x, y, ozt, n);
                                  return *this;
                                 }
                                 Tabla& Premesti (int x1, y1, int x2, int y2) {...}
                                 friend ostream& operator << (ostream& dat, const Tabla& t) {...}
                                 char GetOznaka () {return ozt;}
}

class Igrac {
                private:
                           char boja;
                           Tabla t;
                 public:
                           Igrac (char b, Tabla tab) { boja=b; t=tab;}
                           virtual ~Igrac(){}
                            virtual Tabla& Igraj(int, int) = 0; //unose se pozicije poteza
                            virtual Igrac Sledeci() = 0; // prema pravilima treba utvrditi ko je sledeci ali nisam siguran da li
                                                                //  treba da vraca Igrac
}
class Igra {
               private:
                         Tabla t;
                          igrac * ig, tek;
                          int kap;
               public:
                          Igra (Tabla tab, int duz) { t=tab; ig = new Igrac [kap=duz];}
                          virtual ~Igra() {delete [] ig;}
                           virtual Tabla& PocStanje() = 0;
                           virtual Tabla& Potez (int, int) =0;
                           virtual boolean Kraj () =0;
                           virtual int Pobednik () =0;
                            friend ostream& operator << (ostream& dat, const Igra& I){
                             dat<< t;
                             dat<<???????????       // kako da upisem sledeceg igraca
}

Dalje treba naisati klase za konkretne igre XoX i dame i konkretne figure i igrace za svaku igru i tu nastaju problemi?
Help!!!



Milan Aksic: dodate kod oznake

[Ovu poruku je menjao Milan Aksic dana 13.06.2006. u 14:18 GMT+1]
 
Odgovor na temu

reject
Ivan Pesic
Bgd

Član broj: 7659
Poruke: 2209
*.83.beocity.net.

Sajt: misc.comli.com


Profil

icon Re: Pomoc oko domaceg zadatka iz C++! Vazno!!!!02.06.2006. u 14:10 - pre 217 meseci
Jel ovo sa vetsa? Ja bi reko da jeste. :)
Mass murder ain’t just painless,
Now we’ve made it cute.


The Church Of The Holy Transistor
 
Odgovor na temu

moonstream
Bgd

Član broj: 98064
Poruke: 19
*.ems.co.yu.

Sajt: www.fake-media.com


Profil

icon Re: Pomoc oko domaceg zadatka iz C++! Vazno!!!!13.06.2006. u 08:44 - pre 217 meseci
Citat:


class Tabla {
private:
Figura **t;
int dim;
char ozt;
public:
Tabla (int d, char oz){
dim=d; ozt=oz;
t=new Figura* [dim]; // alociranje prostora za niz pokaivaca na tablu
for (int i=0; i<dim; i++)
for (int j=0; j<dim; j++) t[j]= new Figra (i,j,ozt,n); //popunjavanje table "virtuelnim"
//figurama
}


Ovo boldovano ti je nemoguce, jer pokusavas da instanciras apstraktnu klasu. Trebao bi ti 3-d niz pokazivaca na figure....
 
Odgovor na temu

[es] :: C/C++ programiranje :: Pomoc oko domaceg zadatka iz C++! Vazno!!!!

[ Pregleda: 2280 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.