Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Losowanie liczb

Ostatnio zmodyfikowano 2015-05-18 10:50
Autor Wiadomość
Patryk_Witkowski
Temat założony przez niniejszego użytkownika
Losowanie liczb
» 2015-05-12 21:50:41
Cześć,
zacząłem zabawę z C++, korzystam z kilku tego kursu i jeszcze innego :)
Ale natknąłem się na problem. Napisałem kod do zgadywania liczby wylosowanej przez komputer, fajnie śmiga itp itd, ale..
Ale jest jeden problem - jak wiadomo nie każdy użytkownik działa zgodnie z tym o co się go poprosi i chciałbym obwarować sytuację kiedy zostanie wprowadzona liczba spoza zakresu bądź inne dane.. Krótko mówiąc, pomocy..
C/C++
#include <conio.h>
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <stdlib.h>

using namespace std;


int main()
{
    srand( time( NULL ) );
    cout << "Pierwsza gra interaktywna" << endl;
    cout << "___________ :) _____________" << endl;
    cout << " " << endl;
    //ten akapit odpowiada za losowanie przypadkowej liczby
    srand(( int ) time( NULL ) );
    int nWylosowana = rand() % 100 + 1;
    std::cout << "Wylosowano liczbe z przedzialu 0-100." << std::endl;
    int nProba;
    cout << "Sprobuj odgadnac jaka liczbe wylosowal dla Ciebie komputer :)" << endl;
    cin >> nProba;
    cout << " " << endl;
   
    while( /*nProba >= 0 && nProba <100 &&*/ nProba != nWylosowana )
   
   
   
    {
        if( nProba < nWylosowana )
             cout << "Wskazana przez Ciebie liczba jest za mala" << endl;
        else
             cout << "Wskazana przez Ciebie liczba jest za duza" << endl;
       
        cout << "Probuj dalej :) " << endl;
        cin >> nProba;
    }
   
   
    cout << "Brawo :) udalo Ci sie odgadnac liczbe :)" << endl;
    return 0;
}
Próbowałem za pomocą pętli, dodawałem warunki do pętli while, ale to nie działa...
Cały czas nie mogę zabezpieczyć się przed sytuacją kiedy użytkownik wprowadza dane spoza zakresu.
Jakieś wsparcie merytoryczne/porady? :)
P-132146
Quirinnos
» 2015-05-12 22:10:51
Możesz zrobić if'a w pętli, tylko... po co?
PS. no w sumie racja, dla jakiś losowych ciągów tekstowych to się zda :)
P-132147
Patryk_Witkowski
Temat założony przez niniejszego użytkownika
» 2015-05-14 18:28:28
Tylko właśnie nie wychodzi mi to.. Największym problemem jest to, że robię kody ad hoc, nie mam czasu poświęcić większej ilości czasu na to. Przed whilem powinienem wrzucić czy w środku instrukcji?
Logicznie rzecz biorąc najlepiej by było, aby algorytm sprawdzał to jeszcze przed wejściem do środka algorytmu, ale mogę się mylić :)
P-132251
Maciek
» 2015-05-15 11:04:42
Przed whilem możesz dodać instrukcję która sprawdza liczbę którą wybrał uzytkownik, ewentualnie mozesz dodać petlę która będzie sprawdzać liczbe do momentu (lub określona liczbe razy, po czym zakończysz program), aż użytkownik wprowadzi właściwa liczbę.
P-132292
Patryk_Witkowski
Temat założony przez niniejszego użytkownika
» 2015-05-16 16:49:53
Niby rozumiem o co chodzi, ale nie mogę tego wpisać w kod - przed chwilą restart mi zainkasował komp od modyfikacji..
P-132355
Maciek
» 2015-05-18 10:50:51
Nie chciał bym dawać gotowca bo to naprawdę prosta pętla, ale ok:
C/C++
do
{
    if( licznik == 3 )
    {
        std::cout << "To była ostatnia proba, nie podales liczby z przedzialu, konczymy." << std::endl;
        std::cin.get();
        return 1;
    }
    std::cout << "Podaje liczbe z przedziału 0-100: ";
    cin >> nProba;
    std::cout << std::endl;
    ++licznik;
} while( nProba < 0 || nProba > 100 );


To jest kod który sprawdza czy liczba jest w zakresie 0-100, sprawdza 3 razy jeśli nie wprowadzono liczby w tym zakresie, to kończy działanie programu. Zmodyfikuj sobie w zależności do potrzeb.
P-132458
« 1 »
  Strona 1 z 1