Gra planszowa, granie na zmiane

0

Problem: Gracz 1 rzuca na zmiane z graczem 2 kostka, dopoki nie wypadnie 6, jesli wypadnie 6 gracz za pierwszym razem wychodzi z domku i rzuca jeszcze raz, a inny gracz w tym czasie na zmiane z graczem 1 rzuca kostka dopoki tez nie wyrzuci 6. Jesli ktorys z graczy wyrzucil juz raz 6, to niezaleznie od ilosci wyrzuconych oczek moze poruszac sie wyznaczonym pionkiem.

 cout<<"Gracz 2 rzuca koscia..."<<endl;
cout<<"Gracz 2 wyrzucil: "<<endl;
srand(time(NULL));
n=rand()%6+1;
rysuj_kostke();

bool pierwszy_raz=true;
      if(pierwszy_raz==true)
      {
               if(n==6)
               {
                       wyswietl_plansze(plansza);
                       cout<<"Wybierz pionka ze schowka, ktorym chcesz wejsc do gry..."<<endl;
                       cout<<"Podaj nr wiersza: "<<endl;
                       cin>>i;
                       cout<<"Podaj nr kolumny: "<<endl;
                       cin>>j;
                       plansza[i][j]='_';
                       plansza[pozycja[0].i][pozycja[0].j]='1';
                       pierwszy_raz=false;
                       cout<<"Rzucasz jeszcze raz..."<<endl;
                       srand(time(NULL));
                       n=rand()%6+1;
                       while(n==6)
                       {
                                  n=rand()%6+1;
                                  rysuj_kostke();
                                  wyswietl_plansze(plansza);
                                  cout<<"Znow 6!..."<<endl;
                                  cout<<"Chcesz wyjsc pionkiem ze schowka, czy poruszyc sie pionkiem?..."<<endl;
                                  cout<<"1) Wyjsc ze schowka."<<endl;
                                  cout<<"2) Poruszyc sie pionkiem."<<endl;
                                  cin>>opcja;
                                  if(opcja==1)
                                  {
                                    cout<<"Wybierz pionka ze schowka, ktorym chcesz wejsc do gry..."<<endl;
                                    cout<<"Podaj nr wiersza: "<<endl;
                                    cin>>i;
                                    cout<<"Podaj nr kolumny: "<<endl;
                                    cin>>j;
                                    plansza[i][j]='_';
                                    plansza[pozycja[0].i][pozycja[0].j]='1';
                                    wyswietl_plansze(plansza);
                                  }
                                  else
                                  {
                                             cout<<"Wybierz pionka ktorym chcesz sie poruszyc..."<<endl;
                                             cout<<"Podaj nr wiersza: "<<endl;
                                             cin>>i;
                                             cout<<"Podaj nr kolumny: "<<endl;
                                             cin>>j;
                                             plansza[i][j]='_';
                                             for(int k=0;k<40;k++)
                                             {
                                                     if(pozycja[k].i==i&&pozycja[k].j==j) plansza[pozycja[k+n].i][pozycja[k+n].j]='1';
                                             }    
                                             wyswietl_plansze(plansza);
                                  }
                                      
                       }
                       
               }
      }
      
      if(n==6&&pierwszy_raz==false)
      {
                      wyswietl_plansze(plansza);                        
           rysuj_kostke();

           cout<<"Chcesz wyjsc pionkiem ze schowka, czy poruszyc sie pionkiem?..."<<endl;
           cout<<"1) Wyjsc ze schowka."<<endl;
           cout<<"2) Poruszyc sie pionkiem."<<endl;
           cin>>opcja;
           if(opcja==1)
           {
                                              wyswietl_plansze(plansza);
                       rysuj_kostke();                       
                       cout<<"Wybierz pionka ze schowka, ktorym chcesz wejsc do gry..."<<endl;
                       cout<<"Podaj nr wiersza: "<<endl;
                       cin>>i;
                       cout<<"Podaj nr kolumny: "<<endl;
                       cin>>j;
                       plansza[i][j]='_';
                       plansza[pozycja[0].i][pozycja[0].j]='1';

           }
           else
           {
                       rysuj_kostke();
                       cout<<"Wybierz pionka ktorym chcesz sie poruszyc..."<<endl;
                       cout<<"Podaj nr wiersza: "<<endl;
                       cin>>i;
                       cout<<"Podaj nr kolumny: "<<endl;
                       cin>>j;
                       plansza[i][j]='_';
                       for(int k=0;k<40;k++)
                       {
                               if(pozycja[k].i==i&&pozycja[k].j==j) plansza[pozycja[k+n].i][pozycja[k+n].j]='1';
                       }    
                       wyswietl_plansze(plansza);
           }
      }
      if(n!=6)
      {
           if(pierwszy_raz==false)
           {
                                  rysuj_kostke();
                       cout<<"Wybierz pionka ktorym chcesz sie poruszyc..."<<endl;
                       cout<<"Podaj nr wiersza: "<<endl;
                       cin>>i;
                       cout<<"Podaj nr kolumny: "<<endl;
                       cin>>j;
                       plansza[i][j]='_';
                       for(int k=0;k<40;k++)
                       {
                               if(pozycja[k].i==i&&pozycja[k].j==j) plansza[pozycja[k+n].i][pozycja[k+n].j]='1';
                       }    
                       wyswietl_plansze(plansza);
           }
           else
           {
           cout<<"Nie udalo sie trafic 6! Teraz kolej gracza 1..."<<endl;
           start(plansza);
           }
      } 
      if(n!=6&&pierwszy_raz==false)
      {
      wyswietl_plansze(plansza);
      srand(time(NULL));
      n=rand()%6+1;
      rysuj_kostke();
           cout<<"Wybierz pionka ktorym chcesz sie poruszyc..."<<endl;
           cout<<"Podaj nr wiersza: "<<endl;
           cin>>i;
           cout<<"Podaj nr kolumny: "<<endl;
           cin>>j;
           plansza[i][j]='_';
           for(int k=0;k<40;k++)
           {
                   if(pozycja[k].i==i&&pozycja[k].j==j) plansza[pozycja[k+n].i][pozycja[k+n].j]='1';
           }
           wyswietl_plansze(plansza);
           cout<<"Teraz kolej gracza 1!"<<endl;
           start(plansza);
      }

Funkcja dla gracza 1 wyglada analogicznie, ale nie wiem jak zrobic te warunki. Ktos jest w stanie pomoc?

0

Zapodać to w pętli do ilości graczy. Każdą zmienną która jest przypisana graczowi zastąpić na tablicę.

0

A tak bardziej szczegolwo?

0
bool pierwszy_raz[2]={true,true};
for(int gracz_nr=0;gracz_nr<2;++gracz_nr)
  {
      if(pierwszy_raz[gracz_nr])
      {
...

No chyba że interesuje cię wyłacznie gotowiec.

0
bool pierwszy_raz[2]={true,true};
for(int nr_gracza=1;nr_gracza<3;nr_gracza++)
{
        if(pierwszy_raz[nr_gracza])
        {
         srand(time(NULL));
         n=rand()%6+1;
         rysuj_kostke();
         wyswietl_plansze(plansza);
         
         if(n==6)
         {
                 if(nr_gracza==1)
                 {
                 cout<<"Gracz "<<nr_gracza<<" wychodzi ze schowka."<<endl;
                 cout<<"Wybierz pionka..."<<endl;
                 cout<<"Podaj nr wiersza: "<<endl;
                 cin>>i;
                 cout<<"Podaj nr kolumny: "<<endl;
                 cin>>j;
                 plansza[i][j]='_';
                 plansza[pozycja[0].i][pozycja[0].j]='1';
                 pierwszy_raz[1]=false;
                 cout<<"Gracz "<<nr_gracza<<" rzuca jeszcze raz."<<endl;
                 srand(time(NULL));
                 n=rand()%6+1;
                 rysuj_kostke();
                 
                 plansza[4][0]='_';
                 plansza[pozycja[0+n].i][pozycja[0+n].j]='1';

                 wyswietl_plansze(plansza);
                 }
                 else
                 {
                 cout<<"Gracz "<<nr_gracza<<" wychodzi ze schowka."<<endl;
                 cout<<"Wybierz pionka..."<<endl;
                 cout<<"Podaj nr wiersza: "<<endl;
                 cin>>i;
                 cout<<"Podaj nr kolumny: "<<endl;
                 cin>>j;
                 plansza[i][j]='_';
                 plansza[pozycja[10].i][pozycja[10].j]='1';
                 pierwszy_raz[2]=false;
                 cout<<"Gracz "<<nr_gracza<<" rzuca jeszcze raz."<<endl;
                 srand(time(NULL));
                 n=rand()%6+1;
                 rysuj_kostke();
                 
                 plansza[0][6]='_';
                 plansza[pozycja[10+n].i][pozycja[10+n].j]='1';
                 wyswietl_plansze(plansza);
                 }
         }
        }
        if(n==6&&pierwszy_raz[nr_gracza]==false)
        {
          int opcja;
          cout<<"Gracz "<<nr_gracza<<" wyrzucil 6!"<<endl;
          cout<<"Wybierz opcje..."<<endl;
          cout<<"1) Wyjdz ze schowka."<<endl;
          cout<<"2) Porusz sie pionkiem."<<endl;
          cin>>opcja;
          if(nr_gracza==1)
          {
           if(opcja==1)
           {
                 cout<<"Gracz "<<nr_gracza<<" wychodzi ze schowka."<<endl;
                 cout<<"Wybierz pionka..."<<endl;
                 cout<<"Podaj nr wiersza: "<<endl;
                 cin>>i;
                 cout<<"Podaj nr kolumny: "<<endl;
                 cin>>j;
                 plansza[i][j]='_';
                 plansza[pozycja[0].i][pozycja[0].j]='1';
                 
                 cout<<"Gracz "<<nr_gracza<<" rzuca jeszcze raz."<<endl;
                 srand(time(NULL));
                 n=rand()%6+1;
                 rysuj_kostke();
                 
                 plansza[0][6]='_';
                 plansza[pozycja[10+n].i][pozycja[10+n].j]='1';
                 wyswietl_plansze(plansza);
           }
           else
           {
                 cout<<"Podaj nr wiersza: "<<endl;
                 cin>>i;
                 cout<<"Podaj nr kolumny: "<<endl;
                 cin>>j;
                 plansza[i][j]='_';
                 for(int k=0;k<40;k++)
                 {
                         if(pozycja[k].i==i&&pozycja[k].j==j) plansza[pozycja[k+n].i][pozycja[k+n].j]='1';
                 }
           }
          }
          else
          {
           if(opcja==1)
           {
                 cout<<"Gracz "<<nr_gracza<<" wychodzi ze schowka."<<endl;
                 cout<<"Wybierz pionka..."<<endl;
                 cout<<"Podaj nr wiersza: "<<endl;
                 cin>>i;
                 cout<<"Podaj nr kolumny: "<<endl;
                 cin>>j;
                 plansza[i][j]='_';
                 plansza[pozycja[0].i][pozycja[0].j]='1';
                 
                 cout<<"Gracz "<<nr_gracza<<" rzuca jeszcze raz."<<endl;
                 srand(time(NULL));
                 n=rand()%6+1;
                 rysuj_kostke();
                 
                 plansza[0][6]='_';
                 plansza[pozycja[10+n].i][pozycja[10+n].j]='1';
                 wyswietl_plansze(plansza);
           }
           else
           {
                 cout<<"Podaj nr wiersza: "<<endl;
                 cin>>i;
                 cout<<"Podaj nr kolumny: "<<endl;
                 cin>>j;
                 plansza[i][j]='_';
                 for(int k=0;k<40;k++)
                 {
                         if(pozycja[k].i==i&&pozycja[k].j==j) plansza[pozycja[k+n].i][pozycja[k+n].j]='1';
                 }          
           }      
          }
        }
        if(n!=6&&pierwszy_raz[nr_gracza]==false)
        {
                 cout<<"Podaj nr wiersza: "<<endl;
                 cin>>i;
                 cout<<"Podaj nr kolumny: "<<endl;
                 cin>>j;
                 plansza[i][j]='_';
                 for(int k=0;k<40;k++)
                 {
                         if(pozycja[k].i==i&&pozycja[k].j==j) plansza[pozycja[k+n].i][pozycja[k+n].j]='1';
                 }
        }   
        if(n!=6&&pierwszy_raz[nr_gracza]==true)
        {
                 cout<<"A to peszek! Gracz "<<nr_gracza<<" nie trafil 6!"<<endl;
        }


}

Dalej wykonuje sie tylko 2 razy.

0

Probowalem dodac:

 if(nr_gracza==2) nr_gracza=0;

do petli, ale raz sie zapetla, a raz konczy dzialanie programu

0

for(int gracz_nr=0;gracz_nr<2;gracz_nr=(gracz_nr+1)&1)

0

OK dziala, dzieki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1