Permalänk

C++ Randomizer

Tjena, jag undrar hur man kan randomiza specifika tal, i mitt fall en kortlek. Jag gör ett simpelt blackjack program och till det behöver jag öka chansen att få 10 (10, knäckt, dam, kung).
Mitt fält behöver vara:
{1,2,3,4,5,6,7,8,9,10,10,10,10}
Hur randomizar jag detta då jag inte kan använda rand() % 10 + 1;

Permalänk
Medlem
Skrivet av Mulle0216:

Tjena, jag undrar hur man kan randomiza specifika tal, i mitt fall en kortlek. Jag gör ett simpelt blackjack program och till det behöver jag öka chansen att få 10 (10, knäckt, dam, kung).
Mitt fält behöver vara:
{1,2,3,4,5,6,7,8,9,10,10,10,10}
Hur randomizar jag detta då jag inte kan använda rand() % 10 + 1;

Varför kan du inte ha knäckt, dam och kung som 11, 12 och 13?

Permalänk
Medlem
Skrivet av Mulle0216:

Mitt fält behöver vara:
{1,2,3,4,5,6,7,8,9,10,10,10,10}
Hur randomizar jag detta då jag inte kan använda rand() % 10 + 1;

Det där ser redan ut som en array. Randomisera index i arrayen.

Visa signatur

För övrigt anser jag att tobak ska förbjudas.

Permalänk
Medlem

Finns väl bättre lösningar men en är att slumpa 1 till 13 och sen när du använder dem göra >=10 ist för ==10, alt. göra om alla >10 till 10.

Visa signatur

Lilla: DAN Cases A4 v2 | GTX1060 6GB FE | MSI Z370I | i5 8600k | Noctua NH-L9i | Corsair SF600 | Corsair CL15 Vengeance LPX 2x8GB |
Stora: CM HAF XB EVO | GTX1070 ASUS ROG STRIX DC3 | ASUS P8Z68 | i7 2700k | CM Hyper 212 Plus | Corsair TX750 | 4x4GB

Permalänk
Medlem

Du kan definiera din egen slumpdistribution med std::discrete_distribution, då kan du själv välja hur sannolikt det är att ett visst värde slumpas fram.

Permalänk
Skrivet av Schm000L:

Finns väl bättre lösningar men en är att slumpa 1 till 13 och sen när du använder dem göra >=10 ist för ==10, alt. göra om alla >10 till 10.

Det där var ju smart. Tack

Skickades från m.sweclockers.com