Buonasera a tutti!
Sono nuovo, sono un programmatore alle prime armi e uso Linux!
Mi è venuto la bella idea di replicare il gioco del Tris (Tic-Tac-Toe) in C. Ne ho già fatto una versione, il problema è che è a scorrimento, ovvero ad ogni casella modificata da un giocatore viene stampata a schermo la griglia aggiornata.
Un bel giorno scoprii che esiste una libreria molto versatile per i giochi ed in grado di ricevere input anche da mouse (o qualcosa del genere) ed è ncurses. Ho letto qualche documento in giro sul Web ma ho un po' di dubbi, spero che voi siate in grado di aiutarmi!
Il senso del gioco è trovarsi di fronte la griglia numerata e la richiesta di inserire il numero di una casella. Il giocatore passa da tastiera la casella e, se possibile, si vede il cambiamento in "tempo reale". Il mio problema riguarda proprio questo per via della mia poca conoscenza della libreria: se io ho la griglia stampata contenente i numeri, come posso farglieli cambiare in lettere?
Ho provato una cosa del tipo:
mvscanw(LINES-1, 32+dis,"%c", c); //leggi numero casella (come carattere)
switch(c) {
case '1': //
cas[0]=segno; //se il carattere inserito è 1, allora al primo quadrato della griglia assegna
refresh(); //il segno del giocatore (X o O)
break;
case '2':
cas[1]=segno; //se il carattere inserito è 2, al secondo quadrato della griglia assegna
refresh(); //il segno del giocatore (X o O)
break;
E così via ma il risultato è "Errore di segmentazione (core dump creato)" proprio nel momento in cui il giocatore batte invio per dare conferma della sua casella.
Innanzitutto grazie a tutti in anticipo, come secondo punto scusate il testo lungo e non fatevi problemi a chiedermi di spiegare meglio, so di aver scritto in un Italiano poco scorrevole.