Rozdział 16 Zadanie domowe
Ostatnio zmodyfikowano 2023-01-11 23:35
Ariel Temat założony przez niniejszego użytkownika |
Rozdział 16 Zadanie domowe » 2023-01-11 12:57:45 Cześć chciłem sie upewnić czy dobrze wykonałem zadanie, oraz dopytac co mogłbym poprawic (2tydzien nauki c++) Twoim zadaniem domowym jest napisanie prostej gry, która ma działać następująco: 1. Program losuje liczbę z przedziału od 1 do 1000. 2. Użytkownik zgaduje liczbę, która została wylosowana. 3. Jeżeli podana liczba jest za duża (za mała) gra wypisuje stosowny komunikat i powraca do kroku 2. 4. Jeżeli gracz trafi liczbę wylosowaną to progam kończy działanie, wypisując na ekran wylosowaną liczbę oraz liczbę 'strzałów', które oddał gracz. Gra ma być zabezpieczona przed możliwością wprowadzenia błędnych wartości liczbowych. #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int a, strzal; int main() { srand( time( NULL ) ); int liczba =(( rand() % 1000 ) + 1 ); cout << "Podaj liczbe" << endl; for( int i = 1; i = strzal; ); do { cin >> a; if( a < liczba ) { cout << "podales za mala" << endl; } if( a > liczba ) { cout << "podales za duza" << endl; } cout << "Proba nr: " << strzal + 2 << endl; strzal++; } while( a != liczba ); cout << "Trafiony Sztosik" << endl; cout << "Wylosowana liczba to:" << liczba; return 0; }
|
|
pekfos |
» 2023-01-11 18:36:31 To nie jest wykonane zgodnie z opisem. Miało być zabezpieczone przed błędnymi danymi i wypisać liczbę strzałów dopiero po trafieniu. Zmienne powinny być utworzone blisko miejsca użycia, a w szczególności nie powinny być globalne gdy nie ma na to potrzeby. for( int i = 1; i = strzal; );
To szczęśliwie nic nie robi. |
|
Ariel Temat założony przez niniejszego użytkownika |
» 2023-01-11 21:44:19 #include <iostream> #include <cstdlib> #include <ctime> using namespace std;
int main() { int a, strzal; srand( time( NULL ) ); int liczba =(( rand() % 1000 ) + 1 ); cout << "Podaj liczbe" << endl; do { while( !( cin >> a ) ) { cout << endl << "Blad, podaj poprawna liczbe: "; cin.clear(); cin.sync(); } if( a < liczba ) { cout << "podales za mala" << endl; } if( a > liczba ) { cout << "podales za duza" << endl; } strzal++; } while( a != liczba ); cout << "Trafiony udalo Ci sie przy " << strzal << " probie" << endl; cout << "Wylosowana liczba to: " << liczba; return 0; } Inaczej nie potrafię, jest ok? |
|
pekfos |
» 2023-01-11 22:05:14 sync() nie jest za dobrym rozwiązaniem bo zależnie od kompilatora potrafi nic nie robić. Lepsze jest ignore(), opisane w Obsługa strumienia wejściowego. Poza tym szczegółem jest dobrze. |
|
Ariel Temat założony przez niniejszego użytkownika |
» 2023-01-11 23:35:37 Dzieki za pomoc ! |
|
« 1 » |