kann man Symbolische Konstanten abschnitsweise definieren?

Schnelle objektorientierte, kompilierende Programmiersprache.
nervensaege
Beiträge: 31
Registriert: Sa Sep 12, 2009 9:31 pm

kann man Symbolische Konstanten abschnitsweise definieren?

Beitrag von nervensaege » 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:

Code: Alles auswählen

struct Gebaeude
{
    int STUFE;
    int GOLDKOSTEN;
    int STEINKOSTEN;
    int ARBEITSAUFWAND;
    int PRESTIGE;
    int PUNKTE;
};
das ganze hab ich jetzt inzwischen für 6 Gebaude gemacht also 6 mal solche schnippsel:

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
};    
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:

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);
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 ;) .

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: kann man Symbolische Konstanten abschnitsweise definieren?

Beitrag von Xin » Di Okt 06, 2009 4:26 pm

nervensaege hat geschrieben:das ganze hab ich jetzt inzwischen für 6 Gebaude gemacht also 6 mal solche schnippsel:

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
};    
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.
Ich frage erstmal ganz vorsichtig nach, was Du da eigentlich programmieren möchtest. Ich habe da einen Verdacht...
nervensaege hat geschrieben: 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.
Hier habe ich nichtmals einen Verdacht, was Du vorhast. ^^
Bitte nochmal erklären, was Du tun möchtest.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nervensaege
Beiträge: 31
Registriert: Sa Sep 12, 2009 9:31 pm

Re: kann man Symbolische Konstanten abschnitsweise definieren?

Beitrag von nervensaege » Di Okt 06, 2009 5:00 pm

also das hier :

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
};
sind werte die zu dem gebäude Mauer gehören. Dieses Gebäude hat mehrere ausbaustufen (hier darsgestellt durch die 0 weil das gebäude anfangs auf Stufe 0 sein soll). Bestimmte Kosten (also Goldkosten usw.) sollen sich mit der stufe ändern so das es teurer ist das gebäude auf stufe 2 auszubauen als auf Stufe 1.

So nun zu dem hier :
nervensaege hat geschrieben:
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.
Hier habe ich nichtmals einen Verdacht, was Du vorhast. ^^
Bitte nochmal erklären, was Du tun möchtest.
In diesem spiel kommt man immer wieder in eine "menüansicht" zurück (die ich mit switch case erstellt habe).
Von da aus kann man in ein "Baumenü"(wieder über switch case). wenn man da nun ein gebäude auswählt zum beispiel die Mauer werden einem die Goldkosten, die steinkosten und das Prestige das man durch den Bau erhält angezeigt (die Bauzeit auch aber das soll von eingesetzten arbeitern abhängen und das hab ich noch nicht fertig geschrieben).
Momentan würde ich das noch so machen für jedes case einen neuen printf befehl zu schreiben.
Dabei bleiben große teile des befehls gleich das einzige was sich wircklich ändert ist das aus der variable MAUER.GOLDKOSTEN GAERTEN.GOLDKOSTEN wird das passiert mit mehreren variablen das sich MAUER zu GAERTEN ändert und im kommenden code wird sowas noch öfter vorkommen.
nun hab ich nach irgendwas gesucht das MAUER durch GAERTEN ersetzt.
Dabei ist mir define in den sinn gekommen mit dem man dinge im quellcode ersetzen kann. Das problem ist a) ich habe keine ahnung ob man Variablen durch define durch eine andere variable ersetzen kann ( gut das müsste man nur ausprobieren dann gehts oder es geht nicht ) und b) es gilt für das gesamte programm ich hab aber nun in jedem Case ein anderes gebäude.
Ich brauche also irgendetwas das in einem bestimmten bereich von mehreren zeilen eine Variable durch eine andere ersetzt.
Noch besser wäre es wenn es nur das MAUER in allen variablen durch irgendetwas anderes ersetzt.
das ist aber wohl schon etwas zuviel verlangt :D .

Bei Bedarf/Wunsch kann ich uach den ganzen bisherigen Code posten aber ich weiß nicht ob das unbedingt aufschlussreicher ist^^

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: kann man Symbolische Konstanten abschnitsweise definieren?

Beitrag von cloidnerux » Di Okt 06, 2009 5:04 pm

Also, mit PRÄprozessorbefehlen wirst du nicht weit kommen, denn die werden BEVOR der Compilierung aufgerufen.
Dann verstehe ich deinen Code nicht, was daran liegen könnte, das du Variablen- oder Structnamen einfach groß schreibst, was man konstanten vorbehalten sollte.
Und wozu das wechseln?
Es wäre d.H schon mal sinnvoll mehr code zu Posten und evt. mal besser Erklären was das ganze denn auf sich hatt.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: kann man Symbolische Konstanten abschnitsweise definieren?

Beitrag von Xin » Di Okt 06, 2009 5:21 pm

nervensaege hat geschrieben:also das hier :

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
};
sind werte die zu dem gebäude Mauer gehören. Dieses Gebäude hat mehrere ausbaustufen (hier darsgestellt durch die 0 weil das gebäude anfangs auf Stufe 0 sein soll). Bestimmte Kosten (also Goldkosten usw.) sollen sich mit der stufe ändern so das es teurer ist das gebäude auf stufe 2 auszubauen als auf Stufe 1.
Dann habe ich Dich richtig verstanden, aber das was Du da machst funktioniert so leider nicht. Eine Struktur enthält Datensätze. Also Daten. Zahlen. Buchstaben.

Was Du dort aber angibst, sind Rechenformen, wie man z.B. die Kosten für ein Gebäude berechnet. Deine Daten sind abhängig Größen. Steinkosten ist abhängig von Ausbaustufe. Um derartiges zu berechnen brauchst Du - analog zur Mathematik - Funktionen.
Du musst Dir also eine Funktion schreiben ähnlich wie diese:

Code: Alles auswählen

int KostenStein( int ausbauStufe )
{
  return 50 * (ausbauStufe+1);
}
Wenn die Daten aufwändig zu berechnen sind, kannst Du Datenvorberechnen und dann die vorberechneten Ergebnisse in vielen Datenstrukturen speichern.
Aber eine Datenstruktur kann Dir nichts ausrechnen.
nervensaege hat geschrieben:So nun zu dem hier :
...
Momentan würde ich das noch so machen für jedes case einen neuen printf befehl zu schreiben.
Dabei bleiben große teile des befehls gleich das einzige was sich wircklich ändert ist das aus der variable MAUER.GOLDKOSTEN GAERTEN.GOLDKOSTEN wird das passiert mit mehreren variablen das sich MAUER zu GAERTEN ändert und im kommenden code wird sowas noch öfter vorkommen.
Auch hier gilt, redundante (sich wiederholende) Teile in eine eigene Funktion auslagern und die sich ändernden Teile als Parameter übergeben, also in Deniem Fall MAUER.GOLDKOSTEN oder GAERTEN.GOLDKOSTEN - oder eben direkt MAUER oder GAERTEN, da der Zugriff auf .GOLDKOSTEN offensichtlich auch redundant ist.
nervensaege hat geschrieben: nun hab ich nach irgendwas gesucht das MAUER durch GAERTEN ersetzt.
Dabei ist mir define in den sinn gekommen mit dem man dinge im quellcode ersetzen kann. ...

Noch besser wäre es wenn es nur das MAUER in allen variablen durch irgendetwas anderes ersetzt.
das ist aber wohl schon etwas zuviel verlangt :D .
Um Gottes Willen... versuch sowas bloß nicht mit #defines. Dein Vorhaben ist nicht zuviel verlangt, sondern ganz üblich und der einzige Weg zu sinnvoller Programmierung.

Bitte schau Dir an, wie Du Funktionen schreibst.

Entsprechend würde das in Deinem Programm etwa so werden:

Code: Alles auswählen

void Kostenausgabe( struct Gebaeude gebaeude )
{
  printf( "Dieses Gebäude kostet %d Steine.\n", gebaeude.STEINKOSTEN );
}

...
case 1:
  Kostenausgabe( GAERTEN );
  break;

case 2:
  Kostenausgabe( MAUERN );
  break;
...

Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nervensaege
Beiträge: 31
Registriert: Sa Sep 12, 2009 9:31 pm

Re: kann man Symbolische Konstanten abschnitsweise definieren?

Beitrag von nervensaege » Di Okt 06, 2009 5:45 pm

Die antwort von xin hatte ich noch nicht gesehn als ich das hier getippt hab
danke dafür auf jeden fall

Dazu noch als ich die rechenoperationen in struct reingeschrieben habe habe ich das auch erstmal getestet und habe die richtigen Werte geliefert bekommen. gehört das so oder ist da was verkehrt :?:

Ok schonmal danke für den Hinweis mit dem Großschreiben.
Das mit dem Präprozessor war mir relativ klar es ging nur darum deutlich zu machen was ich für einen befehl brauche(auch wenn das nicht wircklich funktioniert hat^^) und mir fiel nichts besseres als vergleich ein als define.
Großgeschrieben habe das ich einfach nur um alles was ich mit struct gemacht habe etwas hervorzuheben.

Hier der ganze code den ich bisher geschrieben habe:

Code: Alles auswählen

#include <stdio.h>

struct Ressi
{
    int MOMENTAN;
};

struct Gebaeude
{
    int STUFE;
    int GOLDKOSTEN;
    int STEINKOSTEN;
    int ARBEITSAUFWAND;
    int PRESTIGE;
    int PUNKTE;
};

int main()
{
    int  i, rundenzahl, bestaetiger, punkte;
    char spielername[15];


    struct Ressi GOLD;
    struct Ressi STEIN;
    struct Ressi ARBEITER;
    struct Ressi PRESTIGE;

    GOLD.MOMENTAN = 500;
    STEIN.MOMENTAN = 1000;
    ARBEITER.MOMENTAN = 10;
    PRESTIGE.MOMENTAN = 100;

                    /* es gibt6 gebäudearten:
                    (0:Alee),(1:Gärten),(2:Mauern),
                    (3:Haupthaus),(4:Wohnflügel),
                    (5:Prunkflügel) */

    struct Gebaeude ALEE =
{
    0,//Stufe
    10*(ALEE.STUFE+1),//Goldkosten
    10*(ALEE.STUFE+1),//Steinkosten
    20*(ALEE.STUFE+1),//Arbeitsaufwand
    10*(5*(ALEE.STUFE+1)),//Prestige
    ALEE.PRESTIGE/10//Punkte
};

    struct Gebaeude GAERTEN =
{
    0,//Stufe
    50*(GAERTEN.STUFE+1)+200,//Goldkosten
    5*(GAERTEN.STUFE+1),//Steinkosten
    10*(GAERTEN.STUFE+1),//Arbeitsaufwand
    8*(5*(GAERTEN.STUFE+1)),//Prestige
    GAERTEN.PRESTIGE/10//Punkte
};

    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
};

    struct Gebaeude HAUPTHAUS =
{
    0,//Stufe
    1000*(HAUPTHAUS.STUFE+1),//Goldkosten
    1000*(HAUPTHAUS.STUFE+1),//Steinkosten
    100*(HAUPTHAUS.STUFE+1),//Arbeitsaufwand
    425*(5*(HAUPTHAUS.STUFE+1))-125,//Prestige
    HAUPTHAUS.PRESTIGE/10//Punkte
};

    struct Gebaeude WOHNFLUEGEL =
{
    0,//Stufe
    500*(WOHNFLUEGEL.STUFE+1),//Goldkosten
    2000*(WOHNFLUEGEL.STUFE+1),//Steinkosten
    80*(WOHNFLUEGEL.STUFE+1),//Arbeitsaufwand
    300*(5*(WOHNFLUEGEL.STUFE+1)),//Prestige
    WOHNFLUEGEL.PRESTIGE/10//Punkte
};

    struct Gebaeude PRUNKFLUEGEL =
{
    0,//Stufe
    2500*(PRUNKFLUEGEL.STUFE+1),//Goldkosten
    500*(PRUNKFLUEGEL.STUFE+1),//Steinkosten
    75*(PRUNKFLUEGEL.STUFE+1),//Arbeitsaufwand
    325*(5*(PRUNKFLUEGEL.STUFE+1)),//Prestige
    PRUNKFLUEGEL.PRESTIGE/10//Punkte
};


 printf("In diesem Spiel ist man ein Architekt\nder mit einem anderen um den Bau eines Palastes konkuriert.\nEine ausfuehrliche Beschreibung folgt spaeter.\n");

        for (i=0;i==0;i++)
        {

        printf("\nWie ist Euer Name? ");
        scanf("%s",&spielername);
        printf("\nIst Euer Name : %s?",spielername);

        printf("\nDruecke 0 fuer Nein und 1 fuer Ja\n");
        scanf("%d",&bestaetiger);
            switch (bestaetiger)
            {
                case 0: --i;

                case 1: break;
            }
        }


    printf("\nWieveile Runden wollt ihr spielen?: ");
    scanf("%d",&rundenzahl);
    printf("\nIhr spielt %d Runden",rundenzahl);

            for (i=0;i<rundenzahl;i++)
        {
        printf("\n\nWas wollt ihr tun?");
        printf("\n0: Rohstoffe verwalten\n1: Palast ausbauen\n2: Steinbrueche ausbauen/verwalten\n3: Arbeiter einstellen\n4: Prestiege in Gold umwandeln\n");
        scanf("%d",&bestaetiger);
        switch (bestaetiger)
        {
           case 0: printf("\nGold: %d\nSteine: %d\nArbeiter: %d\nPrestige: %d\n", GOLD.MOMENTAN, STEIN.MOMENTAN, ARBEITER.MOMENTAN, PRESTIGE.MOMENTAN);
                    --i;
                    break;


           case 1: 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 [color=#FF0000]Alee[/color] bauen.");
                            printf("\nDas kostet %d Gold und %d Stein", [color=#FF0000]ALEE[/color].GOLDKOSTEN,[color=#FF0000]ALEE[/color].STEINKOSTEN);
                            printf("\nEs wuerde %d Prestige einbringen", [color=#FF0000]ALEE[/color].PRESTIGE);
                            printf("\nbestaetigen ? 0 fuer nein 1 fuer ja");

                            scanf("%d",&bestaetiger);
                            switch (bestaetiger)
                            {
                            case 0: --i;
                            break;

                            case 1: break;

                            }
                        }
                    break;


           default: printf("\nUngueltige Eingabe!");
                    --i;
                    break;

        }

        }

    printf("Das spiel ist zu ende Eure Punktzahl ist: %f",punkte);



 return 0;


}

SO jetzt nochmal. Die unterste switch anweisung wird noch um mehrere cases erweitert, und zwar bis case 5
dabei bleibt der inhalt jedes cases gleich bis auf die dinge die ich versucht habe rot einzufärben(geht leider nicht weil sie im code sind aber ich hoffe das es trozdem deutlich genug ist).
Ginge es nur darum das noch 4 mal etwas abgewandelt zu kopieren würde ich hier nicht so einen tertz machen und das einfach kopieren und ersetzen. Jedes case wird aber noch wohl um ein par sachen erweitert werden in denen es wieder nur um minimale änderungen geben wird (ähnlichen dennen die ich beschrieben hab(aus MAUER eird GAERTEN)).
Außerdem würde ich auch gerne aus prinzip wissen ob man einen Teil des namens einer Variable, in einem bestimten bereich ersetzen kann, ich kann mir vorstellen das mir das noch öfter nützen könnte ;) wenn sowas denn geht .

Vielleicht wird es so deutlicher
Ich brauche einen befehl der folgendes macht:

Ersetzte MAUER durch GAERTEN
{
MAUER.KOSTEN = 1;
MAUER.HÖHE = 1;
}
und rauskommen soll:
GAERTEN.KOSTEN = 1;
GAERTEN.HÖHE = 1;

das beispiel ist jetzt vllt nicht ganz so super aber ich hoffe es macht das ganze etwas verständlicher
Jeder andere Lösungsvorschlag der eleganter ist ist mir auch sehr willkomen.

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: kann man Symbolische Konstanten abschnitsweise definieren?

Beitrag von Dirty Oerti » Di Okt 06, 2009 6:10 pm

Wie XIN schon sagte: Funktionen.

Du schreibst eine Funktion Kostenausgeben und der übergibst du einen Parameter, der die Kosten in sich gespeichert trägt.

Zu dem struct: Du hast die richtigen Werte bekommen? Hast du denn auch mal eine Stufe erhöht und mal verglichen, ob dann immernoch die richtigen Wert rauskommen?
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

nervensaege
Beiträge: 31
Registriert: Sa Sep 12, 2009 9:31 pm

Re: kann man Symbolische Konstanten abschnitsweise definieren?

Beitrag von nervensaege » Di Okt 06, 2009 6:19 pm

gut das mit den funktionen ist dann als nächstes dran^^.
Ich habs jetzt grade eine stufe höher probiert bei denn structs funktioniert tadellos.
insofern irgendwie etwas merwürdig... :?

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: kann man Symbolische Konstanten abschnitsweise definieren?

Beitrag von Xin » Di Okt 06, 2009 6:22 pm

nervensaege hat geschrieben:gut das mit den funktionen ist dann als nächstes dran^^.
Ich habs jetzt grade eine stufe höher probiert bei denn structs funktioniert tadellos.
insofern irgendwie etwas merwürdig... :?
Du bekommst die Werte für Stufe 0 zurück, nicht für Stufe 1.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nervensaege
Beiträge: 31
Registriert: Sa Sep 12, 2009 9:31 pm

Re: kann man Symbolische Konstanten abschnitsweise definieren?

Beitrag von nervensaege » Di Okt 06, 2009 6:36 pm

merkwürdigerweise doch ich hab das hier:

Code: Alles auswählen

    struct Gebaeude ALEE =
{
    1,//Stufe
    10*(ALEE.STUFE+1),//Goldkosten
    10*(ALEE.STUFE+1),//Steinkosten
    20*(ALEE.STUFE+1),//Arbeitsaufwand
    10*(5*(ALEE.STUFE+1)),//Prestige
    ALEE.PRESTIGE/10//Punkte
};
    printf("\n\n%d",ALEE.GOLDKOSTEN);
    printf("\n%d",ALEE.PRESTIGE);
eingegeben und bekam 20 und 100 raus und die beiden werte stimmen

Antworten