Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 14-07-2004, 11.50.34   #181
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Un consiglio: se puoi, non toccare i cicli che convalidano l'inserimento dei caratteri .. fai al massimo dei cicli aggiuntivi .. altrimenti .. vedo e prevedo .. noiose sessioni di debug ..

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 14-07-2004, 12.32.23   #182
Alhazred
Made in Japan
Top Poster
 
L'avatar di Alhazred
 
Registrato: 04-07-2001
Messaggi: 4.461
Alhazred promette bene
Si si, non avevo alcuna intenzione di modificarli
Alhazred non è collegato   Rispondi citando
Vecchio 14-07-2004, 18.01.42   #183
Alhazred
Made in Japan
Top Poster
 
L'avatar di Alhazred
 
Registrato: 04-07-2001
Messaggi: 4.461
Alhazred promette bene
Sto implementando il controllo per evitare le coordinate ripetute all'interno di PosizionaNavi()... ho sempre questi messaggi:

battleship.c(285) : error C2059: syntax error : '}'
battleship.c(287) : error C2061: syntax error : identifier 'mArray'
battleship.c(352) : error C2143: syntax error : missing ';' before 'type'
battleship.c(354) : error C2143: syntax error : missing ';' before 'type'
battleship.c(391) : error C2065: 'hOut' : undeclared identifier
battleship.c(391) : warning C4047: '=' : 'int ' differs in levels of indirection from 'void *'
battleship.c(408) : warning C4022: 'SetConsoleCursorPosition' : pointer mismatch for actual parameter 1

l'errore in realtà è solo il primo, gli altri tornano a posto appena si sistemerà quello.
E' come se mancasse la chiusura di un ciclo, ma li ho controllati un centinaio di volte, sono tutti chiusi e non ne vengo a capo

help me!!!

P.S. non ci sono ancora tutte le istruzioni perché l'algoritmo sia completo, però vorrei sistemare prima questa cosa, almeno quando compilo mi dice gli errori effettivi.
Alhazred non è collegato   Rispondi citando
Vecchio 14-07-2004, 18.10.16   #184
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
C'é una graffa in +...

Corretta

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 14-07-2004, 18.11.44   #185
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Ragazzo mio .... .. vedo che sei moooooooooooolto prolisso .. ... ...

Ti inviterei a riconsiderare il processo logico .. scusa se mi permetto .. ma ti stai moooooooooolto complicando la vita....

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 14-07-2004, 18.35.14   #186
Alhazred
Made in Japan
Top Poster
 
L'avatar di Alhazred
 
Registrato: 04-07-2001
Messaggi: 4.461
Alhazred promette bene
Sto impazzendo, ho contato le parentesi un'altra volta prima che mi rispondessi e mi sono risultate bilanciate, le ho ricontate con quella che hai tolto... e secondo i conti erano ancora bilanciate
Vabbè, chiaro segno che per oggi non ci sto più con la testa , se mi fermo credo sia meglio.
Togliendo la graffa che hai trovato in + ottengo comunque degli errori strani:
error C2061: syntax error : identifier 'mArray'
error C2143: syntax error : missing ';' before 'type'
error C2143: syntax error : missing ';' before 'type'
error C2065: 'hOut' : undeclared identifier
warning C4047: '=' : 'int ' differs in levels of indirection from 'void *'
warning C4022: 'SetConsoleCursorPosition' : pointer mismatch for actual parameter 1

ovviamente tutte le variabili sono debitamente dichiarate, sono in posizioni successive a PosizionaNavi() e se la tolgo gli errori spariscono.

Per quanto riguarda la prolissità ti riferisci forse al fatto che potrei far diventare PosizionaNavi() ricorsiva o magari potrei implementare funzioni esterne da chiamare al suo interno?
Alhazred non è collegato   Rispondi citando
Vecchio 14-07-2004, 21.27.50   #187
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Guarda.. quando ho aperto io il file e compilato mi veniva un warning su una eventuale mancata assegnazione di mArray... inoltre l'ambiente mi evidenziava le corrispondenze delle parentesi e sembravano esatte (dopo aver tolto quella graffa) .. evidentemente c'é ancora qualcosa di sbilancaito all'interno dell'altro codice che qui manca ...

Chiamate ricorsive e funzioni esterne non erano ciò che intendevo segnalarti per risolvere il problema.. ma qualcosa di ESTREMAMENTE più semplice.. ti dò una traccia (e un consiglio):

Riparti dalla "posizionaNavi" originale, cioè quella prima di questa modifica .. ed utilizza due booleani, uno per le righe e uno per le colonne .. questi booleani ti indicheranno se la riga inserita dall'utente è già presente nel vettore e se la colonna inserita è già persente nel vettore...

Nella funzione, prima di valorizzare il t_Mossa non fai altro che controllare se le coordinate che hai ottenuto dall'inserimento dell'utente esistono nello stesso t_Mossa (che sarà già stato valorizzato dai precedenti cicli della funzione) .. te la cavi con 2 cicli for e un blocco "if" finale ..

inoltre, per la richiesta S/N di conferma, ti basta "incastonare" il tutto in un ciclo while a livello superiore che controlla se una variabile char (recuperata con getch()) sia uguale o meno ad 's'...

Spero di averti dato la dritta giusta se deciderai di seguirla e nel caso ti servisse, ho qui l'implementazione.

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 16-07-2004, 17.25.58   #188
Alhazred
Made in Japan
Top Poster
 
L'avatar di Alhazred
 
Registrato: 04-07-2001
Messaggi: 4.461
Alhazred promette bene
Rieccomi, ho pensato a quello che mi hai detto, però non credo di aver capito come mi stavi suggerendo di risolvere, così ho pensato a questo:
un booleano che mi dice se una coordinata esiste o no, un while che viene eseguito finché il booleano non diventa FALSE che ingloba tutto il codice per l'inserimento delle coordinate e prima di assegnare il valore al t_Mossa metto questo codice
Codice:
for(i=0; i<numeroNavi; i++)
	if(coorx[0] == mArray[i].colonna && i_raw == mArray[i].riga)
	      esiste = TRUE;
è meglio del bordello che avevo fatto prima?
Prova a postarmi la tua soluzione, così forse la capisco

Ultima modifica di Alhazred : 16-07-2004 alle ore 17.38.27
Alhazred non è collegato   Rispondi citando
Vecchio 16-07-2004, 17.54.29   #189
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Si, ci sei praticamente .. hai capito il ragionamento ... la mia implementazione segue proprio questo schema:

Codice:
void PosizionaNavi(){
   int Count, nave, Count2;
   char Answer = 'n';
   char c_col = ' ';
   char c_raw = ' ';
   char coorx[3];
   char tmpStr[3];
   BOOL existingCol = FALSE;
   BOOL existingRaw = FALSE;
   coorx[0] = '\0';
   tmpStr[0] = '\0';

   while((Answer != 's') && (Answer != 'S'))
   {
      printf("Inserire le coordinate per %i navi.\n",numeroNavi);
      Count = numeroNavi;
      nave = 1;
      for(i=0;i<numeroNavi;i++) {
         mArray[i].colonna = ' ';
         mArray[i].riga = 0;
      }

      while(Count > 0) {
         existingCol = FALSE; // reset
         existingRaw = FALSE; // reset

         printf("Nave %i:    Colonna_", nave);
      
         // A-J
         while((c_col < 65) || (c_col > 74)) 
            c_col = getch();

         coorx[0] = c_col;
         printf("%c    Riga_", c_col);
         c_col = ' '; // reset

         // 0-9
         while(((c_raw < 48) || (c_raw > 57))) 
            c_raw = getch();
         printf("%c", c_raw);
         tmpStr[0] = c_raw;
         c_raw = ' '; // reset

         // 0-9 o ENTER per non dare coordinata a cifra singola
         while(((c_raw < 48) || (c_raw > 57)) && (c_raw != 13)) // invio = conferma
            c_raw = getch();
         printf("%c", c_raw);
         tmpStr[1] = c_raw;
         c_raw = ' '; // reset
         
         printf("\n\r"); 
         
         // Scansione duplicati
         for(Count2=0;Count2<(nave-1);Count2++)
         {
            if(mArray[Count2].colonna == coorx[0])
               existingCol = TRUE;

            if(mArray[Count2].riga == atoi(tmpStr))
               existingRaw = TRUE;
         }

         // Se non esistono duplicati: valorizzo
         if( 
             (existingCol == FALSE) && (existingRaw == FALSE) ||
             (existingCol == FALSE) && (existingRaw == TRUE) ||
             (existingCol == TRUE) && (existingRaw == FALSE)
            )
         {
            mArray[nave-1].riga = atoi(tmpStr);
            mArray[nave-1].colonna = coorx[0];
            Count --;
            nave++;
         }
         else // altrimenti: avverto e obbligo a inserire nuovamente i valori
            printf("\nLe coordinate della nave %i corrispondono a quelle di una nave già posizionata\n", nave);

         // controlli di range delle coordinate di riga.
         if((atoi(tmpStr) < 1) || (atoi(tmpStr) > 10))
         {
            printf("\nValori di riga validi: A-J, valori di colonna validi: 1-10.\n");
            Count++;
            nave--;
         }
      }
      printf("Confermi le coordinate delle navi (S/N)?");
      Answer = getch();
      ClearScreen();
   }
}
Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 16-07-2004, 18.10.43   #190
NS-1
Hero Member
 
L'avatar di NS-1
 
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
NS-1 promette bene
ma quando è pronta ce la fai provare?
dai, una partitina.....
___________________________________

...ad ogni alba sorgerà il tuo profumo
NS-1 non è collegato   Rispondi citando
Vecchio 16-07-2004, 18.17.49   #191
Alhazred
Made in Japan
Top Poster
 
L'avatar di Alhazred
 
Registrato: 04-07-2001
Messaggi: 4.461
Alhazred promette bene
Bene, ora è chiaro (Y)
Alhazred non è collegato   Rispondi citando
Vecchio 16-07-2004, 18.47.06   #192
NS-1
Hero Member
 
L'avatar di NS-1
 
Registrato: 09-05-2002
Loc.: COMO
Messaggi: 1.135
NS-1 promette bene
ma sta partita?
___________________________________

...ad ogni alba sorgerà il tuo profumo
NS-1 non è collegato   Rispondi citando
Vecchio 16-07-2004, 18.50.10   #193
Alhazred
Made in Japan
Top Poster
 
L'avatar di Alhazred
 
Registrato: 04-07-2001
Messaggi: 4.461
Alhazred promette bene
Adesso che le funzioni di contorno sono pronte viene il bello, bisognerà gestire lo scambio di messaggi tra i due processi e l'accesso in memoria condivisa per evitare brutte sorprese.
Alhazred non è collegato   Rispondi citando
Vecchio 16-07-2004, 18.50.17   #194
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
'momento.. il cantiere è ancora aperto .. .... vero Alh ?

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 16-07-2004, 18.50.50   #195
Alhazred
Made in Japan
Top Poster
 
L'avatar di Alhazred
 
Registrato: 04-07-2001
Messaggi: 4.461
Alhazred promette bene
Quota:
Originariamente inviato da P8257 WebMaster
'momento.. il cantiere è ancora aperto .. .... vero Alh ?

Bye
Vero!
(vedi risposta sopra)
Alhazred non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
La grande battaglia dei super eroi! Sbavi Chiacchiere in libertà 83 27-02-2009 10.43.39
battaglia navale in c# Joy&Lu Programmazione 3 01-09-2008 15.08.58
Il Signore degli Anelli - La Battaglia per la terra di mezzo Darth Maul Masterizzazione Giochi Games 0 01-09-2006 18.16.18
[C] Battaglia Navale (versione client server) in Linux Nanri Programmazione 11 06-08-2005 14.50.27

Orario GMT +2. Ora sono le: 00.55.49.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.