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

Ponavljanje main funkcije

[es] :: C/C++ programiranje :: Ponavljanje main funkcije

Strane: < .. 1 2 3 4

[ Pregleda: 10241 | Odgovora: 61 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

llux

Član broj: 63288
Poruke: 419
*.3gnet.mts.telekom.rs.



+253 Profil

icon Re: Ponavljanje main funkcije24.11.2012. u 07:16 - pre 138 meseci
Tesko bez "continue".
Na primer kako biste vi prepravili sledeci kod a da ne poremeti ili izadje iz programa.
Ovo je parce koda mog prvog Iks Oksa:

Code (cpp):
void PocetakIgre() {

    while(igra)
{
PrikaziTablu();

cout<<"Gde zelite da postavite "<<znak<<'?'<<endl<<"(OD 1-9)\n";

 int brojPolja;
cin>>brojPolja;

   if(!cin)
    {
cin.clear();
 string garbage;
cin>>garbage;
 system("cls");
   cout<<"GRESKA! POKUSAJTE PONOVO\n";
continue;
 }

if(brojPolja<1||brojPolja>9)
 {
system("cls");
 cout<<"TO POLJE NE POSTOJI\n";
continue;
}

if(tabla[brojPolja]=='X' || tabla[brojPolja]=='O')
  {
system("cls");
 cout<<"TO POLJE JE ZAUZETO\n";
continue;
 }

   tabla[brojPolja]=znak;
++BrojacPoteza;
 system("cls");
ProveraPobede();

 if(znak=='X')znak='O';
  else znak='X';
 }

 }

Ako korisnik unese nesto pogresno ja jednostavno moram da ga vratim da ponovi.



[Ovu poruku je menjao llux dana 24.11.2012. u 08:37 GMT+1]

[Ovu poruku je menjao llux dana 24.11.2012. u 08:37 GMT+1]
 
Odgovor na temu

Nedeljko
Nedeljko Stefanović

Član broj: 314
Poruke: 8632
*.3gnet.mts.telekom.rs.



+2789 Profil

icon Re: Ponavljanje main funkcije24.11.2012. u 13:10 - pre 138 meseci
Sve si to umesto sa continue mogao da rešiš sa else. Međutim, continue naredba nije opasna.
Code (cpp):

while(igra) {
     PrikaziTablu();
     cout << "Gde zelite da postavite "<<znak<<'?'<<endl<<"(OD 1-9)" << endl;

     int brojPolja;
     
     cin >> brojPolja;

     if (!cin) {
          cin.clear();
          string garbage;
          cin >> garbage;
          system("cls");
          cout << "GRESKA! POKUSAJTE PONOVO\n";
     } else if (brojPolja < 1 || brojPolja > 9) {
          system("cls");
          cout << "TO POLJE NE POSTOJI\n";
     } else if (tabla[brojPolja] == 'X' || tabla[brojPolja] == 'O') {
          system("cls");
          cout << "TO POLJE JE ZAUZETO\n";
     } else {
          tabla[brojPolja]=znak;
          ++BrojacPoteza;
          system("cls");
          ProveraPobede();

          if (znak == 'X') {
               znak = 'O';
          } else {
               znak = 'X';
          }
     }
}
 

Meni se lično više sviđa tvoje rešenje sa continue.
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Ponavljanje main funkcije

Strane: < .. 1 2 3 4

[ Pregleda: 10241 | Odgovora: 61 ] > FB > Twit

Postavi temu Odgovori

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