kann man Symbolische Konstanten abschnitsweise definieren?
Verfasst: Di Okt 06, 2009 4:10 pm
Mein problem ist momentan das ich relativ oft Codeschnipsel benutze die sich nur geringfügig ändern.
Konkret sieht das so aus das ich für das Spiel dessen Anfang ich unter http://www.forum.proggen.org/viewtopic.php?f=21&t=865 gepostet habe jetzt Strukturen definiert habe.
besonders wichtig ist diese:
das ganze hab ich jetzt inzwischen für 6 Gebaude gemacht also 6 mal solche schnippsel:
Da war ich schon der meinung das das irgendwie einfacher zu bewerkstelligen sein müsste habe aber nicht allzulange gesucht weil ich einige der Zahlen tatsächlich fest eingeben wollte.
jetzt bin ich allerdings so weit das ausgeben zu lassen. Bisher sieht das was ich dazu geschrieben habe so aus:
Jetzt geht es nur noch darum für case 1 das Alee in der ersten printf anweisung bzw. das ALEE in den Variablen bei der 2. und 3. anweisung durch Gaerten bzw. GAERTEN zu ersetzen.Es wäre offensichtlich eine ziemliche (und ziemlich stumpfe) Arbeit das alles für 6 Variablen Hart zu coden. Das einzige was mir dazu als Lösung einfällt ist etwas in der art wie die define Anweisung (die ich dann auf ein case benutzen würde), die wirkt ja aber leider für den ganzen code und bringt insofern leider nichts außerdem hab ich leider keine ahnung ob man über define auch Variablen so verändern kann.
Wenn jemand einen lösungsansatz hat nur her damit. Das gleiche gilt für verbesserungsvorschläge zu dem bischen code das ich gepostet hab
.
Konkret sieht das so aus das ich für das Spiel dessen Anfang ich unter http://www.forum.proggen.org/viewtopic.php?f=21&t=865 gepostet habe jetzt Strukturen definiert habe.
besonders wichtig ist diese:
Code: Alles auswählen
struct Gebaeude
{
int STUFE;
int GOLDKOSTEN;
int STEINKOSTEN;
int ARBEITSAUFWAND;
int PRESTIGE;
int PUNKTE;
};
Code: Alles auswählen
struct Gebaeude MAUERN =
{
0,//Stufe
0*(MAUERN.STUFE+1),//Goldkosten
50*(MAUERN.STUFE+1),//Steinkosten
25*(MAUERN.STUFE+1),//Arbeitsaufwand
30*(5*(MAUERN.STUFE+1)),//Prestige
MAUERN.PRESTIGE/10//Punkte
};
jetzt bin ich allerdings so weit das ausgeben zu lassen. Bisher sieht das was ich dazu geschrieben habe so aus:
Code: Alles auswählen
printf("\nIhr koennt folgende Gebauede Bauen:");
printf("\nAlee Stufe: %d ausbauen (0)\nGaerten Stufe: %d ausbauen(1)\nMauern Stufe: %d ausbauen (2)\nHaupthaus Stufe: %d ausbauen (3)\nWohnfluegel Stufe %d ausbauen (4)\nPrunkfluegel Stufe %d ausbauen (5)", ALEE.STUFE, GAERTEN.STUFE, MAUERN.STUFE, HAUPTHAUS.STUFE, WOHNFLUEGEL.STUFE, PRUNKFLUEGEL.STUFE);
printf("\nWas wollt ihr bauen? ");
scanf("%d",&bestaetiger);
switch (bestaetiger)
{
case 0: printf("\nIhr wollt die Alee bauen.");
printf("\nDas kostet %d Gold und %d Stein", ALEE.GOLDKOSTEN, ALEE.STEINKOSTEN);
printf("\nEs wuerde %d Prestige einbringen", ALEE.PRESTIGE);
Wenn jemand einen lösungsansatz hat nur her damit. Das gleiche gilt für verbesserungsvorschläge zu dem bischen code das ich gepostet hab
