Pseudolosowe liczby całkowite
Ostatnio zmodyfikowano 2014-06-10 15:58
snajperek130 Temat założony przez niniejszego użytkownika |
Pseudolosowe liczby całkowite » 2014-06-10 13:12:29 Witam, robie zadanie domowe: 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. Moj kod: #include <iostream> #include <cstdlib> #include <ctime> int main() { int a, liczba_strzalow; srand( time( NULL ) ); std::cout << "Program losuje liczbe z przedzialu od 1 do 1000. Zgadnij, ktora to: "; int liczba =( std::rand() % 1000 ) + 1; do { std::cin >> a; if( std::cin.fail() ) std::cout << "Cos zle wpisales. Wpisz jeszcze raz"; if( a > liczba ) { std::cout << "Podales za duza liczbe, sprobuj ponownie" << std::endl; liczba_strzalow = 1; } if( a < liczba ) { std::cout << "Podales za mala liczbe, sprobuj ponownie" << std::endl; liczba_strzalow = 1; } } while( a != liczba ); std::cout << "Gratulacje farciarzu :)" << std::endl; std::cout << "Strzelales" << liczba_strzalow << "razy"; return 0; }
Moje pytania sa takie: 1) Jak zrobic, by liczby strzalow sie sumowaly? Jest na to jakas funkcja czy sposob? 2) Jak zrobic, by po blednym wpsianiu, np. litery wyswietlil sie napis "Cos zle wpisales. Wpisz jeszcze raz" i wrocilo do ponownego wpisania?? Trzeba tu zrobic w petli do while druga petle do while? |
|
pekfos |
» 2014-06-10 13:44:38 1. Dodawaj do zmiennej 1, zamiast przypisywać 1? 2. Druga pętla. |
|
snajperek130 Temat założony przez niniejszego użytkownika |
» 2014-06-10 15:27:38 Dobra, zalatwilem sprawe z petla, ale dalej nie wiem, jak zrobic z ta zmienna. I jeszcze pytanie, nie da sie tu spoilerow robic?? :D #include <iostream> #include <cstdlib> #include <ctime> int main() { int a, liczba_strzalow; std::cout << "Program losuje liczbe z przedzialu od 1 do 1000. Zgadnij, ktora to: "; int liczba =( std::rand() % 1000 ) + 1; do { std::cin >> a; while( std::cin.fail() ) { std::cin.clear(); std::cin.sync(); std::cout << "Cos zle wpisales, sprobuj jeszcze raz \t"; std::cin >> a; } if( a > liczba ) { std::cout << "Podales za duza liczbe, sproboj ponownie" << std::endl; liczba_strzalow += 1; } if( a < liczba ) { std::cout << "Podales za mala liczbe, sproboj ponownie" << std::endl; liczba_strzalow += 1; } } while( a != liczba ); std::cout << "Gratulacje farciarzu :)" << std::endl; std::cout << "Strzelales" << liczba_strzalow << "razy"; return 0; }
|
|
pekfos |
» 2014-06-10 15:48:45 liczba_strzalow nie ma wartości początkowej I jeszcze pytanie, nie da sie tu spoilerow robic?? :D |
..? |
|
snajperek130 Temat założony przez niniejszego użytkownika |
» 2014-06-10 15:58:37 Dobra, napisalem, dzieki pekfos :) #include <iostream> #include <cstdlib> #include <ctime> int main() { int a, liczba_strzalow; liczba_strzalow =+ 1; srand( time( NULL ) ); std::cout << "Program losuje liczbe z przedzialu od 1 do 1000. Zgadnij, ktora to: "; int liczba =( std::rand() % 1000 ) + 1; do { std::cin >> a; while( std::cin.fail() ) { std::cin.clear(); std::cin.sync(); std::cout << "Cos zle wpisales, sprobuj jeszcze raz \t"; std::cin >> a; } if( a > liczba ) { std::cout << "Podales za duza liczbe, sproboj ponownie" << std::endl; liczba_strzalow += 1; } if( a < liczba ) { std::cout << "Podales za mala liczbe, sproboj ponownie" << std::endl; liczba_strzalow += 1; } } while( a != liczba ); std::cout << "Gratulacje farciarzu :)" << std::endl; std::cout << "Strzelales" << liczba_strzalow << "razy"; return 0; }
|
|
« 1 » |