Buongiorno a tutti.
Avrei bisogno del vostro aiuto per correggere alcuni messaggi di errore/warning su questo programmino (implementa il gioco forza 4 in linguaggio C).
Ecco i messaggi di errore (compilatore MinGW):
In function 'main':
9:5: warning : missing braces around initializer
9:5: warning : (near initialization for 'gameZone[0]')
42:83: error : expected ':' before ';' token"
codice:
int main()
{
char gameZone[ MAXLINE ][ MAXCOLUMN ] = { 0 }; /* Questo è il campo di gioco */
int line, column; /* Variabili che mi servono per limitare la grandezza del campo di gioco */
int limits; /* Serve per limitare la scelta dell'utente. Su campi di gioco diversi la scelta può cambiare */
int mode; /* Serve per memorizzare la modalità di gioco */
int turnMax; /* Turni massimi possibili */
int turn = 0;
int victory;
Player playerOne, playerTwo; /* Dichiaro i due di giocatori con il tipo struct player */
intro();
clrscr();
start();
clrscr();
gameMode( &mode ); /* Passo &mode perchè il parametro di questa funzione è un puntatore */
clrscr();
insertName( playerOne.name, playerTwo.name, mode );
clrscr();
chooseGameZone( &line, &column, &limits, &turnMax );
clrscr();
chooseSign( &playerOne, &playerTwo );
createGameZone( gameZone, line, column );
do
{
clrscr();
printGameZone( gameZone, turn, line, column );
/* Qui il giocatore sceglie la mossa che deve fare */
turn % 2 == 0 ?
printf( "\n\n\n\n\n%s", turn % 2 == 0 ? playerOne.name : playerTwo.name );
printf( ", fai la tua mossa" );
while( choosePosition( mode, gameZone, &turn, limits, line, playerOne.sign, playerTwo.sign ) ); /* Finchè la mossa non è corretta non uscire dal ciclo */
} while( !( victory = win( gameZone, turn, turnMax, line, column ) ) ); /* Il valore di victory mi serve per determinare il messaggio finale */
clrscr();
printf( "\t\t\t Situazione finale" );
printGameZone( gameZone, turn, line, column );
getch(); /* Stoppa il programma per vedere la situazione finale */
clrscr();
end( playerOne.name, playerTwo.name, victory, turn );
clrscr();
getch();
return 0;
}
"In function 'insertName':
112:10: warning: format '%s' expects type 'char*' but argument 2 has type 'char**'
117:10: warning: format '%s' expects type 'char*' but argument 2 has type 'char**'
codice:
/* Funzione insertName */
/* Due parametri ( due stringhe ) e nessun uscita */
/* Inserisce il nickname nella struttura Player */
void insertName( char *t, char *n )
{
do {
printf( "Inserisci il tuo nome [Player 1]" );
scanf( "%s",&t );
printf( "\t%s\n\n", t );
gets( n );
printf( "\n" );
printf( "Inserisci il tuo nome [Player 2]" );
scanf( "%s",&t );
printf( "\t%s\n\n", t );
if( strcmpi( n, "CPU" ) == 0 )
printf( "Il nome %s non puo' essere usato! Usane un altro!\n\n", *n );
} while( strcmpi( n, "CPU" ) == 0 );
}
Ho riportato solo le parti di codice interessate dai messaggi (in realta' non riesco ad individuare gli errori indicati!).
Spero che riusciate ad aiutarmi ad individuare e correggere gli errori.
grazie mille a tutti