|
| Pokeranalysealgoritme? Fra : Martin Christiansen |
Dato : 18-01-06 17:49 |
|
Hejsa. Jeg blev henvist hertil fra en anden nyhedsgruppe så nu prøver jeg
lige lykken her:
Jeg er ved at lave et pokerprogram (til Texas Hold'em), som bl.a. skal kunne
afgøre, hvilken kombination, der den bedste på en hånd (dvs. finde den
bedste kombination ud af 7 givne kort).
Mine problemer opstår i forbindelse med straight og straight flush: Hvordan
finder man lettest ud af, hvad man har?
Umiddelbart lyder det jo som en simpel sag, men der er faldgruber:
* En mindre straight flush er mere værd en en højrere straight.
* Der kan være flere straights (og straight flush'er) blandt de samme 7
kort
* Es kan indgå både som mindste og højeste kort i en straight (men må ikke
ligge i midten).
Antag f.eks, at de 7 givne kort er:
Klør Es
Klør 2
Klør 3
Klør 4
Hjerter 5
Klør 5
Spar 6
Den efterlyste algoritme skal altså her kunne finde ud af, at højeste
kombination er en straight flush i klør (fra Es til 5), selv om der også er
2 almindelige straights (Én fra Es til 5, og én fra 2 til 6).
Hvordan kan en sådan algoritme se ud? (gerne pseudokode).
NB. Algoritmen bør også kunne udtale sig om, hvad det bedste enkeltkort er,
som ligger *udenfor* den bedste kombination ('kicker'). Jeg forestiller mig
noget lignende følgende:
public class PokerHand
{
private ArrayList Cards; //Holds 7 cards
.
. //Constructor and other member stuff here...
.
private bool CheckForStraight( out bool IsStraightFlush,
out Card HighestCardInCombination,
out Card Kicker )
{
// Must return true if a straight or straight flush is present
// among the seven cards in the Cards collection.
//
// The out parameters must reflect the most valuable
// straight combination found.
// Implementation is for you to find out!
}
}
--Martin
| |
Jens Axel Søgaard (18-01-2006)
| Kommentar Fra : Jens Axel Søgaard |
Dato : 18-01-06 18:04 |
|
Martin Christiansen wrote:
> Hejsa. Jeg blev henvist hertil fra en anden nyhedsgruppe så nu prøver jeg
> lige lykken her:
>
>
> Jeg er ved at lave et pokerprogram (til Texas Hold'em), som bl.a. skal kunne
> afgøre, hvilken kombination, der den bedste på en hånd (dvs. finde den
> bedste kombination ud af 7 givne kort).
>
> Mine problemer opstår i forbindelse med straight og straight flush: Hvordan
> finder man lettest ud af, hvad man har?
>
>
> Umiddelbart lyder det jo som en simpel sag, men der er faldgruber:
>
> * En mindre straight flush er mere værd en en højrere straight.
< http://en.wikipedia.org/wiki/Straight_flush>
Two such hands are compared by their high card in the same way as
are straights, and the same wild card rules apply as for straights.
< http://en.wikipedia.org/wiki/Straight_%28poker%29>
Two straights are ranked by comparing the high card of each.
Se også
< http://en.wikipedia.org/wiki/Poker_hand>
> * Der kan være flere straights (og straight flush'er) blandt de samme 7
> kort
Find den højeste for hver spiller.
> Hvordan kan en sådan algoritme se ud? (gerne pseudokode).
Er der en straight med es højest?
Er der en straight med konge højest?
Er der en straight med dame højest?
...
--
Jens Axel Søgaard
| |
Henning Makholm (18-01-2006)
| Kommentar Fra : Henning Makholm |
Dato : 18-01-06 19:33 |
|
Scripsit "Thomas S" <staermose@gmail.com>
> Jens Axel Søgaard wrote:
>> > Hvordan kan en sådan algoritme se ud? (gerne pseudokode).
>> Er der en straight med es højest?
>> Er der en straight med konge højest?
>> Er der en straight med dame højest?
>> ...
> Den kan da netop ikke skelne en straight flush fra en straight, men
> behandler dem ens.
Er der en straight flush med es højest?
Er der en straight flush med konge højest?
...
Er der en straight flush med syv højest?
Er der fire esser?
Er der fire konger?
...
Er der fire toere?
Er der E-E-E-K-K?
...
Er der en flush med otte højest?
Er der en straight med es højest?
Er der en straight med konge højest?
...
--
Henning Makholm "We can hope that this serious deficiency will be
remedied in the final version of BibTeX, 1.0, which is
expected to appear when the LaTeX 3.0 development is completed."
| |
Kenneth Brun Nielsen (18-01-2006)
| Kommentar Fra : Kenneth Brun Nielsen |
Dato : 18-01-06 23:13 |
|
"Henning Makholm" <henning@makholm.net> skrev i en meddelelse
news:87d5ipwfnl.fsf@kreon.lan.henning.makholm.net...
> Er der en straight flush med es højest?
> Er der en straight flush med konge højest?
> ...
> Er der en straight flush med syv højest?
Ikke (kun) for at være pedantisk, men du glemmer vist fem og seks, ik?
(A,2,3,4,5)
> Er der fire esser?
> Er der fire konger?
> ...
> Er der fire toere?
> Er der E-E-E-K-K?
> ...
> Er der en flush med otte højest?
Og her, seks og syv..
> Er der en straight med es højest?
/KBN
| |
Stefan Holm (20-01-2006)
| Kommentar Fra : Stefan Holm |
Dato : 20-01-06 01:44 |
|
Kenneth Brun Nielsen wrote:
>> Er der en flush med otte højest?
>
> Og her, seks og syv..
En flush med seks højest vil være straight (hvis den indeholder et es og
ikke er straight, vil det være højest).
--
Stefan Holm
"Når jeg ikke griner så meget, som jeg så gerne ville have gjort,
skyldes det, at jeg ikke morer mig."
| |
Kenneth Brun Nielsen (21-01-2006)
| Kommentar Fra : Kenneth Brun Nielsen |
Dato : 21-01-06 10:08 |
|
"Stefan Holm" <nospam@algebra.dk> skrev i en meddelelse
news:1p52jiqkbs917$.dlg@banach.algebra.dk...
> Kenneth Brun Nielsen wrote:
>
>>> Er der en flush med otte højest?
>>
>> Og her, seks og syv..
>
> En flush med seks højest vil være straight (hvis den indeholder et es og
> ikke er straight, vil det være højest).
Åh ja. Du vinder, Stefan
/Kenneth
| |
Thomas S (18-01-2006)
| Kommentar Fra : Thomas S |
Dato : 18-01-06 19:22 |
|
Jens Axel Søgaard wrote:
>
> > Hvordan kan en sådan algoritme se ud? (gerne pseudokode).
>
> Er der en straight med es højest?
> Er der en straight med konge højest?
> Er der en straight med dame højest?
> ...
Den kan da netop ikke skelne en straight flush fra en straight, men
behandler dem ens.
--
mvh
Thomas S
| |
Kim Jensen (18-01-2006)
| Kommentar Fra : Kim Jensen |
Dato : 18-01-06 22:07 |
|
Martin Christiansen wrote:
> private bool CheckForStraight( out bool IsStraightFlush,
> out Card HighestCardInCombination,
> out Card Kicker )
Nu misforstår jeg måske din pseudokode her, men hvis man har en straight
(5 kort), så vil man da aldrig skulle bruge en "kicker" til at afgøre
noget, da dette i så fald ville være et 6. kort (og det bruges ikke).
--
mvh Kim Jensen
blog.werx @ http://kim.litewerx.dk
Port80.biz // ColorBlender.com // LiteWerx.dk
| |
Martin Christiansen (18-01-2006)
| Kommentar Fra : Martin Christiansen |
Dato : 18-01-06 22:28 |
|
"Kim Jensen" <kim@_NOSPAM_litewerx.dk> skrev i en meddelelse
news:43ceadf5$0>
>
> Nu misforstår jeg måske din pseudokode her, men hvis man har en straight
> (5 kort), så vil man da aldrig skulle bruge en "kicker" til at afgøre
> noget, da dette i så fald ville være et 6. kort (og det bruges ikke).
>
Jeg tror du tager fejl, for i Texas Hold'em kan man komme ud for, at
straight'en befinder sig i de fælles 5 kort på bordet (meget sjældent,
ganske vist!). Vinderen er da den, som har det højeste kort på hånden
('Kicker'). Eller tager jeg fejl???
--Martin.
| |
Jens Axel Søgaard (18-01-2006)
| Kommentar Fra : Jens Axel Søgaard |
Dato : 18-01-06 22:44 |
|
Martin Christiansen wrote:
> "Kim Jensen" <kim@_NOSPAM_litewerx.dk> skrev i en meddelelse
> news:43ceadf5$0>
>
>>Nu misforstår jeg måske din pseudokode her, men hvis man har en straight
>>(5 kort), så vil man da aldrig skulle bruge en "kicker" til at afgøre
>>noget, da dette i så fald ville være et 6. kort (og det bruges ikke).
>
> Jeg tror du tager fejl, for i Texas Hold'em kan man komme ud for, at
> straight'en befinder sig i de fælles 5 kort på bordet (meget sjældent,
> ganske vist!). Vinderen er da den, som har det højeste kort på hånden
> ('Kicker'). Eller tager jeg fejl???
Ja du gør - udfra alle kort finder man den bedste hånd (a 5 kort)
for hver spiller. Derefter sammenlignes de to bedstehænder. Øvrige
kort er ligegyldige.
--
Jens Axel Søgaard
| |
Martin Christiansen (23-01-2006)
| Kommentar Fra : Martin Christiansen |
Dato : 23-01-06 23:09 |
|
"Jens Axel Søgaard" <usenet@soegaard.net> skrev i en meddelelse
news:43ceb68d$0$38677$edfadb0f@dread12.news.tele.dk...
>
> Ja du gør - udfra alle kort finder man den bedste hånd (a 5 kort)
> for hver spiller. Derefter sammenlignes de to bedstehænder. Øvrige
> kort er ligegyldige.
>
Tak, Jens, for en god og rigtig forklaring. Jeg siger mange tak til alle for
de inspirerende og opklarende indlæg.
| |
Thomas S (18-01-2006)
| Kommentar Fra : Thomas S |
Dato : 18-01-06 22:42 |
|
Martin Christiansen wrote:
> "Kim Jensen" <kim@_NOSPAM_litewerx.dk> skrev i en meddelelse
> news:43ceadf5$0>
> >
> > Nu misforstår jeg måske din pseudokode her, men hvis man har en straight
> > (5 kort), så vil man da aldrig skulle bruge en "kicker" til at afgøre
> > noget, da dette i så fald ville være et 6. kort (og det bruges ikke).
> >
>
>
> Jeg tror du tager fejl, for i Texas Hold'em kan man komme ud for, at
> straight'en befinder sig i de fælles 5 kort på bordet (meget sjældent,
> ganske vist!). Vinderen er da den, som har det højeste kort på hånden
> ('Kicker'). Eller tager jeg fejl???
Du tager fejl. En hånd i poker består af fem kort - præcis fem kort.
I den givne situation vil puljen blive delt mellem alle spillere, der
er med til slut. (Forudsat at straighten på bordet er den højeste
kombination af alle kort, altså at der ikke er en, der sidder med et
kort på hånden, der gør straighten højere eller gør den til en
straight flush). Sjette og syvende kort tæller aldrig, heller ikke
selv om de begge er på hånden.
--
mvh
Thomas S
| |
|
|