• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dziwna losowość - takie same liczby za każdym uruchomieniem programu

Object Storage Arubacloud
0 głosów
248 wizyt
pytanie zadane 30 stycznia 2019 w C i C++ przez Mr.EndiX Początkujący (470 p.)
edycja 30 stycznia 2019 przez Mr.EndiX
//wykończenie zawiera opcję końca programu i powrotu do głownego menu w całokrztałcie
//zakresreand zawiera generowanie liczby losowej
//trzongry zawiera częć "grania"
//czyściciel odpowieada funkcji w całokrztałcie
//menukoncowe zawiera naisy i opcje na koncu
//menuglowne zawiera napisy i opcje początkowe

#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
#include <windows.h>
using namespace std;
int random()
{
    srand(time(NULL));
}
int zakresrand()
{
int min=1;
int max=100;
return random()%(min-max+1)+min;
}
void menukoncowe();
void menuglowne()
{
cout<<"Witaj w grze(zgadywance).\n";
cout<<"  \n";
cout<<"  \n";
Sleep (1000);
cout<<"Zasady gry:\n";
cout<<"1.Musisz trafic liczbe losowa w zakresie 1 do 100.\n";
cout<<"2.Sa trzy rundy.\n";
cout<<"3.Musisz uzyskac jak najwieksza liczbe punktow.\n";
cout<<"  \n";
cout<<"Punktacja w rundzie:\n";
cout<<"Za 1 razem:5pkt\n";
cout<<"Za 2 razem:4pkt\n";
cout<<"Za 3 razem:3pkt\n";
cout<<"Za 4 razem:2pkt\n";
cout<<"Za 5 razem:1pkt\n";
cout<<"Za 6 razem:0pkt\n";
cout<<"  \n";
menukoncowe();
}
void trzongry()
{

string wyb;
double liczba;
int o= zakresrand();
int x=0;
int y=0;
do{
++y;
++x;
cout<<"Podaj liczbe:\n";
cin>>liczba;
if (liczba<o)
{
cout<<"To za malo\n";
cout<<o<<"\n";
cout<<"To byla Twoja "<<x<<" proba.\n";
cout<<"  \n";
}
else if(liczba>o)
{
cout<<"To za duzo\n";
cout<<o<<"\n";
cout<<"To byla Twoja "<<x<<" proba.\n";
cout<<"  \n";
}
else
{
system ("cls");
cout<<"Dobrze\n";
cout<<"Udalo Ci sie za "<<x<<" proba.\n";
cout<<"  \n";
break;
}
}
while(x!=6);
Sleep (1000);

    if(y==1)
    {
    cout<<"Zdobyles 5 pkt\n";
    Sleep(3000);
    }
    else if(y==2)
    {
    cout<<"Zdobyles 4 pkt\n";
    Sleep(3000);
    }
    else if(y==3)
        {
    cout<<"Zdobyles 3pkt\n";
    Sleep(3000);
        }
    else if(y==4)
        {
    cout<<"Zdobyles 2pkt\n";
    Sleep(3000);
        }
    else if(y==5)
        {

    cout<<"Zdobyles 1pkt\n";
    Sleep(3000);
        }
    else
        {
   system ("cls");
    cout<<"Nic nie zdobyles w tej rundzie!\n";
    cout<<"Poprwana odpowiedz to: ";
    cout<<o<<"\n";
    cout<<"\n";
    Sleep(3000);
    system ("cls");
        }
}
void menukoncowe()
{
int wyb;
trzongry();
do{
Sleep (1000);
system ("cls");
cout<<"Masz 3 opcje do wyboru:\n";
cout<<"1.Przejsc do nastepnej rundy?\n";
cout<<"2.Zaczac od nowa.\n";
cout<<"3.Podliczyc punkty.\n";
cout<<"4.Zakonczyc i wrocic do menu glownego.\n";
cout<<"5.Powrot do menu gry.\n";
cin>>wyb;
if(wyb==1)
{
Sleep (1000);
system ("cls");
trzongry();
}
else if(wyb==2)
{
system ("cls");
cout<<"Dziekujemy za rozegranie rundy.\n";
Sleep (1000);
system ("cls");
menuglowne();
}
else if(wyb==3)
{
Sleep (1000);
system ("cls");
cout<<"Jeszcze nie wiem jak to zrobic\n";
}
else if(wyb==4)
{
system ("cls");
break;
}
else if(wyb==5)
{
system ("cls");
menuglowne();
}
}while(wyb<=99);
}
//void wykonczenie()
int main()
{
string haslo;
string login;
int x=0;
do
{
++x;
cout<<"Podaj login:";
cin>>login;
cout<<"Podaj haslo:";
cin>>haslo;
if (haslo=="xyz"&&login=="zyx")
{
system( "cls" );
cout<<"Dostep przyznany\n";
cout<<"   \n";
Sleep(300);
system( "cls" );
menuglowne();
}
else if(haslo!="xyz"&&login!="zyx")
{
system ("cls");
cout<<"Dostep nieprzyznany\n";              cout<<"To byla twoja: "<<x<<" proba z (3)\n";
Sleep(300);
system( "cls" );
}
}
while(haslo!="xyz"&&login!="zyx"&&x<=2);
if (x==3)
system( "cls" );
cout<<"Nie poprawne haslo, odmowa dostepu\n";
Sleep(200);
system( "cls" );
}

 

1 odpowiedź

0 głosów
odpowiedź 30 stycznia 2019 przez adrian17 Ekspert (344,860 p.)
wybrane 30 stycznia 2019 przez Mr.EndiX
 
Najlepsza
Na oko, nigdzie nie wywołujesz srand() ?

BTW, napraw proszę formatowanie kodu, tego nie da się czytać...
komentarz 30 stycznia 2019 przez Mr.EndiX Początkujący (470 p.)
ok, trochę sformatowałem(chyba o to chodzi). A gdzie wywołać srand? Wcześniej miałem to gdzieś wpisane i za każdym razem  kiedy się "zgaduje" losował nową liczbę  z zakresy 70-76.
komentarz 30 stycznia 2019 przez adrian17 Ekspert (344,860 p.)

 A gdzie wywołać srand?

Raz, na początku programu.

komentarz 30 stycznia 2019 przez Mr.EndiX Początkujący (470 p.)
Ok, dodałem ale teraz nową liczbę losowa generuje tylko kiedy restartuje program. Jak zrobić żeby przy np. wyborze następnej rundy losował następna liczbę?
komentarz 30 stycznia 2019 przez adrian17 Ekspert (344,860 p.)
Powtórzę: srand() żeby zainicjalizować generator liczb losowych, rand() żeby losować.

Kompilator nie krzyczy, że Twoje random() nic nie zwraca?
komentarz 30 stycznia 2019 przez Mr.EndiX Początkujący (470 p.)
Dzięki wielkie, udało mi się :). Napisałem srand w osobnej funkcji xd a powinienem tam gdzie jest napisany przedział.

Podobne pytania

0 głosów
3 odpowiedzi 138 wizyt
pytanie zadane 2 kwietnia 2018 w C i C++ przez Toxxxiczny Początkujący (260 p.)
+1 głos
1 odpowiedź 544 wizyt
pytanie zadane 21 października 2021 w C i C++ przez cba Użytkownik (620 p.)
0 głosów
4 odpowiedzi 196 wizyt
pytanie zadane 21 listopada 2015 w C i C++ przez Kestrel Początkujący (300 p.)

92,568 zapytań

141,422 odpowiedzi

319,637 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...