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

[lekcja 16] gra losująca liczbę z przedziału od 1 do 1000

Ostatnio zmodyfikowano 2013-04-11 16:12
Autor Wiadomość
usmiech
» 2013-03-18 20:43:29
Sprobuj tego i rozbuduj, a zapewne Ci sie uda , pozdrawiam :)

C/C++
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 );
P-78804
wojtek.997
Temat założony przez niniejszego użytkownika
» 2013-04-06 02:28:56
Niestety problem nie ustapil. Oto kod:
C/C++
#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?
P-80018
MrPoxipol
» 2013-04-06 10:27:18
Niepotrzebnie robisz to(losowanie i pytanie o liczbę) 3 razy. Wystarczy tak:
C/C++
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.
P-80025
usmiech
» 2013-04-07 23:22:40
<< removed >>
P-80189
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."
:)
P-80236
michal1999
» 2013-04-11 15:59:29
Masz tutaj kod mojego programu
C/C++
#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
P-80380
MrPoxipol
» 2013-04-11 16:07:31
Nie zabezpieczasz przed podaniem innej wartości niż int :P
P-80381
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
P-80382
1 « 2 »
Poprzednia strona Strona 2 z 2