// La tartaruga e la lepre
#include <iostream>
#include <string>
#include <windows.h>
#include <ctime>
#include <cstdlib>
using namespace std;
int mossaTartaruga ( void );
int mossaLepre ( void );
int mossaBradipo ( void );
int posizioneTartaruga = -1;
int posizioneLepre = -1;
int posizioneBradipo = -1;
int main ( void )
{
string percorso[60];
string animale1, animale2;
bool tartaruga, lepre, bradipo = false;
srand ( time ( 0 ) );
for ( int i = 0; i < 60; i++ )
percorso[i] = "_";
cout << "LA TARTARUGA E LA LEPRE" << endl << endl;
cout << "\nBenvenuto quali animali vuoi far gareggiare?\n(tartaruga, lepre, bradipo) ";
cin >> animale1 >> animale2;
if ( animale1 == "tartaruga" || animale2 == "tartaruga" )
{
tartaruga = true;
posizioneTartaruga = 0;
}
if ( animale1 == "lepre" || animale2 == "lepre")
{
lepre = true;
posizioneLepre = 0;
}
if ( animale1 == "bradipo" || animale2 == "bradipo")
{
bradipo = true;
posizioneBradipo = 0;
}
cout << "\nOttima scelta la gara fra " << animale1 << " e " << animale2 << endl;
cout << "\n\nIl gioco sta per iniziare. . . ";
Sleep ( 2000 );
for ( int i = 3; i > 0; i-- )
{
cout << i << "\a ";
Sleep ( 1000 );
}
cout << "\nBANG!!!\a PARTITI!!\n\n\n";
for ( int i = 0; i < 60; i++ )
cout << percorso[i];
while ( ( posizioneTartaruga < 59 ) && ( posizioneLepre < 59 ) && ( posizioneBradipo < 59 ) )
{
Sleep ( 1000 );
for ( int j = 0; j < 60; j++ )
{
percorso[j] = "_";
cout << "\r";
cout << percorso[j];
}
cout << "\r";
if ( tartaruga == true )
{
posizioneTartaruga = posizioneTartaruga + mossaTartaruga();
if ( posizioneTartaruga < 0 )
posizioneTartaruga = 0;
else if ( posizioneTartaruga > 59 )
posizioneTartaruga = 59;
percorso[posizioneTartaruga] = "T";
}
if ( lepre == true )
{
posizioneLepre = posizioneLepre + mossaLepre();
if ( posizioneLepre < 0 )
posizioneLepre = 0;
else if ( posizioneLepre > 59 )
posizioneLepre = 59;
percorso[posizioneLepre] = "L";
}
if ( bradipo == true )
{
posizioneBradipo = posizioneBradipo + mossaBradipo();
if ( posizioneBradipo < 0 )
posizioneBradipo = 0;
else if ( posizioneBradipo > 59 )
posizioneBradipo = 59;
percorso[posizioneBradipo] = "B";
}
if ( posizioneTartaruga == posizioneLepre || posizioneBradipo == posizioneTartaruga )
percorso[posizioneTartaruga] = "P";
else if ( posizioneBradipo == posizioneLepre )
percorso[posizioneBradipo] = "P";
for ( int i = 0; i < 60; i++ )
cout << percorso[i];
}
for ( int i = 0; i < 60; i++ )
percorso[i] = "_";
if ( posizioneTartaruga >= 59 )
cout << "\n\nHa vinto la TARTARUGA!!";
else if ( posizioneLepre >= 59 )
cout << "\n\nHa vinto la LEPRE!!";
else if ( posizioneBradipo >= 59 )
cout << "\n\nHa vinto il BRADIPO!!";
cout << "\n\n\nIl gioco si spegnera' fra 5 secondi. . .";
Sleep ( 5000 );
return EXIT_SUCCESS;
}
int mossaTartaruga ( void )
{
int mossa;
mossa = 1 + rand() % 10;
if ( ( mossa >= 1 ) && ( mossa <= 5 ) )
return 3;
else if ( ( mossa == 6 ) || ( mossa == 7 ) )
return -6;
else if ( ( mossa >= 8 ) && ( mossa <= 10 ) )
return 1;
}
int mossaLepre ( void )
{
int mossa;
mossa = 1 + rand() % 10;
if ( ( mossa == 1 ) || ( mossa == 2 ) )
return 0;
else if ( ( mossa == 3 ) || ( mossa == 4 ) )
return 9;
else if ( mossa == 5 )
return -12;
else if ( ( mossa == 6 ) || ( mossa == 7 ) || ( mossa == 8 ) )
return 1;
else if ( ( mossa == 9 ) || ( mossa == 10 ) )
return -2;
}
int mossaBradipo ( void )
{
return 1;
}