Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
22.02.2002, 10:19
Tomz



ich stehe vor einem kleinem problem...

zuerst mal die ausgangslage, damit ihr euch das besser vorstellen könnt:
----------
| 0 | 1 | 0 |
----------
| 1 | S | 1 |
----------
| 0 | 1 | 0 |
----------

das S in der mitte ist eine Stadtteil. ein stadtteil hat eigenschaften wie einwohner, wohlstand usw... nun will ich aber machen, dass man weitere stadtteile dazukaufen kann.
ich könnte das nun schon mit einem array lösen, aber dann wäre es so undynamisch... das fände ich ziemlich scheisse. darum möchte ich es mit einer verketteten liste machen, aber hie wird es schon eher ein netz.

Quellcode:
struct BR_CityPart
{
struct BR_CityPart* n;//north
struct BR_CityPart* e;//east
struct BR_CityPart* s;//south
struct BR_CityPart* w;//west
struct BR_City* part;
};

diese struktur soll dafür der ausgangspunkt sein.
BR_City ist die struktur, in der die werte wie einwohner(...) gelagert werden.

1. Hier die erste Frage: soll ich den "BR_City* part" als pointer oder als instanzvariable (hoffe das stimmt) nehmen (also ohne das *).

wenn der erste stadtteil erstellt wird, dann wird zuerst der speicher von dem CityPart allokiiert (oder wie man dasw auch immer schreibt). dann werden die pointer auf die anderen parts it 0 gefüllt.
zum schluss werden noch die werte der stadt eingefüllt.

nun wird es aber sehr kompliziert, wenn ein neuer eintrag am rand angehängt wird. zwar nch nicht am anfang, doch ziemlich schnell.

2. Soll ich es so lassen, und jedesmal, wenn man einen Stadteil kauft den speicher neu allokiieren, oder soll ich es so erstellen, wie man auf meiner asciigrafik schön sehen kann.
S ist die erstellte stadt, dieses mal werden die pointer aber nicht mit 0 gefüllt, sondern die felder gleich neben dran werden auch noch mit malloc() belästigt...
und erst dort werden dann die nicht gebrauchten pointer mit 0 initialisiert.

[...]
ich schreibe jetzt mit der edit funktion, weil ich bald n die schule muss. und genaure infos kann ich erst wieder zuhause geben.
[...]

3. könnte jemand, der schon ein wenig erfahrung mit so zeug hat mal ein paar unterlagen, denkansätze oder sogar lösungsansätze für mein problem posten.
4. wie findet ihr die von mir angewandte technik? soll ich es doch auf eine andere art machen? oder kennt ihr sogar eine bessere technik?
5. falls ihr sonst irgendwelche nützlichen tips haben solltet, dann postet sie, bin um jede hilfe froh.

vielleich habt iihr ja was davon, und es wird spielbar...

thnx

-edit-
ich möchte eigentlich nicht, das ihr mir den code liefert, sondern das konzept. implementieren kann ich es selber, aber ich habe ein bisschen mühe mit den einzelnen schritten.

--

...denn das atombrot wird nicht ruhen bis es den letzten erwischt hat...


Dieser Beitrag wurde am 22.02.2002 um 13:09 von Tomz bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
22.02.2002, 14:59
Another1



also, ich würd den teil selber in dem man grade is direkt als variable nich als pointer machen, ansonsten is das mit speicher alloziieren doch nich so schlimm, also geschwindigkeitsprobleme solltest du keine kriegen, es sei denn man kauft 1000 stadteile/frame oder sowas ... =)

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche