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

Losowanie kombinacji w Jednorękim Bandycie

0 głosów
210 wizyt
pytanie zadane 30 marca 2017 w C i C++ przez Mechatron96 Nowicjusz (220 p.)
edycja 31 marca 2017 przez Mechatron96

Witam. Piszę program, który ma odzwierciedlić "Jednorękiego bandytę", czyli popularną grę hazardową. Interfejs składa się z 3 okienek. W każdym z nich może pojawić się 6 różnych znaków. Każdemu obrazkowi przypisałem liczbę. Najrzadszy może pojawić się w najwęższym przedziale. Przedział zwiększa się wraz z prawdopodobieństwem wystąpienia. Mam problem bo cały czas losuje mi 3 liczby z tego samego przedziału. Ma ktoś jakiś pomysł jak to zrobić aby losowano liczby z innych przedziałów?? Oto kod:


struct Rolka
{   
 
    int Wylosowana;
    int RolkaID;
};
Rolka A[3];
void losowanie()
{
    srand(time(NULL));
    int WylosowanaLiczba;
    for(int i=0;i<3;i++)
    {
         WylosowanaLiczba=rand()%21000000+1;
         przypisywanie(WylosowanaLiczba,i);
    }
}
void przypisywanie(int liczba, int index)
{
    if(liczba>=1 && liczba<=1000000)
    {
        A[index].Wylosowana=1;
        A[index].RolkaID=index+1;
    }
    if(liczba>=1000001 && liczba<=3000000)
    {
        A[index].Wylosowana=2;
        A[index].RolkaID=index+1;
    }
    if(liczba>=3000001 && liczba<=6000000)
    {
        A[index].Wylosowana=3;
        A[index].RolkaID=index+1;
    }
    if(liczba>=6000001 && liczba<=10000000)
    {
        A[index].Wylosowana=4;
        A[index].RolkaID=index+1;
    }
    if(liczba>=10000001 && liczba<=15000000)
    {
        A[index].Wylosowana=5;
        A[index].RolkaID=index+1;
    }
    if(liczba>=15000001 && liczba<=21000000)
    {
        A[index].Wylosowana=6;
        A[index].RolkaID=index+1;
    }
}
komentarz 31 marca 2017 przez Benek Szeryf (93,150 p.)

Wstawienie kodu w treść wiadomości - bajka yes

komentarz 31 marca 2017 przez Mechatron96 Nowicjusz (220 p.)
Okej, mój błąd. Przyznaje się. Ale dzięki za pomoc w rozwiązaniu problemu, dużo pomogłeś :0

1 odpowiedź

0 głosów
odpowiedź 31 marca 2017 przez mokrowski Mędrzec (158,580 p.)
srand() powinno być wywołane 1 raz poza funkcją losuj. Wywołaj ją w main().

PS. Popraw "wklejenie kodu".
komentarz 31 marca 2017 przez Mechatron96 Nowicjusz (220 p.)
Właśnie nie pomaga przeniesienie srand(time(NULL)) do main-a. Cały czas losuje mi takie same liczby :(
komentarz 31 marca 2017 przez mokrowski Mędrzec (158,580 p.)
Pokaż jak wygląda Twój kod. Widocznie jeszcze masz jakieś niespodzianki.

Podobne pytania

0 głosów
1 odpowiedź 975 wizyt
pytanie zadane 14 lutego 2020 w C i C++ przez Lestat Nowicjusz (200 p.)
0 głosów
1 odpowiedź 523 wizyt
pytanie zadane 27 stycznia 2018 w C i C++ przez Corson Początkujący (260 p.)
0 głosów
1 odpowiedź 326 wizyt
pytanie zadane 24 stycznia 2018 w C i C++ przez Corson Początkujący (260 p.)

93,423 zapytań

142,420 odpowiedzi

322,637 komentarzy

62,782 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...