Domanda

Come ci sono 52 carte in un mazzo sappiamo che ci sono 52 choose 2 = 1326 matchups distinte, per quanto nel poker preflop questo può essere bucketed in 169 diverse mani, come AK offsuit e AK adatto come si tratti di un cuore cuori K o un vanga K picche non fa alcuna differenza preflop. La mia domanda è, c'è una bella proprietà matematica in cui io in grado di indicizzare in modo univoco ciascuna di queste 169 mani (0-168 preferibilmente). Sto cercando di creare un look up table come double[][] = new double [169][169] ma non hanno alcun modo di cambiare una rappresentazione di mano, come cheratosi attinica (un asso e un re dello stesso seme) ad un indice univoco in questo array.

È stato utile?

Soluzione

  1. Se le carte sono dello stesso seme, ordinare le due carte, in modo che la carta più bassa viene prima. Se sono di semi diversi, ordinare le due carte in modo che la carta più bassa viene per ultimo. Un caso particolare sarà riservato per quando le carte sono dello stesso valore e seme.
  2. Assegnare ciascun rango un valore da 0 a 12 e utilizzare una base-13 sistema di conteggio. Il valore più alto in questo sistema è 12 * 13 + 12 = 168.
  3. Infine, per i casi in cui entrambe le carte sono dello stesso valore e seme, prendere il valore del rango e aggiungere 169 ad esso. Questi casi saranno nel range 169-181.

Forse la mia matematica è sbagliato, ma io vengo con 182 coppie distinte di carte. Non sono un esperto nel gioco, quindi forse mi manca qualcosa.

Altri suggerimenti

Sì.

Un esempio di un ready made Objective-C (e Java) Texas Hold'em valutatore 7 e 5-card può essere trovato qui e inoltre spiegato qui . It "aggiunge" le mani per generare un indice che caratterizza sufficientemente la mano per determinare rango.

Tutte le valutazioni di benvenuto presso l'indirizzo di posta elettronica ivi contenute.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top