Mein Würfelprogramm funktioniert nicht richtig...

Tutorials.at
Verfügbare Informationen zu "Mein Würfelprogramm funktioniert nicht richtig..."

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Godmaster - X
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: C / C++
  • Antworten: 7
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: Mein Würfelprogramm funktioniert nicht richtig...
  • Letzte Antwort: vor 17 Jahren, 6 Monaten, 24 Tagen, 9 Stunden, 44 Minuten
  • Alle Beiträge und Antworten zu "Mein Würfelprogramm funktioniert nicht richtig..."

    Re: Mein Würfelprogramm funktioniert nicht richtig...

    Godmaster - 23.09.2006, 17:04

    Mein Würfelprogramm funktioniert nicht richtig...
    AHOI leute
    ich lern gerade C und schreib an einem süßen, kleinen Würfelspiel...
    Die Datei is für ein Würfelspiel ziemlich lang
    Doch es funktioniert irgendwie nicht richtig...
    Könnte mir bitte jemand helfen?

    Hier meine Datei:
    Code:
    /*Würfelspiel*/

    #include <stdio.h>
    #include <conio.h>

    #define RND rand()%6+1

    int main()
    {
       int frage, anzahl, spieler, pc, spieler21, spieler22, pc21, pc22, spieler31, spieler32, spieler33, pc31, pc32, pc33;

       printf ("Willst du würfeln?(ja=1)(nein=0)\n");
       scanf ("%d", &frage);

       if (frage == 1)
          {
          printf ("Mit wie vielen Würfeln?(1-3)");
          scanf ("%d", &anzahl);

          if (anzahl == 1)
        {
        printf ("%d\n", RND, &spieler);
        printf ("Jetzt bin ich dran!\n");
        printf ("%d\n", RND, &pc);

        if (spieler > pc) printf ("Glückwunsch! Du hast gewonnen!\n");
        if (spieler == pc) printf ("HEY! Unentschieden!\n");
        if (spieler < pc) printf ("WUHUU! Ich hab gewonnen\n");
        };
          if (anzahl == 2)
        {
        printf ("%d und %d\n", RND, &spieler21, RND, &spieler22);
        printf ("Jetzt bin ich dran!\n");
        printf ("%d und %d\n", RND, &pc21, RND, &pc22);

        spieler = spieler21 + spieler22;
        pc = pc21 + pc22;

        if (spieler > pc) printf ("Glückwunsch! Du hast gewonnen!\n");
        if (spieler == pc) printf ("HEY! Unentschieden!\n");
        if (spieler < pc) printf ("WUHUU! Ich hab gewonnen!\n");
        };
          if (anzahl == 3)
        {
        printf ("%d und %d und %d\n", RND, &spieler31, RND, &spieler32, RND, &spieler33);
        printf ("Jetzt bin ich dran!\n");
        printf ("%d und %d und %d\n", RND, &pc31, RND, &pc32, RND, &pc33);

        spieler = spieler31 + spieler32 + spieler33;
        pc = pc31 + pc32 + pc33;

        if (spieler > pc) printf ("Glückwunsch! Du hast gewonnen!\n");
        if (spieler == pc) printf ("HEY! Unentschieden!\n");
        if (spieler < pc) printf ("WUHUU! Ich hab gewonnen!\n");
        };
          };
       if (frage == 0) printf ("Dann halt nicht...\nWozu hast du das Programm dann gestartet?!");
       if ( (frage != 1) && (frage != 0) ) printf ("Ich hab gesagt: 1 oder 0!!!!!!!!");

      getch();
      return 0;
    }



    Re: Mein Würfelprogramm funktioniert nicht richtig...

    X - 23.09.2006, 22:03


    Wäre sinnvoll mal dazu zu schreiben was genau dein Problm is!!!!!!!!!!!!



    Re: Mein Würfelprogramm funktioniert nicht richtig...

    Godmaster - 24.09.2006, 08:58


    ja OK
    also:
    wenn man das programm startet entdeckt man mehrere fehler:
    1) Der Computer gewinnt immer, auch wenn die Punktezahl des Spielers größer ist, oder ein Unentschieden kommt
    2) Beim Wert des zweiten Würfels werden oft negative Werte (Wie zum Beispiel: -75) ausgegeben, obwohl ich Ganze Zahlen von 1-6 angegeben habe.



    Re: Mein Würfelprogramm funktioniert nicht richtig...

    X - 24.09.2006, 10:38


    Hi

    mal zum verständnis
    Code:
    printf ("%d\n", RND, &spieler);
        printf ("Jetzt bin ich dran!\n");
        printf ("%d\n", RND, &pc);


    was willst du durch die Angabe &spieler ausgeben? SO wie ich das sehe ist die Variable nov nicht initialisiert und besitzt irgend einen Zufallswert.
    Das gleiche bei &pc

    Da ich mit den alten C-Funktionen (printf...) nich so viel am Hut hab, weiß ich nicht ob du mit der Zeile deinen Makrowert an Spieler zuweisen willst.
    Ich glaub mal nich das des so geht probiers mal mit
    Code: int ergebnisMensch = RND;
    printf ("%d\n", &ergebinsMensch);

    // hier deas gleiche für PC

    if (ergebnisMensch > ergebnisPC) printf ("Glückwunsch! Du hast gewonnen!\n");



    Re: Mein Würfelprogramm funktioniert nicht richtig...

    Godmaster - 24.09.2006, 18:55


    danke du hast mich auf den richtigen weg gebracht :lol:

    aber dein weg hatte auch einen kleinen Fehler:
    Mit den Zeilen:
    Code: int ergebnisMensch = RND;
    printf ("%d\n", &ergebinsMensch);
    hast du ergebnisMensch zwei mal definiert und es spuckt wieder solche komischen zahlen aus...

    Code: int ergebnisMensch = RND;
    printf ("%d\n", ergebinsMensch);
    lautet es dann richtig...

    Aber wie zu vermuten war, taucht jetzt noch ein problem auf, das ich am anfang nicht bedacht habe...
    sind die Variablen für die Punktezahlen einmal bestimmt, sind sie das gesamte Programm immer gleich, egal wie oft man mit der Schleife neu startet...
    Gibts da vll einen Weg, die Variablen bei jedem Neustart neu zu bestimmen?

    Wenn man das Programm beendet und nochmal neu starten, sind dann wieder die selben werte vorhanden...

    PS:
    Danke X für deine Hlfe

    OK hat sich schon erldigt
    Ich hab einfach erst in der do-while-Schleife definiert und nicht schon in der main-funktion

    TROTZDEM DANKE X!!! :D



    Re: Mein Würfelprogramm funktioniert nicht richtig...

    X - 25.09.2006, 17:35


    Hi

    wie gesagt mit der Funktion hatte ich nie viel am Hut.

    Edit:
    Hab grad gemerkt das ich da nen kleinen großen Fehler gemacht hab.
    Mit & definierst du keine Variable, sondern du fragst ihre Adresse ab. Wenn du die natürlich dann an eine AUsgabe übergibst kommen immer die gleichen werte raus, da die Adresse nicht geändert wird.
    Das was du als zweites Codebeispiel hast ist also für ne Ausgabe richtig.

    Das hätte mir auffallen müssen.

    Und jetzt kommen bei dir Zahlen von 1-6 raus?

    Gruß



    Re: Mein Würfelprogramm funktioniert nicht richtig...

    Godmaster - 25.09.2006, 20:12


    ja also so wie ich das jetzt gemacht hab, passt alles:
    1) Die richtigen Zahlen kommen raus
    2) Ihnen werden richtig die Variablen zugeordnet
    3) Die berechnung Stimmt
    4) Die Sieger/Verliererausgabe funktioniert
    5) Die Do-While-Schöeife funktioniert perfekt
    und 6) Bei jeder Wiederholung kommen neue Zahlen raus

    OK
    ich glaub das Thema is erledigt und der Thread kann geCLOSEd werden (nur um für Ordnung zu sorgen :wink: )



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    Eigene Programme - gepostet von vpascal am Mittwoch 04.04.2007
    Variablen tauschen - gepostet von Joe am Samstag 03.11.2007
    Turbo C - gepostet von Mei$ter A^ am Montag 24.04.2006
    Brauche Headerdatei graphics.h - gepostet von mitti am Freitag 18.05.2007
    Mache ich den richtigen Kurs? - gepostet von Cypher am Samstag 03.03.2007
    char / schleife - gepostet von Michael am Samstag 11.11.2006
    QBasic - gepostet von Leimi am Freitag 05.05.2006
    Blender-Problem - gepostet von toby-man am Samstag 06.10.2007



    Ähnliche Beiträge wie "Mein Würfelprogramm funktioniert nicht richtig..."

    Aufpuff richtig schweisen?? - Radis (Montag 18.12.2006)
    Richtig kalt - Nadine (Montag 02.10.2006)
    Alarmanlage *neu* - martinej9 (Freitag 29.08.2008)
    Wie verhalte ich mich richtig? - John Cena (Dienstag 11.10.2005)
    Sitz mein motor richtig - gunrunner (Sonntag 07.01.2007)
    richtig fettes Danke!!!!!!!!!!!!!! - AbendsternMia (Montag 15.01.2007)
    Richtig Bewerben ! - alexander (Montag 04.07.2005)
    Richtig so? - GANGZZZDA (Freitag 11.03.2005)
    richtig witzige Frauenrolle dringend gesucht!! - langnese (Samstag 27.01.2007)
    wie funktioniert eigentlich... - Freundschaft (Sonntag 22.10.2006)