Salve ragazzi... mi servirebbe un aiuto per un programma in C : battaglia navale con matrici 3 0 per 3 0 ...
C'è qualcuno che mi sa aiutare?
Vi prego ....![]()
![]()
![]()
Salve ragazzi... mi servirebbe un aiuto per un programma in C : battaglia navale con matrici 3 0 per 3 0 ...
C'è qualcuno che mi sa aiutare?
Vi prego ....![]()
![]()
![]()
Non so se ho afferrato bene il prob.
Con un array multidimensionale non potrebbe andare?
tipo nome[x][y][z][..];
Il tipo lo metti te e i val di x, y, z li setti in base alla tue necessità!
Spero d aver colto il problema!!
CIAO
Perchè a 3 dimensioni??
La battaglia navale è una matrice a due dimensioni.
![]()
.:: Zetra.it - Web. ads . multimedia . graphix ::.
Realizzazione siti web - Carte Magic ai prezzi più bassi d'italia
- Comuni e Città
Era un esempio di dikiarazione di array multi!!!
CIAO
battaglia navale in C?
qual'è il problema non rieco a capire la tua domanda.
1)creare tramite array multidimensionali (come hanno detto prima di me) due quadrati,
2)tramite scanf() fare posizionare all'utente la "navi",
3)per quanto riguarda il computer avversario basta far si che metta le "navi" in modo randomico (che è più facile farlo che dirlo!),
4)creare un ciclo che finisca quando le variabili (array) vengono identificate.
cmq questo scommetto non sia una grande verità ma...è già qualcosa, se vuoi una mano per realizzare questo giochino son disponibile.
l'unico problema che potrei riscontrare serebbe quello delle API per creare un'interfaccia grafica ma...basta studiare e si può fare tutto
come interfaccia grafica si potrebbe utilizzare il codice ascii...
provate questo:
N.B. la parte di codice colorata in rosso e in verdecodice:#include<stdio.h> #include<stdlib.h> #include<windows.h> #include<conio.h> void gotoxy(int x, int y){ COORD coor; HANDLE hOutput; hOutput = GetStdHandle(STD_OUTPUT_HANDLE); coor.X = x; coor.Y = y; SetConsoleCursorPosition(hOutput,coor); } void disegna_scacchiera(){ int n; int y; system("CLS"); gotoxy(12,1); printf(" A B C D E F G H I J K L M N O P Q R S T U W V X Y Z"); for(n=1, y=2; n<21; n++, y++){ gotoxy(12,y); printf(" -----------------------------------------------------"); y++; gotoxy(12,y); printf("%2d| | | | | | | | | | | | | | | | | | | | | | | | | | |", n); } gotoxy(12,y); printf(" -----------------------------------------------------"); } void main(){ disegna_scacchiera(); gotoxy(12,44); printf("PREMI INVIO"); getchar(); }
non appartiene allo standard C/C++
quindi... se utilizzate un compilatore VISUAL C++
togliete la parte di codice evidenziata in rosso
se invece utilizzate un compilatore BORLAND C o C++
togliete la parte di codice evidenziata in verde.
...Terrible warlords, good warlords, and an english song
ciao forse questa sarà una domanda stupida ma sono niubbo:
se inserisco il codice nel vc++ (togliendo la parte rossa), e faccio execute ecc ecc mi apre la solita finestra dos, scorrono dei comandi, esce scritto premi invio ma niente assomiglia alla battaglia navale...
![]()
devo fare qualcosa?
carina come idea,direi abbastanza geniale!!!!
ok,come grafica ok,ma come facciamo a far modificare quell'"interfaccia"?
cioè,quando devo modificare la mia schermata(il mio mare dove posizionare le navi)dovrei fare un refresh.
...hummm...in dos se si scrive cls si cancella l'intera schermata.
però...non saprei come fare,l'unica cmq è cancellare e ricreare l'intera schermata.
A me la griglia si vede bene...
ovviamente il programma è tutto da sviluppare!!!
io ho soltanto inserito una "funzioncina"
che disegna la griglia...
ed un'altra gotoxy()...
che permette di dare delle coordinate X Y
al codice inserito (disegnare griglia, inserire, cancellare navi ecc...)
E' ovvio che a ogni nuova mossa (es: affondamento o "ferimento"
di una flotta) bisogna richiamare la funzione "disegna_scacchiera()"
che "pulisce lo schermo" e ridisegna la griglia...
e poi aggiungere/cancellare/modificare tramite gotoxy() navi e punteggio.
...Terrible warlords, good warlords, and an english song