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

Symulator gry w DART

Ostatnio zmodyfikowano 2015-05-22 19:52
Autor Wiadomość
kamilo960
Temat założony przez niniejszego użytkownika
Symulator gry w DART
» 2015-05-21 18:51:15
Witajcie uczę się C++ i pojawił się problem z pewnym zadaniem.
Tutaj treść zadania: http:/​/www.kuzniaprogramistow.pl/node​/15


Oto co udało mi sie do tej pory zrobić:
C/C++
#include <iostream>

using namespace std;

int main()
{
    int punkty = 301;
    int rzut;
    int runda;
    int traf;
    int punkt;
   
   
    while( punkty != 0 )
    {
        for( runda = 1; runda < 200; runda++ )
        {
            for( rzut = 1; rzut <= 3; rzut++ )
            {
                cout << "Runda " << runda << ", rzut " << rzut << ": Podaj ilosc punktow" << endl;
                cin >> traf;
               
                if( rzut == 1 )
                {
                    if(( punkty - traf ) < 0 )
                    {
                        cout << "Runda " << runda << ", BUST!" << endl;
                        cout << "Liczba Twoich punktow: " << punkty << endl;
                        cout << "----------------------------------" << endl << endl;
                       
                    }
                    else
                    {
                        punkty = punkty - traf;
                        punkt = punkty + traf;
                    }
                }
                if( rzut == 2 )
                {
                    if(( punkty - traf ) < 0 )
                    {
                        cout << "Runda " << runda << ", BUST!" << endl;
                        cout << "Liczba Twoich punktow: " << punkt << endl;
                        cout << "----------------------------------" << endl << endl;
                       
                    }
                    else
                    {
                        punkty = punkty - traf;
                       
                    }
                   
                }
                if( rzut == 3 )
                {
                   
                   
                    if(( punkty - traf ) < 0 )
                    {
                        cout << "Runda " << runda << ", BUST!" << endl;
                        cout << "Liczba Twoich punktow: " << punkt << endl;
                        cout << "----------------------------------" << endl << endl;
                       
                    }
                    else
                    {
                        punkty = punkty - traf;
                       
                        cout << "Runda " << runda << ", liczba Twoich punktow: " << punkty << endl;
                        cout << "----------------------------------" << endl << endl;
                       
                    }
                }
            }
        }
    }
   
    return 0;
}

EDIT: Troche jeszcze nad tym posiedziałem i udało mi się,że po przekroczeniu liczby punktów program wypisuje te sprzed rozpoczecia rundy, ale program dalej nie działa tak,jak powinno działać

P-132578
Gibas11
» 2015-05-21 23:07:16
Nie przyjrzałem się jeszcze dokładnie treści zadania, ale ewidentnie musisz coś zrobić z continue w ostatnim ifie bo... Nic nie robi, na pewno wiesz jak działa continue?
Edit: Ok, sprawdziłem polecenie, ale jestem zbyt zmęczony by teraz się w to bawić, jutro po powrocie z zajęć napisze to po swojemu z wyjaśnieniem jak tylko będę miał trochę wolnego czasu.
Ps. Dzięki tobie dowiedziałem się o tajnej stronie z zadaniami i kursami, dzięki! :-)
P-132586
Gibas11
» 2015-05-22 19:52:19
Masz, powinno działać :)


#include <iostream>
using namespace std;

int main()
{
    int runda = 1;
    int x = 301;
    int punkty_za_rzut = 0;
    int bufor = 0;

    for(int i = 1;; i++)
    {
        cout << "Runda " << runda << ", rzut " << i << ": ";
        cin >> punkty_za_rzut;

        if((punkty_za_rzut > 60 or punkty_za_rzut < 0) and punkty_za_rzut != -1)
            cout << "Niepoprawna ilosc punktow\n";

        else if(punkty_za_rzut > x - bufor)
        {
            cout << "Runda " << runda << ", BUST!\nLiczba twoich punktów: " << x << '\n';
            bufor = 0;
            i = 1;
            runda++;
        }

        else
            bufor += punkty_za_rzut;

        if(x == 0 or punkty_za_rzut == -1)
        {
            if(punkty_za_rzut != -1)
                cout << "Gra zakonczona w rundzie " << runda;

            break;
        }

        if(i % 3 == 0)
        {
            x -= bufor;
            bufor = 0;

            cout << "Runda " << runda << ", liczba twoich punktów: " << x << "\n";
            runda++;
            i = 0;
        }
    }

    return 0;
}

Wybacz, że nie poprawiłem twojego kodu, ale jakoś go nie ogarniałem i napisałem to od zera. :D
P-132632
« 1 »
  Strona 1 z 1