Problema matrice di caratteri c

di il
8 risposte

Problema matrice di caratteri c

Salve, premetto che ho iniziato da poco a programmare (sono al terzo anno di un istituto tecnico), oggi volevo provare a creare un videogioco simile al famoso "PacMan" (l'idea l'ho presa da youtube) ma con qualche piccola modifica. Ho appena iniziato a scrivere metà della mappa utilizzando una matrice di caratteri speciali. Il problema è che quando provo ad eseguire il programma mi appare questo:


wtff.png
wtff.png


Il codice sorgente è questo:
#include <stdio.h>
#define R 23
#define C 9


char map[23][9]= {{qui ho messo i caratteri per creare la mappa ma non so perché quando provavo a metterli non mi faceva pubblicare}};

main ()
{
    char movimento, tizio, map[23][9];
    
	int i, j;
	
	printf("\n\n");
    
	for (i=0; i<R; i++)
    {
    	printf("\t\t");
    	
		for (j=0; j<C; j++)
    	{
    		printf("%c", map[i][j]);
		}
		
		printf("\n");
	}
}
Grazie mille per l'attenzione.

8 Risposte

  • Re: Problema matrice di caratteri c

    Perché hai dichiarato la variabile map due volte?
    Devi togliere quella dichiarata nel main e lasciare solo quella globale.
  • Re: Problema matrice di caratteri c

    Oddio che stupido, ora va tutto bene. Grazie davvero tanto per l'aiuto
  • Re: Problema matrice di caratteri c

    Essendo un videogioco penso che dovrai cancellare e ristampare lo schermo molte volte di seguito, quindi ti consiglio di trattare la matrice come una stringa e stamparlo con una semplice printf, se no si vedrà tutto sfasato e non si capirà niente.
  • Re: Problema matrice di caratteri c

    In che senso stampare la matrice come una stringa?
  • Re: Problema matrice di caratteri c

    In pratica devi mettere alla fine di ogni riga della matrice il carattere '\n' (che manda a capo) e come ultimo carattere dell'ultima riga '\0' (il terminatore di stringa). Poi la stampi con printf("%s", map);.
    Quindi devi aumentare di uno la grandezza delle righe della matrice per mantenerla uguale graficamente e ti ritroverai con: map[24][9].
  • Re: Problema matrice di caratteri c

    Ho capito, proverò a fare così, grazie mille per il consiglio! . Ma per quanto riguarda la dimensione delle righe dovrebbe essere 25 non 24 dato che contiamo sia il carattere \n che quello terminale (\0)?
  • Re: Problema matrice di caratteri c

    No deve essere 24 perché ci va solo un carattere in più che è '\n', a parte nell'ultima riga che è '\0', in questo modo:
    a a a a a a a a a a a a a a a a a a a a a \n
    a a a a a a a a a a a a a a a a a a a a a \n
    a a a a a a a a a a a a a a a a a a a a a \n
    a a a a a a a a a a a a a a a a a a a a a \n
    a a a a a a a a a a a a a a a a a a a a a \n
    a a a a a a a a a a a a a a a a a a a a a \n
    a a a a a a a a a a a a a a a a a a a a a \n
    a a a a a a a a a a a a a a a a a a a a a \n
    a a a a a a a a a a a a a a a a a a a a a \0
  • Re: Problema matrice di caratteri c

    Ho capito, grazie mille per l'aiuto.
Devi accedere o registrarti per scrivere nel forum
8 risposte