"Räuber und Goldschatz" als Programm

11/26/2015 22:26 ηøℓι#1
Hey!
Muss das Kindergarten-/Grundschulspiel "Räuber und Goldschatz" als C-Programm schreiben.
Ich bin nun an dem Punkt angekommen, bei welchem ich die while-Schleife (Spielschleife) mit den Funktionen füllen muss, damit das Spiel läuft.
Die Aufgabenstellung (mit Spielerklärung):
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

mein Code momentan:

Muss nun dafür sorgen, dass eine Zahl über die bereits vorhandene Funktion "int dice_min_max(int min, int max)" als Variable (z.B. zahl) gespeichert wird.
Anschließend muss man über den gamer "plus" oder "minus" das Vorzeichen der anschließenden Rechnung (feld +/- zahl) herausfinden.
Dann eben die Rechnung: feld +/- zahl = feldzahl
Anschließend muss ich nachprüfen, ob feldzahl über die Endbedingung Feld = 20 drübergeht oder unter Feld = 1 fällt.
Sollte dies der Fall sein muss die ursprüngliche Feld-Position beibehalten werden. (Wie bei Mensch ärger dich nicht)
Danach wird die Ausgabe wie auf dem Aufgabenblatt zu sehen erscheinen. (printf von "feldzahl" und "zahl")

Hoffe jemand von euch nimmt sich die Zeit und kann mir helfen, da ich langsam verzweifle :D

Grüße,
Noli

Habe das Programm nun zum Laufen gebracht, jedoch musste ich dafür einen neuen int benutzen, was nicht der Sinn der Aufgabe ist.
Meine Frage:
Wie nutze ich die Variable aus der struct um mit dieser die while-Schleife zum Laufen zu bringen?
Meine gesamte while-Schleife sieht so aus:

Code:
//Struktur-Funktion:
struct Spieler                      // globale Struktur um minus und plus als gamer zusammenzufassen
{
    int minus;
    int plus;
};

//Spiel-/while-Schleife
 int gamer = 1
  while(feld > 1 && feld < 20)
    {
        if(gamer)
        {
            gamer= 0;

            zahl = dice_min_max(min, max);

            feld = feld - zahl;
            if(feld < 1 || feld > 20)
                feld += zahl;
            printf("Feld: %i, ", feld);
            printf("Wurf: -%i\n", zahl);
        }
        else
        {
            gamer = 1;

            zahl = dice_min_max(min, max);

            feld = feld + zahl;
            if(feld < 1 || feld > 20)
                feld -= zahl;
            printf("Feld: %i, ", feld);
            printf("Wurf: %i\n", zahl);
        }
    }
Musste jetzt den neuen int gamer = 1 nutzen, damit das Programm läuft.
Wie bekomme ich die Variable aus "struct" (gamer.minus / gamer.plus) dazu, dass ich diese in der if-Funktion benutzen kann?
12/04/2015 19:13 Bonnyfication#2
Ich kann dir irgendwie nicht ganz folgen...

Angenommen Spieler ist richtig als gamer deklariert:

Code:
Spieler gamer;
dann solltest du auch gamer.minus benutzen können

Code:
if(gamer.minus < 0)
{}

Hilf mir mal auf die Sprünge, was genau du da brauchst.