Avatar billede supermichael Nybegynder
10. februar 2007 - 14:10 Der er 1 løsning

Rangering af pokerhænder..

Jeg har lavet en række funktioner der kan regne hvilken 5 korts-kombination der ud fra 7 kort (texas hold'em) er den mest værdifulde.
Indtil nu har jeg lavet det således, at jeg går ud fra at et hvert vigtigt kort har en værdi fra 0 til 12 (2 til Es) Derefter regner jeg ud på følgene måde

id -> Kombinationens type f.eks. 1 = et par, 2 = 2 par osv.

(id * 13^5) + (kort1 * 13^4) + (kort2 * 13^3) + (kort3 * 13^2) + (kort4 * 13) + kort5

Dette er point fra en Flush og Bust, hvor alle kort er betydende.
Men jeg skal senere implementere funktioner der har brug for at vide hvor langt forskellige kombinationer ligger fra hinanden. Derfor virker det naturligt at jeg laver et pointsystem uden alle de spring i point. Der kommer jo til at være store spring da nogle af kombinationerne kun har et betydende kort. f.eks. en straight.

(id * 13^5) + højesteKort

Er der nogen der kan hjælpe mig med en metode.. den kunne jo i princippet godt være matematisk. Jeg kan bare ikke helt gennemskue det..
Avatar billede supermichael Nybegynder
11. februar 2007 - 09:11 #1
Det er lige meget.. Jeg kan ikke lige umiddelbart se hvordan det skal kunne lade sig gøre..

Man kan godt, ved at dele op i majorRank(id) og minorRank. f.eks. ved to kort

private int two_cards(card1, card5) {
if (card1 < card5) { card5 -= 1; }
return card1 * 12 + card5;

Men det bliver noget rod.. Jag laver det så de får major og minor.. Men Så bliver der heller ikke gjort mere.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester