Jak zrobić przełączanie gracza po turze ?
Ostatnio zmodyfikowano 2010-02-16 17:23
Pirotechnik Temat założony przez niniejszego użytkownika |
Jak zrobić przełączanie gracza po turze ? » 2010-02-16 15:43:04 Witam mam problem zwiazany z tym programem #include <iostream> #include <conio.h> #include <cstring>
int main() { using namespace std; int gracz = 0; int proba; proba = 0; const short rozmiar = 50; char tabgracz[ 2 ][ rozmiar ]; char slowo[ rozmiar ]; char zslowo[ rozmiar ]; char kategoria[ rozmiar ]; int wynik[ 2 ]; wynik[ 0 ] = 0; wynik[ 1 ] = 0; int rundy; cout << " Gra w haselka\n Programista: Grzegorz Wegrzyn"; getch(); system( "cls" ); cout << "Podaj liczbe rund do rozegrania: "; cin >> rundy; cin.get(); system( "cls" ); cout << "Podaj nazwe gracza 1: "; cin.get( tabgracz[ gracz ], rozmiar ).get(); ++gracz; cout << "Podaj nazwe gracza 2: "; cin.get( tabgracz[ gracz ], rozmiar ).get(); cin.get(); system( "cls" ); do { cout << "Pozostalo rund: " << rundy; getch(); system( "cls" ); cout << " Gracz " << tabgracz[ gracz ] << endl; getch(); system( "cls" ); cout << "Podaj kategorie a potem slowo: \nKategoria: "; cin.get( kategoria, rozmiar ).get(); cout << "Haslo: "; cin.get( slowo, rozmiar ); cin.get(); system( "cls" ); cout << " Gracz " << tabgracz[ gracz ]; getch(); system( "cls" ); cout << "Kategoria: " << kategoria << endl; do { cin.get( zslowo, rozmiar ).get(); ++proba; cout << "Proba: " << proba << endl; } while( strcmp( zslowo, slowo ) ); system( "cls" ); cout << "Kategoria: " << kategoria << "\nHaslo: " << slowo << endl; cout << "\nBrawo!! Udalo ci sie za " << proba << " razem!!"; getch(); cout <<(( proba < 10 ) ? ++wynik[ gracz ] : --wynik[ gracz ] ); system( "cls" ); cout << "Wyniki po rundzie: " << tabgracz[ 0 ] << " : " << wynik[ 0 ] << endl; cout << " " << tabgracz[ 1 ] << " : " << wynik[ 1 ] << endl; getch(); system( "cls" ); --rundy; proba = 0; } while( rundy > 0 ); if( wynik[ 0 ] < wynik[ 1 ] ) { cout << "Zwyciezca " << tabgracz[ 1 ] << "!!"; }; if( wynik[ 0 ] > wynik[ 1 ] ) { cout << "Zwyciezca " << tabgracz[ 0 ] << "!!"; }; getch(); return( 0 ); } Jak widzicie jest on na ukonczeniu jednak nie wiem jak zrobic aby co runde przelaczal mi sie gracz na drugiego, glowie sie juz tydzien i nie moge wpasc na zaden dobry pomysl (oczywiscie wszystkie probowalem) prosze wiec o pomoc!! #pixelmaster: zmieniłem tytuł |
|
Pirotechnik Temat założony przez niniejszego użytkownika |
» 2010-02-16 16:23:04 Odpisze ktos??
|
|
malan |
» 2010-02-16 16:40:46 do { do { } while( rundy > 0 ); gracz++; } while( gracz < 2 ); Przy takim rozwiązaniu parę rzeczy byś musiał poprawić. |
|
Sticky |
» 2010-02-16 16:41:09 mógłbyś naprzykład zrobić zmienną 'gracz', i 'if'. Co każdą rundę do zmiennej gracz równej 1, dodawał byś 1,a kiedy gracz > 2 zrobił byś gracz = 1; W pętli wiadomo warunek if gracz=1 i else if gracz=2
|
|
Pirotechnik Temat założony przez niniejszego użytkownika |
» 2010-02-16 17:00:30 Wielkie dzieki sprobuje oba przyklady, jak wyjdzie to napisze. A tak z innej beczki 'if' to chyba nie petla xD |
|
Pirotechnik Temat założony przez niniejszego użytkownika |
KONIEC!! » 2010-02-16 17:12:27 #include <iostream> #include <conio.h> #include <cstring>
int main() { using namespace std; int gracz = 0; int proba; proba = 0; const short rozmiar = 50; char tabgracz[ 2 ][ rozmiar ]; char slowo[ rozmiar ]; char zslowo[ rozmiar ]; char kategoria[ rozmiar ]; int wynik[ 2 ]; wynik[ 0 ] = 0; wynik[ 1 ] = 0; int rundy; cout << " Gra w haselka\n Programista: Grzegorz Wegrzyn"; getch(); system( "cls" ); cout << "Podaj liczbe rund do rozegrania: "; cin >> rundy; cin.get(); system( "cls" ); cout << "Podaj nazwe gracza 1: "; cin.get( tabgracz[ gracz ], rozmiar ).get(); ++gracz; cout << "Podaj nazwe gracza 2: "; cin.get( tabgracz[ gracz ], rozmiar ).get(); cin.get(); --gracz; system( "cls" ); do { cout << "Pozostalo rund: " << rundy; getch(); system( "cls" ); cout << " Gracz " << tabgracz[ gracz ] << endl; getch(); system( "cls" ); cout << "Podaj kategorie a potem slowo: \nKategoria: "; cin.get( kategoria, rozmiar ).get(); cout << "Haslo: "; cin.get( slowo, rozmiar ); cin.get(); system( "cls" ); ++gracz; if( gracz > 1 ) { gracz = 0; } else; cout << " Gracz " << tabgracz[ gracz ]; getch(); system( "cls" ); cout << "Kategoria: " << kategoria << endl; do { cin.get( zslowo, rozmiar ).get(); ++proba; cout << "Proba: " << proba << endl; } while( strcmp( zslowo, slowo ) ); system( "cls" ); cout << "Kategoria: " << kategoria << "\nHaslo: " << slowo << endl; cout << "\nBrawo!! Udalo ci sie za " << proba << " razem!!"; getch(); cout <<(( proba < 10 ) ? ++wynik[ gracz ] : --wynik[ gracz ] ); system( "cls" ); cout << "Wyniki po rundzie: " << tabgracz[ 0 ] << " : " << wynik[ 0 ] << endl; cout << " " << tabgracz[ 1 ] << " : " << wynik[ 1 ] << endl; getch(); system( "cls" ); if( gracz > 1 ) { gracz = 0; } else; --rundy; proba = 0; } while( rundy > 0 ); if( wynik[ 0 ] < wynik[ 1 ] ) { cout << "Zwyciezca " << tabgracz[ 1 ] << "!!"; }; if( wynik[ 0 ] > wynik[ 1 ] ) { cout << "Zwyciezca " << tabgracz[ 0 ] << "!!"; }; if( wynik[ 0 ] = wynik[ 1 ] ) { cout << "Remis!! Obaj gracze otrzymali po: " << wynik[ 0 ] << " pkt."; }; getch(); return( 0 ); } |
|
Sticky |
» 2010-02-16 17:19:04 no mniejsza z tym ;p wiadomo o co chodzi. czyli się udało?;> |
|
Sticky |
» 2010-02-16 17:23:38 zrobiłeś wyświetlanie która to próba w pętli while tak, że jeśli gracz nie wpisując nic wciśnie enter program zatnie się na tej pętli i nie wyjdzie z niej już, będzie dodawał do próby 1 i ciągle wyświetlał to. |
|
« 1 » |