C++ CodeBlocks Napisz program, który pozwala użytkownikowi zagrać z komputerem w grę kamień, papier, nożyce.
Program powinien działać następująco:
1. Kiedy program zostaje uruchomiony, generowana jest liczba losowa od 1 do 3. Jeśli tą liczbą
jest 1, to oznacza, że komputer wybrał kamień. Jeśli tą liczbą jest 2, to komputer wybrał
papier. Jeśli tą liczbą jest 3,to komputer wybrał nożyce (nie wyświetlaj jeszcze wyboru
komputera).
2. Użytkownik wprowadza swój wybór: „kamień”, „papier” albo „nożyce” na klawiaturze.
(Można użyć menu).
3. Wyświetlany jest wybór komputera.
4. Zwycięzca jest wybierany na podstawie następujących zasad:
 Jeśli jeden gracz wybierze kamień, a drugi nożyce, to wygrywa kamień (kamień tępi
nożyce).
 Jeśli jeden gracz wybierze nożyce, a drugi papier, to wygrywają nożyce (nożyce
przecinają papier).
 Jeśli jeden gracz wybierze papier, a drugi kamień, to wygrywa papier (papier owija
kamień).
 Jeśli obaj gracze wybiorą ten sam ruch, to rozgrywka musi zostać powtórzona, aby
wyłonić zwycięzcę.


Odpowiedź :

Odpowiedź:

#include<iostream>

#include<time.h>

using namespace std;

class zawodnik

{

public:

int wybor;

virtual void wybierz() = 0;

};

class gracz:public zawodnik

{

public:

void wybierz()

{

for(;;)

{

cout<<"[1] Kamien"<<endl;

cout<<"[2] Papier"<<endl;

cout<<"[3] Nozyce"<<endl;

int wybor;

cin>>wybor;

if(wybor > 0 && wybor < 4)

return;

else

cout<<"Nie ma takiego wyboru"<<endl;

}

}

};

class cpu:public zawodnik

{

public:

void wybierz()

{

srand(time(NULL));

wybor = rand()%3+1;

}

};

int rozstrzygnij(gracz g, cpu c)

{

if(g.wybor == c.wybor)

return 0;

if(g.wybor == 1 && c.wybor == 3)

return 1;

if(g.wybor == 1 && c.wybor == 2)

return 2;

if(g.wybor == 2 && c.wybor == 1)

return 1;

if(g.wybor == 2 && c.wybor == 3)

return 2;

if(g.wybor == 3 && c.wybor == 1)

return 2;

if(g.wybor == 3 && c.wybor == 2)

return 1;

}

int main()

{

gracz g;

cpu c;

int wynik;

for(;;)

{

g.wybierz();

c.wybierz();

wynik=rozstrzygnij(g,c);

if(wynik == 0)

{

cout<<"Brak zwyciezcy"<<endl;

}

else if(wynik == 1)

{

cout<<"Wygrales"<<endl;

return 0;

}

else

{

cout<<"Przegrales"<<endl;

return 0;

}

}

}

Wyjaśnienie:

2 klasy dla gracza oraz komputera dziedziczace po klasie bazowej int wybor oraz void wybierz.

Rozstrzygnij porownuje wyniki 0 = remis 1 = wygrana 2 = porażka.