#include <iostream>
#include <functional>
#include <map>
#include <string>
#include <vector>
#include <iomanip>
using namespace std;
string liczba_na_pkn( int w) ;
int main( )
{
int kmp_wynik{ } ;
int grc_wynik{ } ;
string guess{ } ;
const int k = 1 ;
const int p = 2 ;
const int n = 3 ;
int magiczna_liczba{ } ;
vector< int > game{ k, k, p, p, n, p, n, k, k, p, k, p, p, n, p, k, n, k, n, k, p, k, p, n } ;
cout << "Type a random positive number " << endl;
cin >> magiczna_liczba;
cout << endl;
cout << "PKM" << endl << endl;
cout << "> " ;
while ( cin >> guess)
{
switch ( [ ] ( string w) - > int { if ( w == "k" ) return 1 ; if ( w == "p" ) return 2 ; if ( w == "n" ) return 3 ; return 4 ; } ( guess) )
{
case 1 :
cout << guess << " przeciwko " << liczba_na_pkn( game[ magiczna_liczba% game.size ( ) ] ) << endl;
if ( game[ magiczna_liczba% game.size ( ) ] == n) {
cout << "wygrywasz" << endl;
}
else if ( game[ magiczna_liczba% game.size ( ) ] == p) {
cout << "komputer wygrywa" << endl;
}
else
cout << "remis" << endl;
++ magiczna_liczba;
break ;
case 2 :
cout << guess << " przeciwko " << liczba_na_pkn( game[ magiczna_liczba% game.size ( ) ] ) << endl;
if ( game[ magiczna_liczba% game.size ( ) ] == k) {
cout << "wygrywasz" << endl;
}
else if ( game[ magiczna_liczba% game.size ( ) ] == n) {
cout << "komputer wygrywa" << endl;
}
else
cout << "remis" << endl;
++ magiczna_liczba;
break ;
case 3 :
cout << guess << " przeciwko " << liczba_na_pkn( game[ magiczna_liczba% game.size ( ) ] ) << endl;
if ( game[ magiczna_liczba% game.size ( ) ] == p) {
cout << "wygrywasz" << endl;
}
else if ( game[ magiczna_liczba% game.size ( ) ] == k) {
cout << "komputer wygrywa" << endl;
}
else
cout << "remis" << endl;
++ magiczna_liczba;
break ;
default :
cout << "Dozwolone typy: k, p, n" << endl;
}
cout << endl;
cout << "> " ;
}
}
string liczba_na_pkn( int w)
{
switch ( w)
{
case 1 : return "k" ;
case 2 : return "p" ;
case 3 : return "n" ;
}
return "błąd" ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvbWFuaXA+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJpbmcgbGljemJhX25hX3BrbihpbnQgdyk7CgppbnQgbWFpbigpCnsKCWludCBrbXBfd3luaWt7fTsKCWludCBncmNfd3luaWt7fTsKCXN0cmluZyBndWVzc3t9OwoJY29uc3QgaW50IGsgPSAxOwoJY29uc3QgaW50IHAgPSAyOwoJY29uc3QgaW50IG4gPSAzOwoJaW50IG1hZ2ljem5hX2xpY3piYXt9OwoJdmVjdG9yPGludD4gZ2FtZXsgaywgaywgcCwgcCwgbiwgcCwgbiwgaywgaywgcCwgaywgcCwgcCwgbiwgcCwgaywgbiwgaywgbiwgaywgcCwgaywgcCwgbiB9OwoJY291dCA8PCAiVHlwZSBhIHJhbmRvbSBwb3NpdGl2ZSBudW1iZXIgIiA8PCBlbmRsOwoJY2luID4+IG1hZ2ljem5hX2xpY3piYTsKCWNvdXQgPDwgZW5kbDsKCWNvdXQgPDwgIlBLTSIgPDwgZW5kbCA8PCBlbmRsOwoJY291dCA8PCAiPiAiOwoJd2hpbGUgKGNpbiA+PiBndWVzcykKCXsKCQlzd2l0Y2ggKFtdKHN0cmluZyB3KS0+aW50e2lmICh3ID09ICJrIilyZXR1cm4gMTsgaWYgKHcgPT0gInAiKXJldHVybiAyOyBpZiAodyA9PSAibiIpcmV0dXJuIDM7IHJldHVybiA0OyB9KGd1ZXNzKSkKCQl7CgkJY2FzZSAxOgoJCQljb3V0IDw8IGd1ZXNzIDw8ICIgcHJ6ZWNpd2tvICIgPDwgbGljemJhX25hX3BrbihnYW1lW21hZ2ljem5hX2xpY3piYSVnYW1lLnNpemUoKV0pIDw8IGVuZGw7CgkJCWlmIChnYW1lW21hZ2ljem5hX2xpY3piYSVnYW1lLnNpemUoKV0gPT0gbil7CgkJCQljb3V0IDw8ICJ3eWdyeXdhc3oiIDw8IGVuZGw7CgkJCX0KCQkJZWxzZSBpZiAoZ2FtZVttYWdpY3puYV9saWN6YmElZ2FtZS5zaXplKCldID09IHApewoJCQkJY291dCA8PCAia29tcHV0ZXIgd3lncnl3YSIgPDwgZW5kbDsKCQkJfQoJCQllbHNlCgkJCQljb3V0IDw8ICJyZW1pcyIgPDwgZW5kbDsKCQkJKyttYWdpY3puYV9saWN6YmE7CgkJCWJyZWFrOwoJCWNhc2UgMjoKCQkJY291dCA8PCBndWVzcyA8PCAiIHByemVjaXdrbyAiIDw8IGxpY3piYV9uYV9wa24oZ2FtZVttYWdpY3puYV9saWN6YmElZ2FtZS5zaXplKCldKSA8PCBlbmRsOwoJCQlpZiAoZ2FtZVttYWdpY3puYV9saWN6YmElZ2FtZS5zaXplKCldID09IGspewoJCQkJY291dCA8PCAid3lncnl3YXN6IiA8PCBlbmRsOwoJCQl9CgkJCWVsc2UgaWYgKGdhbWVbbWFnaWN6bmFfbGljemJhJWdhbWUuc2l6ZSgpXSA9PSBuKXsKCQkJCWNvdXQgPDwgImtvbXB1dGVyIHd5Z3J5d2EiIDw8IGVuZGw7CgkJCX0KCQkJZWxzZQoJCQkJY291dCA8PCAicmVtaXMiIDw8IGVuZGw7CgkJCSsrbWFnaWN6bmFfbGljemJhOwoJCQlicmVhazsKCQljYXNlIDM6CgkJCWNvdXQgPDwgZ3Vlc3MgPDwgIiBwcnplY2l3a28gIiA8PCBsaWN6YmFfbmFfcGtuKGdhbWVbbWFnaWN6bmFfbGljemJhJWdhbWUuc2l6ZSgpXSkgPDwgZW5kbDsKCQkJaWYgKGdhbWVbbWFnaWN6bmFfbGljemJhJWdhbWUuc2l6ZSgpXSA9PSBwKXsKCQkJCWNvdXQgPDwgInd5Z3J5d2FzeiIgPDwgZW5kbDsKCQkJfQoJCQllbHNlIGlmIChnYW1lW21hZ2ljem5hX2xpY3piYSVnYW1lLnNpemUoKV0gPT0gayl7CgkJCQljb3V0IDw8ICJrb21wdXRlciB3eWdyeXdhIiA8PCBlbmRsOwoJCQl9CgkJCWVsc2UKCQkJCWNvdXQgPDwgInJlbWlzIiA8PCBlbmRsOwoJCQkrK21hZ2ljem5hX2xpY3piYTsKCQkJYnJlYWs7CgkJZGVmYXVsdDoKCQkJY291dCA8PCAiRG96d29sb25lIHR5cHk6IGssIHAsIG4iIDw8IGVuZGw7CgkJfQoJCWNvdXQgPDwgZW5kbDsKCQljb3V0IDw8ICI+ICI7Cgl9Cn0KCnN0cmluZyBsaWN6YmFfbmFfcGtuKGludCB3KQp7Cglzd2l0Y2ggKHcpCgl7CgljYXNlIDE6IHJldHVybiAiayI7CgljYXNlIDI6IHJldHVybiAicCI7CgljYXNlIDM6IHJldHVybiAibiI7Cgl9CglyZXR1cm4gImLFgsSFZCI7Cn0=