Witam, mam do zrobienia takie o to zadanie
Twoim zadaniem domowym jest napisanie prostej gry, która ma działać
następująco:
- Program losuje liczbę z przedziału od 1 do 1000.
- Użytkownik zgaduje liczbę, która została wylosowana.
- Jeżeli podana liczba jest za duża (za mała) gra wypisuje stosowny komunikat i
powraca do kroku 2. - Jeżeli gracz trafi liczbę wylosowaną to program 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.
Problem w tym, że gdy wpisze zła liczbę program powinien wyświetlać komunikat zła liczba, i tak robi lecz gdy wpisze poprawną liczbę z zakresu to program powiela komunikat i dopiero po następnym wpisaniu poprawnej liczby pokazuje odpowiedni komunikat.
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
srand( time( NULL ) );
int liczba =( rand() % 999 ) + 1;
int ile_razy = 0;
int twoja;
std::cin.clear();
std::cin.sync();
std::cout << "Zgadnij liczbe od 1 do 1000." << std::endl << std::endl;
std::cin >> twoja;
if(twoja < 1 || twoja > 1000){
do{
std::cin.clear();
std::cin.sync();
std::cout << "Zla liczba!" << std::endl << std::endl;
std::cin >> twoja;
}while(twoja < 1);
do{
std::cin.clear();
std::cin.sync();
std::cout << "Zla Liczba!" << std::endl << std::endl;
std::cin >> twoja;
}while(twoja > 1000);
}
if(std::cin.good()){
do{
if(twoja > liczba){
ile_razy++;
std::cin.clear();
std::cin.sync();
std::cout << "Za duzo! Sprobuj ponownie." << std::endl << std::endl;
std::cin >> twoja;
}
else
{
ile_razy++;
std::cin.clear();
std::cin.sync();
std::cout << "Za malo! Sprobuj ponownie." << std::endl << std::endl;
std::cin >> twoja;
}
}while(liczba != twoja);
}
else
{
std::cin.clear();
std::cin.sync();
std::cout << "Jeszcze raz!" << std::endl << std::endl;
std::cin >> twoja;
}
if(liczba == twoja){
std::cout << "Zgadles!!! Zgadywales: " << ile_razy << " razy." << std::endl;
std::cin >> twoja;
}
return 0;
}