[lekcja 16] gra losująca liczbę z przedziału od 1 do 1000
Ostatnio zmodyfikowano 2013-04-11 16:12
usmiech |
» 2013-03-18 20:43:29 Sprobuj tego i rozbuduj, a zapewne Ci sie uda , pozdrawiam :) do { cout << "\nWprowadz swoja liczbe : "; cin >> liczba; ++licznik; if( liczba > liczbaLosowa ) cout << "Wprowadzona liczba jest za duza !\n"; if( liczba < liczbaLosowa ) cout << "Wprowadzona liczba jest za mala !\n"; } while( liczba != liczbaLosowa ); |
|
wojtek.997 Temat założony przez niniejszego użytkownika |
» 2013-04-06 02:28:56 Niestety problem nie ustapil. Oto kod: #include <iostream> #include <cstdlib> #include <ctime> int main() { srand( time( NULL ) ); int liczba1, liczba2; int liczba3 = 1; do { liczba2 =( rand() % 1000 ) + 1; std::cout << "Wprowadz liczbe od 1 do 1000" << std::endl; std::cin >> liczba1; std::cout << "Wylosowana liczba to " << liczba2 << std::endl; std::cout << "Liczba strzalow wynosi " << liczba3++ << std::endl; if( liczba1 == liczba2 ) std::cout << "Zgadles" << std::endl; else std::cout << "Nie zgadles" << std::endl; if( liczba1 > liczba2 ) liczba2 =( rand() % 1000 ) + 1; std::cout << "Wprowadzona liczba jest za duza!" << std::endl; std::cout << "Wprowadz ponownie liczbe z zakresu 1 - 1000" << std::endl; std::cin >> liczba1; std::cout << "Wylosowana liczba to " << liczba2 << std::endl; std::cout << "Liczba strzalow wynosi " << liczba3++ << std::endl; if( liczba1 == liczba2 ) std::cout << "Zgadles" << std::endl; else std::cout << "Nie zgadles" << std::endl; if( liczba1 < liczba2 ) liczba2 =( rand() % 1000 ) + 1; std::cout << "Wprowadzona liczba jest za mala!" << std::endl; std::cout << "Wprowadz ponownie liczbe z zakresu 1 - 1000" << std::endl; std::cin >> liczba1; std::cout << "Wylosowana liczba to " << liczba2 << std::endl; std::cout << "Liczba strzalow wynosi " << liczba3++ << std::endl; if( liczba1 == liczba2 ) std::cout << "Zgadles" << std::endl; else std::cout << "Nie zgadles" << std::endl; } while( liczba1 != liczba2 ); return 0; } Wpisuje liczbe wyskakuje "Wylosowana liczba to (przykladowo) 897" nie zgadles wiec wpisuje ponownie liczbe wyskakuje "Wylosowana liczba to 897" nie zgadles wpisuje kolejna wyskakuje "Wylosowana liczba to (przykladowo) 701" nie zgadles wpisuje kolejna wyskakuje "Wylosowana liczba to (przykladowo) 318" nie zgadles wpisuje kolejna wyskakuje "Wylosowana liczba to 318" nie zgadles W koncu gdy wyskakuje zgadles to i tak nie konczy sie program. Co z tym fantem zrobic? |
|
MrPoxipol |
» 2013-04-06 10:27:18 Niepotrzebnie robisz to(losowanie i pytanie o liczbę) 3 razy. Wystarczy tak: if( liczba1 == liczba2 ) std::cout << "Zgadles" << std::endl; else std::cout << "Nie zgadles" << std::endl;
if( liczba1 > liczba2 ) std::cout << "Wprowadzona liczba jest za duza!" << std::endl;
if( liczba1 < liczba2 ) std::cout << "Wprowadzona liczba jest za mala!" << std::endl;
Twój program jeszcze dwa razy losował, przez co ciężko było o zakończenie :) Przeanalizuj. |
|
usmiech |
» 2013-04-07 23:22:40 << removed >> |
|
Camperik |
» 2013-04-08 22:05:25 Tutaj jeszcze dość ważnego polecania brakuje a mianowicie : "Gra ma być zabezpieczona przed możliwością wprowadzenia błędnych wartości liczbowych." :) |
|
michal1999 |
» 2013-04-11 15:59:29 Masz tutaj kod mojego programu #include <iostream> #include <ctime> #include <cstdlib> int main() { std::cout << "Gra polega na zgadnieciu liczby od 1 do 500 ( wraz z 1 i 500 )" << std::endl; std::cout << "" << std::endl; int a; int b = 0; srand( time( NULL ) ); int c = rand() % 500 + 1; do { std::cin.clear(); std::cin.sync(); std::cout << "" << std::endl; std::cout << "Podaj liczbe " << std::endl; std::cin >> a; b++; std::cin.clear(); std::cin.sync(); if( a > c ) std::cout << "Podales za duza liczbe" << std::endl; if( a < c ) std::cout << "Podales za mala liczbe" << std::endl; } while( a != c ); std::cout << "" << std::endl; std::cout << "Podales dobra liczbe !" << std::endl; std::cout << "Wylosowana liczba to : " << c << std::endl; std::cout << "Liczba prob : " << b << std::endl; std::cout << "----------------------------------------------------------------" << std::endl; system( "PAUSE" ); return 0; } Wiem, że możecie krytykować tą metodę nauki, ale ja uważam, że jest dobra o ile przeanalizuje się kod . Sam tak robiłem z niektórymi zadaniami i się sprawdza :D |
|
MrPoxipol |
» 2013-04-11 16:07:31 Nie zabezpieczasz przed podaniem innej wartości niż int :P |
|
michal1999 |
» 2013-04-11 16:12:20 Nie pomyślałem o tym. A już myślałem, że taki dobry program zrobiełm :D hehehe |
|
1 « 2 » |