Symulator gry w DART
Ostatnio zmodyfikowano 2015-05-22 19:52
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/15Oto co udało mi sie do tej pory zrobić: #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ć |
|
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! :-) |
|
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 |
|
« 1 » |