#include <iostream> #include <cstdlib> #include <ctime> #include <iomanip> #include <fstream> #include <string.h> using namespace std; int losuj() { return rand()%6+1; } void akcja( char imie[10], int & pos, char plansza[100], int krok, int ilosc_pol, int & ilosc_zakonczonych_graczy ) { cout << setw( 10 ) << imie << " - " << setw(2) << ( pos + 1 ) << "; +" << krok << "; "; pos += krok; switch( plansza[ pos ] ) { case 'o': cout << "wraca na poczatek\n"; break; case 'p': cout << "pies zjadl plyte z programem, cofa sie o 10 pol\n"; pos -= 10; break; case 'c': cout << "wygral(a) 5 punktow i przesuwa sie o 5 pol do przodu\n"; pos += 5; break; case 'd': cout << "przesuwa sie o 10 pol do przodu\n"; pos += 10; break; case 'r': cout << "rzuca jeszcze raz\n"; akcja( imie, pos, plansza, krok, ilosc_pol, ilosc_zakonczonych_graczy ); break; case 't': cout << "wyslal(a) program nie testujac go, cofa sie o 20 pol\n"; pos -= 20; break; case 'u': cout << "zgubil(a) buta, cofa sie o 5 pol\n"; pos -= 5; break; default: cout << "leci dalej\n"; } if( pos < 1 ) { pos = 1; } else if( pos >= ilosc_pol ) { pos = ilosc_pol; ilosc_zakonczonych_graczy++; cout << setw( 10 ) << imie << " - wygral(a) !!!\n"; } } int main() { srand( time( NULL ) ); ifstream p( "plansza.txt" ); if( ! p.is_open() ) { cout << "Nie mozna otworzyc pliku 'plansza.txt'\n"; system( "pause" ); exit( 1 ); } char plansza[100] = {0}; char gracze[10][10] = {0}; int pozycja_graczy[10] = {0}; int ilosc_pol = 0; int ilosc_graczy = 0; int ilosc_zakonczonych_graczy = 0; char data[100]; p >> plansza; int i = 0; for( ; ; ) { p >> data; if( strcmp( data, ".end" ) == 0 ) { break; } strcpy( gracze[ i ], data ); i++; } ilosc_graczy = i; cout << "Lista graczy:\n"; for( i = 0; i < ilosc_graczy; i++ ) { cout << " " << ( i + 1 ) << " - " << gracze[ i ] << "\n"; } cout << "\nWczytana plansza: "<< plansza; i = -1; do { i++; } while( plansza[ i ] ); ilosc_pol = i; cout << "\nDlugosc planszy: " << ilosc_pol << "\n"; p.close(); do { for( int i = 0; i < ilosc_graczy; i++ ) { if( ilosc_graczy - 2 < ilosc_zakonczonych_graczy ) { break; } if( pozycja_graczy[ i ] == ilosc_pol ) { continue; } akcja( gracze[ i ], pozycja_graczy[ i ], plansza, losuj(), ilosc_pol, ilosc_zakonczonych_graczy ); } } while( ilosc_zakonczonych_graczy < ilosc_graczy - 1 ); system( "pause" ); return 0; }
plansza.txt:
zczzzrzzzczzpzzczzuzdzztzzzczozzzpzztczz Patrycja Bozenka Razor Ania .end
Offline