kleines Spiel

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • kleines Spiel

    Hallo,
    Ich brauch Hilfe bei einem kleinem Spiel in C
    Am Anfang sind 21 Streichhölzer da und man darf nur 1-4 wegnehmen
    wenn das letzte Streichholz weg ist hat derjenige verloren der das letzte wegenommen hat.
    Mein Problem ist, dass Spieler 1 und 2 sich abwechseln müssen.
    Und am ende ausgegeben wird welcher der spieler verloren hat spieler 1 oder 2.
    das ist das was ich fertig hab:

    Quellcode

    1. #include <stdio.h>
    2. int main () {
    3. float fHolz = 21;
    4. float fZahl = 0;
    5. int ispieler = 0;
    6. int iOK = 0;
    7. printf(" Spiel21\n\n");
    8. while(fHolz > 0){
    9. iOK = 0;
    10. while (iOK == 0) {
    11. printf("Die Anzahl der Streichhoelzer betraegt %f\n", fHolz);
    12. printf("Bitte geben sie eine Zahl von 1 - 4 ein: ");
    13. scanf("%f", &fZahl);
    14. if(fZahl > 4 || fZahl < 1) {
    15. printf("\nFehler\nSie duerfen nur 1-4 Streichhoelzer wegnehmen!\n\n");
    16. }
    17. else{
    18. iOK = 1;
    19. }
    20. }
    21. fHolz -= fZahl ;
    22. }
    23. if(fHolz < 1){
    24. printf("\nSie haben das Spiel verloren\n");
    25. }
    26. return 0;
    27. }
    Alles anzeigen


    Jetzt müssen sich Spieler 1 und 2 nur noch immer abwechseln.
  • Hi, habe gerade leider nicht genug Zeit, um dir bei deinem Problem zu helfen, aber du solltest dir angewöhnen fflush(stdin); nach einem scanf zu schreiben, da sonst der Tastaturbuffer nicht gelöscht wird.

    Gruß

    Gerrit

    [EDIT] Benutze doch einfach eine bool-Variable und rufe den Teil in der Schleife zweimal auf, nur das du einmal "bool spieler1 = false" und einmal "bool spieler1 = true" schreibst und anschließend auf Holz < 1 prüfst[/EDIT]