Advertisement
Gilgamesh858

Prato_Bian_Coniglio_Vita

Dec 2nd, 2014
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.99 KB | None | 0 0
  1. /*
  2.   * Esercizio "Il Prato del Coniglio"
  3.   * Avebdo un prato ( matrice di boolean di grandezza letta in input ) in cui esiste un coniglio che si ciba delle carote sparse in tutto il prato. Nella matrice le carote corrispondono al TRUE   mentre l'assenza di carote corrisponde al FALSE. Il coniglio parte dal centro e si può spostare di una sola cella verticale o orizzontale.
  4.   * Il coniglio ha una vita di 100 punti. Ad ogni salto perde un punto vita e ad ogni carota mangiata ne guadagna 10 punti.
  5.   * Non può saltare al di fuori dei bordi.
  6.   * Quanto resta in vita il coniglio prima che si finiscano le carote e muoia di fame???
  7.   *
  8.   * \\\\\\\\\\ Realizzato da Trupia Ludovico \\\\\\\\\\\\\
  9.   */
  10.  
  11.   #include <iostream>
  12.   #include <ctime>
  13.   #include <cstdlib>
  14.   #include <cstdio>
  15.  
  16.   #ifdef WIN_32
  17.   #define PULISCI system("cls")
  18.   #else
  19.   #define PULISCI system("clear")
  20.   #endif
  21.    
  22.   #define PREMI { cin.ignore();  }
  23.  
  24.   using namespace std;
  25.    
  26.   int main ()
  27.   {
  28.     srand ( time ( NULL ) ) ;
  29.     int n ;
  30.     cout << "###################### \n##By#Trupia#Ludovico## \n\n\n\n Benvenuti in questo Programma" << endl << endl;
  31.     cout << " Inserisci la grandezza del prato \\\\ " ;
  32.     cin >> n ;
  33.    
  34.      if ( n <= 1 )
  35.       {
  36.         cout << endl << endl << "Il Cogniglio Non puo saltare, quindi nemmeno morire... forever Alone..." << endl << endl;     
  37.         return 0;
  38.       }
  39.    
  40.     bool prato [ n ][ n ] , vivo = true ;  
  41.     int centro = ((n - 1)/2) , rabbX = centro , rabbY = centro , salta = 11, vita = 100 , salti = 0 ;
  42.        
  43.     for ( int i = 0 ; i < n ; i++ )
  44.     {
  45.         for ( int j = 0 ; j < n ; j++ )
  46.         {
  47.             prato [ i ] [ j ] = rand () % 2 ;
  48.         }
  49.     }
  50.     cout << endl << endl;
  51.    
  52.    
  53.     while ( vivo )
  54.     {
  55.        
  56.     //  INIZIO  STAMPAGGIO  MATRICE            
  57.         for ( int i = 0 ; i < n ; i++ )
  58.         {
  59.             cout << endl << endl;
  60.            
  61.             for ( int j = 0 ; j < n ; j++ )
  62.             {
  63.                 cout << "|";
  64.                
  65.                 if ( i == rabbY && j == rabbX )
  66.                 {
  67.                     cout << "#";
  68.                 }
  69.                 else
  70.                 {
  71.                     if ( prato [ i ][ j ] )
  72.                     {
  73.                             cout << "X";
  74.                     }
  75.                     else
  76.                     {
  77.                         cout << "O";
  78.                     }
  79.                 }
  80.                 cout << "| ";
  81.             }
  82.         }
  83.        
  84.         cout << endl << endl;
  85.       //    FINE    STAMPAGGIO  MATRICE            
  86.    
  87.         cout << " Premere INVIO per continuare \\\\\\\\ ";
  88.         PREMI;
  89.        
  90.         while ( salta > 10 )
  91.         {          
  92.             salta = rand() %  4 + 1;
  93.             salti++;
  94.             switch ( salta )
  95.             {
  96.                 case ( 1 ) :  // Il Coniglio salta in alto!
  97.                                     rabbY -= 1;
  98.  
  99.                                     if ( rabbY < 0 )
  100.                                     {
  101.                                         rabbY += 1;
  102.                                         salta = 11;                    
  103.                                     }
  104.                                     else
  105.                                     {
  106.                                         vita--;
  107.                                     }
  108.  
  109.                                     break;
  110.                                    
  111.                 case ( 2 ) :  //    Il Coniglio salta a sinistra!
  112.                                     rabbX -= 1;
  113.  
  114.                                     if ( rabbX < 0 )
  115.                                     {
  116.                                         rabbX += 1;
  117.                                         salta = 11;                    
  118.                                     }
  119.                                     else
  120.                                     {
  121.                                         vita--;
  122.                                     }
  123.  
  124.                                     break;
  125.                 case ( 3 ) : // IL Coniglio salta a destra!
  126.                                     rabbX += 1;
  127.  
  128.                                     if ( rabbX == n || rabbX > n )
  129.                                     {
  130.                                         rabbX -= 1;
  131.                                         salta = 11;                    
  132.                                     }
  133.                                     else
  134.                                     {
  135.                                         vita--;
  136.                                     }
  137.  
  138.                                     break;
  139.                 case ( 4 ) : // Il Coniglio salta in basso!
  140.                                     rabbY += 1;
  141.  
  142.                                     if ( rabbY == n || rabbY > n )
  143.                                     {
  144.                                         rabbY -= 1;
  145.                                         salta = 11;                    
  146.                                     }
  147.                                     else
  148.                                     {
  149.                                         vita--;
  150.                                     }
  151.  
  152.                                     break;
  153.             }
  154.         }
  155.  
  156.         salta = 11;
  157.        
  158.             if ( prato [rabbY][rabbX] )
  159.             {
  160.                 prato [rabbY][rabbX] = false;
  161.                 vita += 10;
  162.             }
  163.                
  164.               cout << endl << "Vita -> " << vita << endl ;             
  165.             if ( vita == 0 )
  166.             {
  167.                 vivo = !vivo;
  168.             }
  169.        
  170.     }
  171.    
  172.       cout << endl << endl << "Il Cogniglio e' morto!!! Dopo " << salti << " salti " << endl << endl;  
  173.      
  174.       return 0;
  175.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement