pseudolosowe liczby
Ostatnio zmodyfikowano 2017-08-31 01:18
Tibijczyk Temat założony przez niniejszego użytkownika |
pseudolosowe liczby » 2017-08-31 00:24:16 Mialem zaczynac 3 poziom kursu ale mialem problemy z poziomem 2 i polowy reczy nie rozumialem wiec zaczelem robic wszystkie prace domowe z poziomu 2 od paczatku nie korzystajac z pomocy. Problem: Nie wiem jak zabezpieczyc kod przed wpisaniem liter, liczbe trzeba wpisac 2 razy zeby program zareagowal. #include <iostream> #include <cstdlib> #include <ctime>
int main() { srand( time( NULL ) ); int losuj =( std::rand() % 1000 ) + 1; std::cout << losuj << std::endl; int zgaduj; int strzaly = 0; do { std::cin.clear(); std::cin.sync(); std::cin >> zgaduj; if( std::cin.fail() ) { std::cout << "liczba jest nieprawidlowa " << std::endl; break; } if( zgaduj > losuj ) { std::cout << "podana liczba jest za duza" << std::endl; strzaly++; } else if( zgaduj < losuj ) { std::cout << "podana liczba jest za mala" << std::endl; strzaly++; } else if( zgaduj == losuj ) { std::cout << "trafiles" << losuj << "strzaly" << strzaly << std::endl; } } while( losuj != zgaduj ); return 0; }
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. |
|
maly7 |
» 2017-08-31 00:35:45 W pętli zabrakło klamer dla else if lub niepotrzebnie wczytuje dane i inkrementujesz strzały dla pierwszego warunku. Teraz jeśli zgaduj > liczba strzały zwiększa się o 2 i wczyta 2 razy liczbę (bez obsługi pierwszej wczytanej). Co do zabezpieczenia przed wpisaniem złych danych poczytaj o cin.good lub cin.fale http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Obsluga-strumienia-wejsciowego/12Dodatkowo cin daj na początek pętli i usuń ten przed tą pętlą. |
|
Tibijczyk Temat założony przez niniejszego użytkownika |
» 2017-08-31 01:11:35 Kod poprawiony prosze o obadanie |
|
maly7 |
» 2017-08-31 01:18:29 Jeśli działa poprawnie (a powinien) to jest ok :D Chociaż usunąłbym break i pozostawiłbym samo wyświetlanie komunikatu gdy ktoś poda np. literę. Oraz wtedy drugi if zamienić na else if.
A i taki szczegół, jak to ma być gra to usunąłbym na początku wyświetlanie wylosowanej liczby :D |
|
« 1 » |