Informatica 2 Liceo Scientifico Scienze Applicate/Es matrici battaglia navale
Battaglia Navale
modificaDurante la seconda Guerra Mondiale i sottomarini Tedeschi affondano le navi rifornimento provenienti dall'America,e' vitale che il convoglio giunga a destinazione, scorta il convoglio affondando tutti i sommergibili.
Che dire, bisogna proprio scrivere il codice per aiutare gli Alleati, pensiamo di rappresentare il mare come una griglia 5*3 dove le righe rappresentano la quota di profondita' dove innescare la bomba di profondita' e la colonna rappresenta l'area di mare da proteggere. La profondita' varia da 0 a 4 e le aree da difendere sono 3 . Decifrare i messaggi della macchina enigma e' stato facile con il progetto "mantovani" sai che in zona ci sono 2 U-Boat
I valori nella griglia hanno i seguenti significati:
0 -> acqua 1 -> sommergibile 2 -> acqua hai gia' provato in questa posizione 3 -> sommergibile già colpito e affondato
#include <cstdlib>
#include <iostream>
using namespace std;
/* colpisci i sottomarini
il mare è una griglia 5*3 che si realizza mediante una matrice
devi colpire 2 sottomarini ( posizione random scelta dal pc);
dando la profondità x;
dando le coordinate y dove sganciare la bomba
il programma tiene traccia dei tentativi fatti
e quando vinci li visualizza .
*/
int main(int argc, char *argv[])
{
int matrice[5][3];
int i,j;
int const nsommergibili=2;
int conta;
int x,y;
//creo il mare; 0 è uguale a acqua
for(i=0;i<5;i++)
for(j=0;j<3;j++)
{matrice[i][j]=0;
}
//creo i sommergibili e li posiziono
//1 è uguale a sommergibile
conta=0;
while(conta<nsommergibili)
{ x=rand()%5;
y=rand()%3;
if(matrice[x][y]==0)
{ matrice[x][y]=1;
conta++;
}
}
cout<<"cerca i 2 sommergibili, il mare è una griglia 5 * 3 "<<endl;
cout<<" la profondità x è 0,1,2,3,4 la posizione y e' 0,1,2"<<endl ;
int daaffondare=nsommergibili;
while(daaffondare>0)
{
cout<<"inserisci le coordinate della bomba"<<endl;
cout<<"x= ";
cin>>x;
cout<<"y= ";
cin>>y;
switch( matrice[x][y])
{case 0: cout<<"acqua"<<endl;
matrice[x][y]=2;
break;
case 1: cout<<"boom!"<<endl;
daaffondare=daaffondare-1;
matrice[x][y]=3;
break;
case 2: cout<<"hai già tentato in questa posizione"<<endl;
break;
case 3: cout<<"il sommergibile è già stato affondato"<<endl;
break;
} //fine switch
} //fine while
cout<<"bravo!hai vinto,sommergibili affondati"<<endl;
cout<<" questi sono stati i tentativi "<<endl;
for(i=0;i<5;i++)
{for(j=0;j<3;j++)
cout<<matrice[i][j]<<" ";
cout<<endl;
}
cout<<"0->acqua"<<endl;
cout<<"1->sommergibile "<<endl;
cout<<"2->acqua hai gia' provato in questa posizione"<<endl;
cout<<"3->sommergibile colpito e affondato"<<endl;
return 0;
}