• 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

0 głosów
583 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 Mentor (354,880 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 Mentor (354,880 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 Mentor (354,880 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 300 wizyt
pytanie zadane 2 kwietnia 2018 w C i C++ przez Toxxxiczny Początkujący (260 p.)
+1 głos
1 odpowiedź 855 wizyt
pytanie zadane 21 października 2021 w C i C++ przez cba Użytkownik (620 p.)
0 głosów
4 odpowiedzi 360 wizyt
pytanie zadane 21 listopada 2015 w C i C++ przez Kestrel Początkujący (300 p.)

93,631 zapytań

142,555 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2523p. - Maurycy W
  9. 2459p. - CC PL
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1851p. - Mariusz Fornal
  13. 1811p. - rafalszastok
  14. 1600p. - Rafał Trójniak
  15. 1588p. - Tomasz Bielak
Szczegóły i pełne wyniki

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

Kursy INF.02 i INF.03
...