[C++] Losowanie, problem z pętlą
Witam,
w wolnych chwilach bawię sie z c++ i mam następujący problem
Tutaj treść zadania:
Kod:
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.
Tutaj mój kod:
Kod:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{int A;
int liczba_wylosowana=((rand() % 10)+1);
int proby=0 ;
do
{
cout << "Podaj liczbe z zakresu 1-10" << endl;
cin.clear ();
cin.sync ();
cin >> A;
srand( time( NULL ) );
cout << "Wylosowano numer " <<((rand() % 10)+1)<<endl;
int liczba_wylosowana= ((rand() % 10)+1) ;
if (A!=liczba_wylosowana) {cout <<"Nie trafiles! Sproboj jeszcze raz!" <<endl;}
proby++ ;
}
while(A==liczba_wylosowana);
cin >> liczba_wylosowana;
cout <<"Gratulacje! Odgadłeś liczbę, ta liczba to: "<<liczba_wylosowana <<endl;
cout <<"Liczba prób: " << proby <<endl ;
return 0;
}
Program się kompiluje, wychodzi tylko za pierwszym razem, za każdym kolejnym kończy pętle. Nie widzę, gdzie mam błąd, czy może ktoś mi go wskazać, tak abym sam mógł go poprawić?
Mam wrażenie, że jest ono w while, ale poczekam na waszą opinię.
PS. zmieniłem zakres na 1-10 w celu lepszego testowania.
Dodatkowo, używam Code blocks i podcczas testowania, moje okno aplikacji jest bardzo małe, jak je zwiększyc? (było wcześniej normalne, nic nie zmieniałem w opcjach).
@Edit:
problem z kodem rozwiązany mój błąd można opisać w tym zdaniu:
Pętla do ... while zakończy się gdy warunek umieszczony w nawiasach zaokrąglonych zwróci wartość false.
Cytuj:
Astaroth napisał
Za każdym razem jak piszesz : (rand() % 10)+1) , to losujesz nową liczbę, powinieneś wylosować tylko raz przed pętlą do while i pytać usera o jego strzał i porówynywać z odpowiedzią użytkownika i wypisywać odpowieni komunikat w przypadku błędnego strzału.
yup, źle zrozumialem zadanie, myślałem że po każdej błędnej odpowiedzi ma losować na nowo, dzięki.
Teraz została kwestia z oknem aplikacji
Cytuj:
moth napisał
ee nie jestem pewien czy o to chodzi ale jak masz windowsa to w lewym górnym rogu klikasz sobie(na tym pasku co jest nazwa okna) i tam we właściwościach sobie to ustawiasz
załatwione