BattagliaNavale_Elementare

« Older   Newer »
  Share  
}Light{
CAT_IMG Posted on 15/2/2012, 20:47     +1   -1




Salve a tutti ragazzi, dopo un po' di tempo che non ero attivo, ho deciso di farmi risentire.
Come non ritornare in scena come un bel programmino ? ! ? ! ?
Battaglia navale in C.
Premetto che la grafica è un po' rudimentale però mi sono impegnato e spero vi piaccia!
CODICE
#include "stdafx.h"
#include "stdlib.h"
#include "time.h"
int _tmain(int argc, _TCHAR* argv[])
{
       int mareplayer[10][10],marepc[10][10],mareconfronto[10][10];
       int i,j,k,caselley,casellex;
       int navi,navi2;
       srand(time(NULL));
       for(i=0;i<10;i++){
               for(j=0;j<10;j++){
                       marepc[i][j]=0;
                       mareplayer[i][j]=0;
                       mareconfronto[i][j]=0;
               }
       }
       printf("BATTAGLIA NAVALE CREATA DA SCANTA CHE E' UN BOSS \n");//per i miei compagni di scuola hahah
       printf("La tabella numero1 mostra il tuo campo di battaglia :\n");
       printf("La cifra e' :\n1. dove e' posizionata la tua nave\n4. dove il tuo nemico ha bombardato\n9. dove il tuo nemico ti ha affondato\n");
       printf("La tabella numero2 mostra il campo di battaglia del nemico\n");
       printf("la cifra e':\n4. dove hai bombardato\n8.dove hai affondato una nave nemica\n");
       printf("Inserisci il numero di navi tue e del nemico \n");
       scanf("%d",&navi);
       navi2=navi;
       printf("\n\n\tINSERIRE LE TUE NAVI\n\n");

       for(i=0;i<navi;i++){
               do{
                       do{
                               printf("\nCoppia numero : %d \n",i);
                               printf("Inserisci il valore della Y  : ",i);
                               scanf("%d",&caselley);
                               printf("Inserisci il valore della X  : ",i);
                               scanf("%d",&casellex);
                       }while((caselley < 0) || (caselley >= 10) || (casellex < 0) || (casellex >= 10));
               }while(mareplayer[caselley][casellex]==1);
               mareplayer[caselley][casellex]=1;
       }
       printf("  0   1   2   3   4   5   6   7   8   9");
       for(i=0;i<10;i++){
               printf("\n----------------------------------------\n");
               for(j=0;j<10;j++){
                       if(mareplayer[i][j]==0){
                               printf("|   ");
                       }
                       else{
                       printf("| %d ",mareplayer[i][j]);
                       }
               }
               printf("| %d ",i);
       }
       printf("\n----------------------------------------\n");
       printf("Il computer piazzera' le sue navi ");
       system("pause");
       for(i=0;i<navi;i++){
               do{
                       do{
                               casellex=rand()%10;
                               caselley=rand()%10;
                       }while((caselley < 0) || (caselley >= 10) || (casellex < 0) || (casellex >= 10));
               }while(marepc[caselley][casellex]==1);
               marepc[caselley][casellex]=1;
       }
       k=0;
       for(;;){
               do{
                       printf("Scegli la cella da bombardare : \n");
                       printf("Coordinata Y : \n");
                       scanf("%d",&caselley);
                       printf("Coordinata X : \n");
                       scanf("%d",&casellex);
               }while(((mareconfronto[caselley][casellex]) == 4 || (mareconfronto[caselley][casellex]) == 8)  || (caselley < 0) || (caselley >= 10) || (casellex < 0) || (casellex >= 10));
               if(marepc[caselley][casellex]==1){
                       printf("!!Hai affondato una nave del nemico Complimenti!!\n");
                       mareconfronto[caselley][casellex]=8;
                       navi=navi-1;}
               else{
                       printf("Mi dispiace ma non hai colpito nessuna nave del nemico\n");
                       mareconfronto[caselley][casellex]=4;
               }
               do{
                       caselley=rand()%10;
                       casellex=rand()%10;
               }while(mareplayer[caselley][casellex] == 1 || (mareplayer[caselley][casellex]) == 9);
                printf("Il nemico ha scelto la posizione Y = %d e X=%d \n",caselley,casellex);
               if(mareplayer[caselley][casellex]==1){
                       printf("Il nemico ti ha affondato la nave nella posizione Y=%d e X=%d\n",caselley,casellex);
                       mareplayer[caselley][casellex]=9;
                       navi2=navi2-1;
               }
               else{
                       printf("Il nemico non ha colpito nessuna tua nave, sei salvo per ora \n");
                       mareplayer[caselley][casellex]=4;
               }
               printf("Tieni sotto controllo le tue navi !!!!\n");
               printf("  0   1   2   3   4   5   6   7   8   9");
               for(i=0;i<10;i++){
                       printf("\n----------------------------------------\n");
                               for(j=0;j<10;j++){
                                       if(mareplayer[i][j]==0){
                               printf("|   ");
                       }
                                       else{
                                               printf("| %d ",mareplayer[i][j]);
                                       }
               }
                       printf("| %d ",i);
               }
               printf("\n----------------------------------------\n");
               printf("Tieni sotto controllo il campo di battaglia !! \n");
               printf("  0   1   2   3   4   5   6   7   8   9");
               for(i=0;i<10;i++){
                       printf("\n----------------------------------------\n");
                       for(j=0;j<10;j++){
                               if(mareconfronto[i][j]==0){
                               printf("|   ");
                       }
                               else{
                                       printf("| %d ",mareconfronto[i][j]);
                               }
               }
                       printf("| %d ",i);
       }
               printf("\n----------------------------------------\n");

               if(navi2==0 || navi==0){
                       break;
               }
               }
       if(navi==0){
               printf("Comlpimenti il giocatore 1 e' il vincitore\n");
       }
       else{
               printf("Mi dispiace il vincitore e' il computer\n");
       }
       system("pause");
       return 0;
}



Accetto commenti distruttivi e costruttivi (specialmente distruttivi!!)!!
BattagliaNavale, provatelo se volete ! :)

Edited by }Light{ - 16/2/2012, 17:40
 
Top
CAT_IMG Posted on 16/2/2012, 16:29     +1   -1

So implementare gli object

Group:
Admin
Posts:
1,215
Reputazione:
+150

Status:


Il codice è un po' spaghettato, ma nel complesso è buono!
 
Top
}Light{
CAT_IMG Posted on 16/2/2012, 16:34     +1   -1




Con spaghettato intendi che non è ben indentato ??
Oppure che va un po' di qua e di la ?
 
Top
antospaty
CAT_IMG Posted on 16/2/2012, 17:18     +1   -1




bravo,io non saprei neanche da dove cominciare xD
 
Top
}Light{
CAT_IMG Posted on 16/2/2012, 17:38     +1   -1




Non è tanto difficile, basta impegnarsi ! xD
Ho aggiunto il file per provarlo e ho anche fatto una piccola modifica per rendere il gioco più piacevole !
Potete trovarlo qua :
BattagliaNavale, provatelo se volete ! :)
 
Top
CAT_IMG Posted on 16/2/2012, 17:56     +1   -1

So implementare gli object

Group:
Admin
Posts:
1,215
Reputazione:
+150

Status:


CITAZIONE (}Light{ @ 16/2/2012, 16:34) 
Con spaghettato intendi che non è ben indentato ??
Oppure che va un po' di qua e di la ?

Un po' tutti e due, ma soprattutto la seconda :)
 
Top
Doch88
CAT_IMG Posted on 16/2/2012, 18:53     +1   +1   -1




Ha bisogno di VC++, non potresti renderlo indipendente?
 
Top
antospaty
CAT_IMG Posted on 16/2/2012, 21:52     +1   -1




CITAZIONE (Doch88 @ 16/2/2012, 18:53) 
Ha bisogno di VC++, non potresti renderlo indipendente?

e fatto in vC++?? allora penso che sapevo farlo xD comunque in VC VC# e vC++ come si fanno a rendere i software indipendenti dal programma????non sono mai riuscito a creare un exe senza il bisogno del programma predefinito installato in modo da farlo avviare su tutti i pc windows...
 
Top
Doch88
CAT_IMG Posted on 17/2/2012, 14:38     +1   -1




CITAZIONE (antospaty @ 16/2/2012, 21:52) 
CITAZIONE (Doch88 @ 16/2/2012, 18:53) 
Ha bisogno di VC++, non potresti renderlo indipendente?

e fatto in vC++?? allora penso che sapevo farlo xD comunque in VC VC# e vC++ come si fanno a rendere i software indipendenti dal programma????non sono mai riuscito a creare un exe senza il bisogno del programma predefinito installato in modo da farlo avviare su tutti i pc windows...

In teoria VC++ è l'IDE con il compilatore integrato e non dovrebbe renderlo dipendente dal .NET ma forse c'è qualcosa che c'è solo su VC++.
Per esempio stdafx.h non l'ho mai sentita e nemmeno il main che ha usato, che dovrebbe essere "int main" e non "int _tmain".
 
Top
}Light{
CAT_IMG Posted on 17/2/2012, 17:05     +1   -1




è Fatto con VC++ 2010.
non so come renderlo indipendente !
 
Top
antospaty
CAT_IMG Posted on 18/2/2012, 21:10     +1   -1




a dire il vero io non sono riuscito a rendere indipendente nessun programma fatto con programmi visual (quelli che ho usato di più sono visual c visualc# e visual basic)
 
Top
}Light{
CAT_IMG Posted on 19/2/2012, 11:09     +1   -1




Ma ragazzi c'è un errore e nessuno se ne è accorto :troll: , a dire la verità nemmeno io me ne ero accorto!!
 
Top
CAT_IMG Posted on 19/2/2012, 14:09     +1   -1

So implementare gli object

Group:
Admin
Posts:
1,215
Reputazione:
+150

Status:


CITAZIONE (Doch88 @ 17/2/2012, 14:38) 
In teoria VC++ è l'IDE con il compilatore integrato e non dovrebbe renderlo dipendente dal .NET ma forse c'è qualcosa che c'è solo su VC++.
Per esempio stdafx.h non l'ho mai sentita e nemmeno il main che ha usato, che dovrebbe essere "int main" e non "int _tmain".

Ho usato VC++ per qualche giorno, questo è quanto ti so dire:
stdafx.h è un header che fondamentalmente dice (in un modo a me sconosciuto) al compilatore di non ricompilare gli header inclusi successivamente ma di usare la versione precompilata se disponibile.
Il _tmain è un wrapper per il normale main che permette di ricevere gli argomenti sia come ASCII (8 bit) che come Unicode (16 bit).
 
Top
12 replies since 15/2/2012, 20:47   182 views
  Share