|  | 		    
					
        
         
          
         
	
          | |  | 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
 
 
 
 |  |  | 
 |  |