PDA

Visualizza la versione completa : [C++] Implementazione gioco della Battaglia Navale


marcos666
18-02-2011, 17:12
Ciao, sto implementando il classico gioco delle battaglie navali, dove gli 1 nelle matrici (a,b ) rapprensentano le navi e gli array chiamati griglie sono le matrici che i giocatori vedono riempite da 0 finche il giocatore d le coordinate affinche possa affondare una nave, la mia domanda : se uno dei giocatori colpisce una nave come faccio a stampare l'array chimato griglia con qualche segno che identifichi che ha colpito una nave.

grazie



# include <iostream>
using namespace std;
const int n=4;


void stampa (int [][n]);
bool spara (int [][n],int,int);



int main ()
{
int riga, colonna;
int griglia [n][n]={0};
int griglia2 [n][n]={1};




int a[][n]= {{0,1,1,0},
{0,1,1,0},
{0,1,1,0},
{0,1,1,0}};

int b[][n]={{0,0,1,0},
{0,1,0,0},
{0,1,1,1},
{0,0,0,0}};

cout<<"________BENBENUTI ALLE BATTAGLIE NAVALI__________"<<endl;
cout<<"giocatore 1 :"<<endl;
stampa (griglia);
cout<<"dammi riga"<<endl;
cin>>riga;
cout<<"dammi colonna"<<endl;
cin>>colonna;

if (spara(a,riga,colonna)){
cout<<"NAVE COLPITA"<<endl;
}
else{
cout<<"NAVE NON COLPITA"<<endl;
}





return 0;
}

void stampa (int griglia[][n])
{
for (int i=0; i < n; i++)
{
for (int j=0; j<n; j++)
cout<<griglia[i][j]<<' ';
cout<<endl;
}
}
bool spara (int a[][n],int riga, int colonna)
{
if (a[riga][colonna]==1)
return true;
return false;
}

lodu93
18-02-2011, 20:18
Guarda io ti allego un codice che avevo iniziato a fare, anche se non sono riuscito mai a farlo funzionare, gli errori sono 0 ma non mi riconosce le navi colpite... puoi prendere spunto se vuoi:


#include <iostream>

using namespace std;

int campo[5][5]={{1,1,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0},
{0,0,0,0,0}};

void close_game()
{
exit(0);
}


int start_game()
{
int x, y;
int navi=0;
int navi_colpite=0;
int m=5,n=5;
cout<<"\n\n********************************************** **********************";
cout<<" BATTAGLIA NAVALE ";
cout<<"\n\n********************************************** **********************";
//Controllo generale navi sul campo.
for(x=0;x<m;x++)
for(y=0;y<n;y++)
{
if(campo[x][y]==1)
navi++;
}
navi_colpite=navi;
//Avvio gioco "Battaglia Navale".
do
{
cout<<"\n\n\n Inserisci le coordinate di X = ";
cin>>x;
cout<<"\n\n Inserisci le coordinate di Y = ";
cin>>y;
if(campo[x][y]==-1)
{
cout<<"\n\n - Mmm... Ci sono dei reliti di nave... -\n\n";
system("PAUSE");
}
else
if(campo[x][y]==1)
{
campo[x][y]=-1;
navi_colpite--;
cout<<"\n\n - OTTIMOOOO! Hai centrato il tuo bersaglio! -\n\n";
}
else
if(campo[x][y]==-2)
{
cout<<"\n\n - Qui ci hai gia' sparato! -\n\n";
system("PAUSE");
}
else
if(campo[x][y]==0)
{
campo[x][y]=-2;
cout<<"\n\n - C'e solo acqua qui! -\n\n";
system("PAUSE");
}
}
while(navi_colpite=0);
cout<<"\n\n - HAI VINTO LA PARTITA, CONGRATULAZIONI! -\n\n";
system("PAUSE");
close_game();
}


char menu ()
{
char commando_menu;
do
{
cout<<" MENU DI GIOCO\n\n";
cout<<" Premi [i] per iniziare a giocare";
cout<<" Premi <u> per uscire dal gioco";
cout<<"\n\n\n Cosa vuoi fare?! ...... ";
cin>>commando_menu;
if(commando_menu=='i')
{
start_game();
}
if(commando_menu=='u')
{
close_game();
}
else
cout<<"\n\n Spieacente questo commando non e' riconosciuto!\n\n\n Cosa vuoi fare?!";
}
while(commando_menu=='i'||commando_menu=='u');
}


int main()
{
menu();
}

marcos666
18-02-2011, 20:21
grazie guardero!!

Loading