Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++]Papier,kamień i nożyce

Ostatnio zmodyfikowano 2012-12-20 00:36
Autor Wiadomość
Kocimientus
Temat założony przez niniejszego użytkownika
[C++]Papier,kamień i nożyce
» 2012-12-19 22:47:29
Program nie działa tak jak powinien. Wypisuje przegraną lub remis nawet jeśli powinienem wygrać. Od wczoraj szukam błędu i nie mogę znaleźć i liczę że mnie naprowadzicie :P

C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;

void menu()
{
    cout << "[1]Papier" << endl;
    cout << "[2]Kamien" << endl;
    cout << "[3]Nozyce" << endl;
}

void papier()
{
    cout << "Twoj wybor: Papier" << endl;
}

void kamien()
{
    cout << "Twoj wybor: Kamien" << endl;
}

void nozyce()
{
    cout << "Twoj wybor: Nozyce" << endl;
}

void punkty( int p1points, int p2points )
{
    cout << "Twoje punkty: " << p1points << endl;
    cout << "Punkty przeciwnika:" << p2points << endl;
}


int main()
{
    srand( time( NULL ) );
    static int punkty1, punkty2;
    int zz;
    int cc;
    menu();
    do
    {
        cin >> zz;
        cc =( rand() % 3 ) + 1;
        switch( zz )
        {
        case 1:
            papier();
            break;
           
        case 2:
            kamien();
            break;
           
        case 3:
            nozyce();
            break;
        }
       
        switch( cc )
        {
        case 1:
            {
                cout << "Wybor przeciwnika: Papier" << endl;
                cc = 1;
            }
            break;
           
        case 2:
            {
                cout << "Wybor przeciwnika: Kamien" << endl;
                cc = 2;
            }
            break;
           
        case 3:
            {
                cout << "Wybor przeciwnika: Nozyce" << endl;
                cc = 3;
            }
            break;
        }
       
        if( zz == cc )
        {
            cout << "Remis" << endl;
            punkty( punkty1, punkty2 );
            continue;
        }
       
        if(( zz == 2 ) ==( cc == 1 ) ||( zz == 1 ) ==( cc == 3 ) ||( zz == 3 ) ==( cc == 2 ) )
        {
            cout << "Przegrywasz!" << endl;
            punkty2++;
            punkty( punkty1, punkty2 );
            continue;
        }
       
        if(( zz == 2 ) ==( cc == 3 ) ||( zz == 1 ) ==( cc == 2 ) ||( zz == 3 ) ==( cc == 1 ) )
        {
            cout << "Wygrywasz!" << endl;
            punkty1++;
            punkty( punkty1, punkty2 );
            continue;
        }
       
    } while( punkty1 <= 100 || punkty2 <= 100 );
   
   
}
P-71469
DejaVu
» 2012-12-20 00:36:09
Nie używasz operatora iloczynu logicznego, a powinieneś. Poczytaj: » Kurs C++ » Poziom 1Operacje logiczne lekcja
P-71474
« 1 »
  Strona 1 z 1