Witam, mam do wykonania pewne zadanie o treści:
Gra w liczby. Użytkownik wymyśla jakąś liczbę całkowitą z przedziału od 0 do 500. Następnie komputer próbuje „zgadnąć” wymyśloną liczbę w następujący sposób: komputer pyta użytkownika czy jakaś (wygenerowana przez niego) liczba jest tą pomyślaną. Jeżeli tak to użytkownik wpisuje zero i aplikacja kończy się, jak pomyślana liczba jest mniejsza to użytkownik wprowadza 1, a jak większa to 2 i komputer pyta ponownie, aż do ustalenia pomyślanej liczby.
Napisz aplikację, która znajdzie wymyśloną liczbę przy najmniejszej liczbie zapytań.
Nie wiedzieć czemu, zakres po pierwszym losowaniu zmiejsza mi sie min = 2 i max = 2 a nie tak jak chce.
Proszę o jaką pomoc co z tym fantem zrobić.
Kod programu:
int twojaLiczba;
int losowanie;
cout << "Podaj liczbe z zakresu od 0 do 500: ";
cin >> twojaLiczba;
cout << "Twoja liczba to: " << twojaLiczba << endl;
int decyzja;
int min = 2;
int max = 500;
losowanie = min + (int)(rand() / (RAND_MAX + 1.0) * max);
cout << "Wylosowana liczba: " << losowanie << endl;
cout << "Czy wylosowana liczba jest twoja liczba ? (TAK - 0)(Mniejsza - 1)(Wieksza - 2) " << endl;
cin >> decyzja;
while(true){
if(decyzja == 0){
return false;
} else if(decyzja == 1){
min = losowanie;
cout << "Zakres min: "<< min << " i Zakres max: " << max ;
losowanie = min + (int)(rand() / (RAND_MAX + 1.0) * max);
cout << "Wylosowana liczba: " << losowanie << endl;
cout << "Czy wylosowana liczba jest twoja liczba ? (TAK - 0)(Mniejsza - 1)(Wieksza - 2) " << endl;
cin >> decyzja;
} else if (decyzja == 2){
max = losowanie;
cout << "Zakres min: "<< min << " i Zakres max: " << max ;
losowanie = min + (int)(rand() / (RAND_MAX + 1.0) * max);
cout << "Wylosowana liczba: " << losowanie << endl;
cout << "Czy wylosowana liczba jest twoja liczba ? (TAK - 0)(Mniejsza - 1)(Wieksza - 2) " << endl;
cin >> decyzja;
}
}
max
bo największa wartość, jaką jest w stanie podać tomax - 1