c++ variablennamen automatisch verändern

KAY

Mitglied
hiho,

gibt es eine möglichkeit, dass ich den variablennamen einfach ändern kann? ich mein das so:

ich hab z.b. ne schleife:

for(int i=0;i<50;i++)
{
int abc;
}

so, da möchte ich, dass das Programm an das abc immer noch den Wert der Variable i dranhängt, also z.b. abc1,abc2....

Geht das irgendwie?
 
Ich weiss jetzt nicht, ob das für Deinen Zweck auch geht, aber hast Du es schon mal mit einem Array versucht? Zumindest würde ich das erstmal so machen, dann kannst Du die Variable i als Index benutzen.
 
da liegt ja das problem...

1. das darf kein array sein
2. statt "int abc" muss da eigentlich "Feld NeuesFeld" stehen, wobei Feld eine Struktur ist...
 
weil ich nicht weiß wie ich das einzelne feld dann ansprechen könnte.

z.b. NeuesFeld[1][1];

so das feld kriegt noch 5 werte reingehauen.

aber wie kann ich das dann z.b. vom feld NeuesFeld[2][2] unterscheiden??
 
Ich versteh jetzt ehrlich gesagt nicht so ganz Dein Problem. Über den Index (in den eckigen Klammern) kannst Du die einzelnen Array-Elemente doch schon voneinander unterscheiden, das ist ja Sinn des ganzen.
 
also ich erklärs mal:

ich und n kumpel wir bauen n game. das is sowas wie civilization.

und da hat man ja die quadratischen felder. so und jedem quadratische feld ordne ich 3 Dinge zu:

struct Feld
{
int x; //x-position
int y; // y-position
LPDIRECTDRAWSURFACE7 Land; //bitmap der landeinheiten
LPDIRECTDRAWSURFACE7 Untergrund;// für das bitmap des Bodens
LPDIRECTDRAWSURFACE7 Luft; // für das bitmap der lufteinheiten
};

so und nun will ich die felder halt so (in der schleife) "herstellen" lassen...

und nun können die ja keinen array annehmen, da die ja konstante werte brauchen (der compiler belehrte mich)

deshalb wollte ich das so im namen angeben
 
Probiere es doch mal so:
Code:
Feld Spielplan[50];
for(int i=0;i<50;i++) 
{ 
    Spielplan[i].x = 0;
    Spielplan[i].y = 0;
    Spielplan[i].Land = NULL;
    Spielplan[i].Untergrund = NULL;
    Spielplan[i].Luft = NULL;
}

Natürlich musst Du die Werte mit sinnvollen Werten füllen. Vielleicht bringt Dich das ja etwas weiter.
 
Original geschrieben von KAY
also ich erklärs mal:

ich und n kumpel wir bauen n game. das is sowas wie civilization.

und da hat man ja die quadratischen felder. so und jedem quadratische feld ordne ich 3 Dinge zu:

struct Feld
{
int x; //x-position
int y; // y-position
LPDIRECTDRAWSURFACE7 Land; //bitmap der landeinheiten
LPDIRECTDRAWSURFACE7 Untergrund;// für das bitmap des Bodens
LPDIRECTDRAWSURFACE7 Luft; // für das bitmap der lufteinheiten
};

so und nun will ich die felder halt so (in der schleife) "herstellen" lassen...

und nun können die ja keinen array annehmen, da die ja konstante werte brauchen (der compiler belehrte mich)

deshalb wollte ich das so im namen angeben

Wenn du ein Dynamisches Array brauchst dann nimm den vector< > aus der STL

(C++ kenntnisse wieder ausgrab)
#include <vector.h>

vector<FELD> *myVec = new vector<FELD>();
myVec->add(myFeld);

// oder nicht add ;) müsste ich selbest nachchlagen. (Java ist eh besser :))
 
also als erstes wür dich mal deine struct überdenken
Code:
struct Feld
{
  int x;
  int y;
  unsigned char land;
  unsigned char untergrund;
  unsigned char luft;
}

denn wenn du es so machst wie bisher wird nach einem bildschrim schon dein gesamter grafik und hauptspeicher voll mit grafiken sein. und das wollen wir doch nicht oder?

wenn es sich um ne map handelt dann würd ich immer noch die alten malloc(), realloc(), und free() funktionen benutzen. damit kannst du das ganz dann auch von ner gespeicherten datei wieder sauberst einlesen.

also ich hoffe ich konnte helfen

mfg

leukos
 

Neue Beiträge

Zurück