środa, 22 lutego 2012

Prosta gra w kamień-nożyce-papier


Zadanie brzmi stwórz prosty program symulujący grę „papier-nożyce-kamień” dla dwóch graczy. Program po pobraniu danych ogłasza zwycięzce a także wyświetla uzasadnienie werdyktu.
Zasady gry to:
„Papier owija kamień”.
„Nożyce tną papier”.
„Kamień niszczy nożyce”
Założenia dodatkowe do programu:
  • program ma pytać użytkownika czy chce powtórzyć grę
  • aplikacja powinna być przemyślana pod kątem szybkości działania tzn jeżeli program znajdzie werdykt to powinien przestać szukać dalszych rozwiązań


#include <iostream>

using namespace std;

void pobierz(char &pierwszyGracz, char &drugiGracz);
void decyduj(char pierwszyGracz, char drugiGracz);

int main(int argc, char **argv) {
char a;
do
{
cout << "Hello, world!" <<endl;
char jeden, dwa;
pobierz(jeden, dwa);
decyduj(jeden, dwa);
cout<<"jeszcze raz??"<<endl;
cin>>a;
}while(a=='t' || a=='T');
return 0;
}

void pobierz(char &pierwszyGracz, char &drugiGracz)
{
cout<<" Pierwszy graczu Kamień, Nożyce czy papier?"<<endl;
cin>>pierwszyGracz;
cout<<" drugi graczu Kamień, Nożyce czy papier?"<<endl;
cin>>drugiGracz;
}
void pobierz(char pierwszyGracz, char drugiGracz)
{
if(pierwszyGracz=='K' && drugiGracz=='N')
{
cout<<"kamień niszczy nożyce wygrywa gracz 1"<<endl;
}
else if(pierwszyGracz=='P' && drugiGracz=='K')
{
cout<<"papier zawija kamień wygrywa gracz 1"<<endl;
}
else if(pierwszyGracz=='N' && drugiGracz=='P')
{
cout<<"Nożyce tną papier wygrywa gracz 1"<<endl;
}
else if(drugiGracz=='K' && pierwszyGracz=='N')
{
cout<<"kamień niszczy nożyce wygrywa gracz 2"<<endl;
}
else if(drugiGracz=='P' && pierwszyGracz=='K')
{
cout<<"papier zawija kamień wygrywa gracz 2"<<endl;
}
else if(drugiGracz=='N' && pierwszyGracz=='P')
{
cout<<"Nożyce tną papier wygrywa gracz 2"<<endl;
}
}