#include <iostream> #include <cstdlib> #include <ctime> #include <iomanip> #define N 70 using namespace std; void zolw( int & pozycja_zolw, int krok ) { switch( krok ) { case 1: case 2: case 3: case 4: case 5: pozycja_zolw += 3; break; case 6: case 7: case 8: pozycja_zolw += 1; break; default: pozycja_zolw -= 6; } if( pozycja_zolw > N || pozycja_zolw < 1 ) { pozycja_zolw = 1; } } void zajac( int & pozycja_zajac, int krok ) { switch( krok ) { case 1: case 2: break; case 3: case 4: pozycja_zajac += 9; break; case 5: case 6: case 7: pozycja_zajac += 1; break; case 8: pozycja_zajac -= 12; break; default: pozycja_zajac -= 2; } if( pozycja_zajac > N || pozycja_zajac < 1 ) { pozycja_zajac = 1; } } int losuj() { return rand()%( 10-1+1 )+1; } void trasa( int pozycja_zolw, int pozycja_zajac ) { cout << "["; if( pozycja_zolw == pozycja_zajac ) { cout << "Oj, boli !!!" << setw( N-11 ); } else { for( int i = 1; i < N; i++ ) { if( i == pozycja_zolw ) { cout << "X"; } else if( i == pozycja_zajac ) { cout << "@"; } else { cout << "-"; } } } cout << "]\n"; } int main() { srand( time( NULL ) ); int pozycja_zolw = 1; int pozycja_zajac = 1; int krok; int i = 0; do { zajac( pozycja_zajac, losuj() ); zolw( pozycja_zolw, losuj() ); trasa( pozycja_zolw, pozycja_zajac ); i++; } while( pozycja_zolw != N && pozycja_zajac != N ); cout << "Zwyciezyl: " << ( pozycja_zolw == N ? "ZOLW" : "ZAJAC" ) << "\n"; cout << "Ilosc potrzebnych krokow: " << i << "\n"; system( "pause" ); return 0; }
Offline