Hej,
robię w C++ program do gry w "kamień, nożyce, papier".
Mój problem polega na tym, że w przypadku remisu uruchamiany jest if (wybor==typ), a następnie else (linia 43).
Oczywiście jest to bez sensu, proszę o pomoc w znalezieniu przyczyny
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <stdio.h>
using namespace std;
int main()
{
int liczba; // 'wylosowana' przez komputer
string typ; //typ komputera uzalezniony od wylosowanej liczby
string wybor,k,n,p;
cout << "Witaj w grze ;-)" << endl;
for(;;)
{
cout << "Wybierz jedna z opcji: kamien (k), nozyce (n), papier (p)"<<endl;
cin>>wybor;
srand(time(NULL)); //losowanie
liczba=rand()%3+1; //zapisywanie do zmiennej 'liczba'
cout<<liczba<<endl;
switch(liczba)
{
case 1: typ="k"; break;
case 2: typ="n"; break;
case 3: typ="p"; break;
}
if (wybor==typ)
{
cout<<"Remis. Jeszcze raz: "<<endl;
}
if (((wybor=="k")&&(typ=="n"))||((wybor=="n")&&(typ=="p"))||((wybor=="p")&&(typ=="k")))
{
cout<<"Wygrales!"<<endl;
cout<<"Tym komputera: "<<typ<<" Twoj typ :"<<wybor<<endl;
}
else
{
cout<<"Przegrales"<<endl;
cout<<"Tym komputera: "<<typ<<" Twoj typ: "<<wybor<<endl;
}
getchar();getchar(); //po wyswietleniu wyniku nalezy wcisnac ENTER
system("cls"); //czysci ekran
}
return 0;
}