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

question-closed Math.random którym można manipulować i daje sume 100%

Object Storage Arubacloud
0 głosów
481 wizyt
pytanie zadane 5 maja 2018 w JavaScript przez BlvckFox Gaduła (4,240 p.)
zamknięte 12 maja 2018 przez BlvckFox

Cześć, robie gre podobną do "Milionerów" i mam tam funkcje pytania do publiczności. Chce zasymulować losowe procenty. Są 4 możliwości odpowiedzi: A,B,C,D i tylko jedna jest poprawna. Obecnie mam takie coś:
 

let A = Math.floor((Math.random() * 100));
let B = Math.floor((Math.random() * (100 - A)));
let C = Math.floor((Math.random() * (100 - A - B)));
let D = 100 - A - B - C;

Ten kod działa dobrze, ale jeżeli chciałbym, żeby jedna z tych opcji miała zawsze najwięcej procent.
Przykład (poprawna odpowiedz to C):
A - 20%
B - 1%
C - 50%
D - 29%
Można jakoś ten kod przerobić tak, żeby bez zbyt dużej ilości ifów zrobić to dobrze?
 

komentarz zamknięcia: Rozwiązanie - trochę logicznego myślenia, mapowanie tablicy i reduce + 4 ify

2 odpowiedzi

0 głosów
odpowiedź 5 maja 2018 przez pablop76 VIP (123,180 p.)
Poprawna odp. to Math.max()
komentarz 5 maja 2018 przez BlvckFox Gaduła (4,240 p.)
Math.max() sprawdza, która ma największą wartość. Ja chce, żeby wartość stała się największą losową z pośród tych czterech.
komentarz 5 maja 2018 przez pablop76 VIP (123,180 p.)
Możesz wrzucić wyniki do tablicy, posortować np. rosnąco.
komentarz 5 maja 2018 przez BlvckFox Gaduła (4,240 p.)
Ja chce manipulować wynikiem przed jego "wykonaniem się" Wytłumacze to na praktycznym przykładzie:
W milionerach jest tak, że jest podane pytanie:
Ile to 1+1
A - 1 C - 5
B - 2 D - 10
potem gracz wybiera pytanie do publiczności:
A - 90%, B - 9%, C - 1%, D - 0%
No i u mnie działa to podobnie, tylko, że zamiast publiczności jest losowy math. Problem polega na tym, że chciałbym aby odpowiedz poprawna zawsze miała najwięcej procent.
komentarz 5 maja 2018 przez pablop76 VIP (123,180 p.)
No właśnie tak. Twoja lista odpowiedzi składa sie z czterech możliwości. Ale prawidłowa to zawsze nr 1. Po to, że po losowaniu do   Math.max przypisujesz odp. nr.1
komentarz 5 maja 2018 przez BlvckFox Gaduła (4,240 p.)
Nie rozumiem, jak prawidłowa to zawsze nr. 1? Mógłbyś to napisać w kodzie?
komentarz 5 maja 2018 przez pablop76 VIP (123,180 p.)
Niestety nie siedzę przy kompie. Piszę z telefonu.
komentarz 5 maja 2018 przez BlvckFox Gaduła (4,240 p.)
Gdyby Math.max zwracał zmienną, która zawiera największy wynik to by mi pomogło, bo nie chce używać ifów, żeby sprawdzać A > B, C >A itd. ale zwraca tylko największy wynik
komentarz 5 maja 2018 przez pablop76 VIP (123,180 p.)
A co zwraca Math.random(a,b,c,d); ?
komentarz 5 maja 2018 przez BlvckFox Gaduła (4,240 p.)

Losową liczbe która jest najwięszka 

komentarz 5 maja 2018 przez BlvckFox Gaduła (4,240 p.)
edycja 5 maja 2018 przez BlvckFox

Mój cały kod: 
 

let A = Math.floor((Math.random() * 100));
                    let B = Math.floor((Math.random() * (100 - A)));
                    let C = Math.floor((Math.random() * (100 - A - B)));
                    let D = 100 - A - B - C;

                    let Abar = '|'.repeat(A/10);
                    let Bbar = '|'.repeat(B/10);
                    let Cbar = '|'.repeat(C/10);
                    let Dbar = '|'.repeat(D/10);

                    console.log(`Głosy publiczności:
*A* *[${Abar.padEnd(10)}]*  ${A}% 
*B* *[${Bbar.padEnd(10)}]*  ${B}% 
*C* *[${Cbar.padEnd(10)}]*  ${C}% 
*D* *[${Dbar.padEnd(10)}]*  ${D}%`);

 

0 głosów
odpowiedź 5 maja 2018 przez CzikaCarry Szeryf (75,340 p.)
  1. Wylosuj 4 liczby
  2. policz jaki procent sumy tych liczb stanowi każda z tych liczb
  3. Wybierz największy z nich i przyporządkuj do poprawnej odpowiedzi
  4. Profit? :)

Podobne pytania

–2 głosów
3 odpowiedzi 271 wizyt
pytanie zadane 1 marca 2016 w JavaScript przez BlvckFox Gaduła (4,240 p.)
0 głosów
2 odpowiedzi 850 wizyt
pytanie zadane 20 lipca 2019 w JavaScript przez mknnn221 Początkujący (460 p.)
0 głosów
2 odpowiedzi 404 wizyt
pytanie zadane 5 lutego 2019 w C# przez ProCat Początkujący (310 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...