Forum
Tipps
News
Menu-Icon

map mit c aus datei laden

Tach,
bin grad dabei n kleines Jump n' Run spiel in C zu schreiben. Benutzte dafür gekachelte Karten. Ich würde nun aber, um den Quelltext nicht zu unübersichtlich zu machen, gerne die Maps aus Dateien zu laden. Hab das auch schon probiert, hat aber net gefunzt. Ich zeig euch mal die defination der gekachelten landkarte:

//Karte als Liste von Strings
char *initkarte[] = {
   "########################",
   "########################",
   "#########9ab############",
   "#########cde###9ab######",
   "##9ab####7f8###cde######",
   "##cde#####g####7f8######",
   "##7f8#####g#####g##9ab##",
   "###g######g#####g##cde##",
   "###g######g#####g##7f8##",
   "pqqqq5655qqqqr##g###g###",
   "tvvvvvuvvvvvvw##g###g###",
   "tvvvvvvvvuvvvGqqqqqqqqqr",
""};

Nun hätte ich gerne eine Datei, aus der ich exat diese Platzhalter in *initkarte[] laden kann.

THX im vorraus

matze


Antworten zu map mit c aus datei laden:

Schnell hingehackt und das hier tut auch nur etwas ähnliches wie das, was Du haben wolltest ( die Karte wird nicht als char *foo[] geladen ) aber das kannst Du ja dann selber zurechtfrickeln...

#include <stdio.h>

int main( void )
{
   const int max_mapsize = 16000;
   char *map;
   FILE *f;
   int offset = 0;
   
   map = ( char * )malloc( max_mapsize );
   
   f = fopen( "mapfile.txt", "r" );

   if( !f )
   {
      printf( "Kann mapfile.txt nicht öffnen!\n" );
      free( map );
      return -1;
   }
   
   while( !feof( f ) || offset <= max_mapsize )
   {
      int chars_read;
      char *tmp;

      tmp = fgets( map + offset, max_mapsize - offset, f );
      if( tmp )
      {
         chars_read = strlen( tmp );
         offset += chars_read;
      }
      else
      {
         break;
      }
   }
   
   printf( "%s\n", map );

   free( map );
   
   return 0;
}

« C/C++ LernenVB.NET: Verknüpfungen erstellen »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Buffer Underrun
Der Buffer Underrun war ein gefürchtetes Problem bei älteren CD-Brennern. Während des Brennvorgangs werden die Daten von der Festplatte in einen Puffer-Spe...

Dateiendungen
Die Dateiendung, auch Dateinamenerweiterung, Dateierweiterung oder einfach "Endung" genannt, besteht aus meistens drei oder vier Buchstaben und wird mit einem Punkt an de...

Dateiendung
Die Dateiendung ist ein Teil des Dateinamen und zeigt das Dateiformat an. Klassisch war die "8.3" Regelung, nach der der Dateiname under MS DOS 8 Zeichen lang sein durfte...