Program do grania w 21 zapałek ( Pomoc początkującemu)

0

Witam,
Oto zasady gry:

Należy zabrać 1,2 lub 3 zapałki w każdym ruchu. Przegrywa ten, kto będzie musiał zabrać ostatnią zapałkę.<

#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;
int liczba,gracz1,gracz2;

int main()
{

    srand(time(NULL));
    liczba = rand()%100+1;

    cout<<"Wylosowana liczba zapalek do gry to: "<< liczba <<endl;

    while(liczba!=0)
    {
        cout<<"(Gracz1) Podaj liczbe ile chcesz zabrac kamykow: "<<endl;
        cin>>gracz1;

        liczba=liczba-gracz1;
        cout<<"Liczba pozostalych zapalek: "<< liczba <<endl;

        if(liczba=0)
        {
            cout<<"Pierwszy gracz wygral"<<endl;
        }

        cout<<"(Gracz2)Podaj liczbe ile chcesz zabrac kamykow: "<<endl;
        cin>>gracz2;

        liczba=liczba-gracz2;
        cout<<"Liczba pozostalych zapalek: "<< liczba <<endl;


        if(liczba=0)
        {
            cout<<"Drugi gracz wygral"<<endl;
        }

    }

    return 0;
}

To co mi się wyświetla po odpaleniu programu:

Wylosowana liczba zapalek do gry to: 31
(Gracz1) Podaj liczbe ile chcesz zabrac kamykow:
3
Liczba pozostalych zapalek: 28
(Gracz2)Podaj liczbe ile chcesz zabrac kamykow:
2
Liczba pozostalych zapalek: -2

Process returned 0 (0x0)   execution time : 3.380 s
Press any key to continue.

za drugim razem zamias odjąć od 28 liczbe 2 to nie mam pojęci co się dzieje.
Co zmienić w kodzie aby program działał poprawnie?

2

if(liczba=0) to przypisanie a nie porównanie.

2

Masz przypisanie 0 do zmiennej liczba, a chcesz porównywać czy wartość równa się 0.

        if(liczba=0)
        {
           
        }

Tu powinno być:

        if(liczba==0)
        {
            
        }
0

Dzięki :D już działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1