Gå till innehåll

Utveckla HH-parser för forumet


Hjort

Recommended Posts

Jag tänkte kolla om vi inte här på forumet kunde utveckla en applikation för att dels parsa handhistorier från olika siter och dels göra de tråkiga bitarna så lätta som möjligt för de som ska posta handhistorier.

 

Alltså en applikation som dels tar in en handhistorie och skickar ut den i forumvänligtformat och som också ställer de standardfrågor som kan behövas i sammanhanget.

 

Ett första steg är att ta reda på hur vi som läsare vill att en handhistoria ska se ut. Jag tänkte vi kunde jobba med det i den här tråden.

Länk till kommentar
Dela på andra webbplatser

Jag håller just på med detta, började för ett par dagar sedan.

Parsa olika HH är inte helt trivialt om det ska göras ordentligt men detta kommer bli kanonbra.

24h är först ut iaf, kommer vara fält så man ska skriva in frågor/antagande på olika gator, sen allt som finns i bisonbisons converter.

 

Även en oddsräknare så man ser vilken hand som är favorit på olika gator. givetvis valbart om man inte vill se FIs hand innan slutet. (kommer kanske ta bort lite av frågeställningarna men det är nog inte fel)

 

Stöd för phpbb o ubb är tänkt iaf.

 

Skrivs gör det i .NET så jag hade behövt stabil hosting lite längre fram för jag tror det kan bli ganska populärt även för andra utomstående pf.nu dock är det givetvis primary focus...

 

Ska ta o läsa den andra tråden nu så jag kan snappa upp ideér.

Länk till kommentar
Dela på andra webbplatser

Jag håller just på med detta, började för ett par dagar sedan.

Parsa olika HH är inte helt trivialt om det ska göras ordentligt men detta kommer bli kanonbra.

Låter jättebra att någon som vet vad han gör kring en kompilerare satt igång.

 

Hur "privat" tänkte du vara med koden om man får fråga? Nu är ju jag inte så skarp på programering, men det finns ju andra här på forumet som kan tänkas hjälpa till.

 

24h är först ut iaf, kommer vara fält så man ska skriva in frågor/antagande på olika gator, sen allt som finns i bisonbisons converter.

Det är ju precis något sånt jag tänker mig.

 

Även en oddsräknare så man ser vilken hand som är favorit på olika gator. givetvis valbart om man inte vill se FIs hand innan slutet. (kommer kanske ta bort lite av frågeställningarna men det är nog inte fel)

Har funderat lite på den där grejen. Jag tror mest det är användbart om man kan sätta FI på en handdistribution eftersom det blir så väldigt resultatsorienterat om man bara går på handen som motståndaren faktiskt hade. Över lag så kommer det nog bli en feature som är väldigt tung att implementera.

 

Skrivs gör det i .NET så jag hade behövt stabil hosting lite längre fram för jag tror det kan bli ganska populärt även för andra utomstående pf.nu dock är det givetvis primary focus...

En sån parser borde ju kunna hostas här på forumet.

Länk till kommentar
Dela på andra webbplatser

Grejen är att skriva applikationen så generell som möjlig så man kan koppla på alla handhistories utan att behöva koda om något utan bara ändra xml-mallar för att hämta ut info. Så annat folk än jag kan skriva xml-mallar för diverse handhistories..

 

Sen kan man ju skriva ut det hur man vill från alla handhistories (valbart tom)

 

feature som är väldigt tung att implementera.

 

Njea, inte direkt. Vanlig odds räknare är simpelt, tror såsen för pokerstove är tillgänglig så det hade tom hade gått o göra det... men det ligger ett tag fram i tiden då det lär vara lite meck o få allt annat att fungera först.

Länk till kommentar
Dela på andra webbplatser

Grejen är att skriva applikationen så generell som möjlig så man kan koppla på alla handhistories utan att behöva koda om något utan bara ändra xml-mallar för att hämta ut info.

Eh, ja visst? ;-)

 

Med tanke på alla siter det finns så känns det som det kommer finnas jobb ett tag framöver bara med de olika texasformerna. Så det skulle ju vara jättebra om det går att göra så modulärt att folk kan hoppa in och koda bara sånt som de är intresserade av. Exempelvis en xml-mall för PLO-omaha på paradise.

Länk till kommentar
Dela på andra webbplatser

jezaja, körs den på .net så kommer det få bli via något WebService interface på en extern maskin, eftersom webhotellet är LAMP-uppsättning.

 

Ser egentligen inga problem med det heller, bara nån kan implementera SOAP och XML meddelandena så borde det vara löst. :)

 

Sen vore det trevligt om vi har nån som kan ASN.1, jag har jobbat lite med det tidigare i en Perl implementation, men nån annan är säkert mer uppdaterad på det än vad jag är.

 

Alt. kör man XML och DTD, och då har ju PHP en rätt trevlig toolbox för XML. :)

 

- QoS

Länk till kommentar
Dela på andra webbplatser

Jag började på en parser för ett tag sen men den ligger på is sedan ett tag. Kom lite annat emellan. Jag kom så långt iaf så att jag kan dra ut all information från Royal Vegas ring gamesHH (Samma för alla Prima?).

[Edit] Kan tillägga att min converter skulle kunna hantera flera filer samtidigt och inte bara en enstaka hand history. [/Edit]

 

Programmet är skrivet i java så man borde ju kunna omvandla det från en fristående applikation till en applet. Nackdelen med det är ju att parsern inte kommer att exekveras på serversidan utan appleten måste laddas ner till användaren, vilket kan bli lite segt för modemanvändarna.

Länk till kommentar
Dela på andra webbplatser

Japp hårdkoda fungerar ju men ändras något så tar det en stund o fixa till bröten för alla.. lyckas jag göra en bra mall med lite regexp som man kan testa på HH o sen ge mig mallen så kan ju fler än en person göra jobbet.

Det som är tanken iaf, du kanske är intresserad av att göra ett par mallar Sharespear?

Länk till kommentar
Dela på andra webbplatser

Jag har skissat lite på en design i photoshop, men jag är bra en person och behöver lite tips.. vilka alternativ tcker ni man ska kunna välja? man hade ju kunnat välja saker i all oändligthet, men vissa saker är ju viktigare än andra..

 

http://jezaja.quakeworld.nu/poker/hc.gif

 

sånt som jag kmmit på att jag har missat är väl kanske att man ska kunna välja mellan att kalla FI för sina riktiga SN/Kalla dem UTG, CO, SB osv.

 

* LP på stora bilden :) - QoS *

Länk till kommentar
Dela på andra webbplatser

Hej

 

Jag skulle kunna hjälpa till med detta. Till vardags pysslar jag bland annat med att utveckla mjukvara för parsning av text där strukturen inte är given på förhand, så jag har en hel del erfarenhet av detta.

 

Mitt första intryck är att mallar eller liknande är fel väg att gå. Det är bara snäppet bättre än hårdkodning, egentligen flyttar man bara problemet från ett ställe till ett annat. Istället för att underhålla programmet måste man underhålla en uppsättning mallar. Min erfarenhet är att det är större risk att mallarna inte är korrekta än att en "intellegent parser" gissar fel. Men när jag har använt "mall-approachen" har det handlat om flera hundra stycken så det är klart risken är större då.

 

Dessutom finns det otroligt många antaganden som ett program kan göra om en HH från början, då den följer en väldigt specifik struktur som är given av spelets regler. Det känns som det borde gå att göra en parser som klarar av i princip vilken HH som helst som input. I värsta fall kan man tvingas ange ett par "hintar" för parsern (i stil med ett par ja/nej-options), men jag är tveksam till att ens det behövs. I vilket fall är det bättre än manuellt mall-pillande.

 

Tyvärr spelar jag inte poker online, så jag har inte tillgång till några hand histories så jag vet inte med 100% att mina antaganden stämmer. Jag har försökt leta lite med google och det jag hittat verkar oproblematiskt, men som sagt jag behöver mycket mer data för att kunna göra en vettig bedömning.

 

Om ni är intresserade skulle jag kunna fixa detta. Jag skulle kunna göra detta i vilket programmeringsspråk som helst i princip men LAMP är det jag har mest erfarenhet av. Prestanda spelar ingen roll här, ingen kommer bry sig ifall det tar 15 eller 50 ms att parsa. Jag gissar dock att webservern kör mod_php, då kommer PHP förmodligen vara snabbare än något annat eftersom det blir typ noll overhead.

 

Jag gissar att det skulle ta en vecka eller något sånt att göra. Merparten av jobbet kommer bestå av att skriva test cases, ett enformigt och tidskrävande jobb men man spar in detta i förkortad utvecklingstid i slutändan. Detta bygger dock på att någon förser mig med hand histories från alla olika sajter som skall stödjas. Ju fler HH:s man utgår från desto större chans att parsern klarar av en ny "oprövad" HH från en ny sajt.

Länk till kommentar
Dela på andra webbplatser

Nice!

 

Har precis fått lite tid över i cirka en månad så vi får väl se vad vi kan slänga ihop. Ska dock vara bortrest hela tiden men har förmodligen laptop o internetaccess så det är inga problem.

 

Har samlat ihop lite HHs men inte gjort någon produktivt kodande ännu.

redrik: Dra in mig på icq/msn/aim: 7471115/jezaja snabela dtek.chalmers/jezaja

 

 

Kan skapa ett shellkonto på en server så vi kan leka tillsammans kanske?

LAMP fungerar för mig, utvecklat, kört, installerat för det innan så det är lugnt.

 

Kanske får reverta min idé med regexp-mallar om detta fungerar bättre, men det återstår ju att se :)

Länk till kommentar
Dela på andra webbplatser

  • 4 weeks later...

Ok nu har jag satt igång att pula lite med en PHP-parser för HH som ska inrikta sig till POKERFORUM.NU. Hittils har jag färskat upp mina regexp kunskaper och börjat med lite enkelt som nick-highligt, byta ut kort som tex 5h mot 5 :heart: , ska även fixa färger för call, raise, check, fold. Finesser kommer jag väl på under arbetet. Om ni har några tankar och ideér så säg till!

 

Ska försöka få en fin struktur på det också så att det blir lättöverskådligt, med möjlighet att lägga till kommentarer etc (efter att ha blivit inspirerad av lfx fina bild). Stöd för de flesta populära pokersiter är målet självfallet, det jag börjat med nu är för multipoker eftersom jag hade en HH tillhands därifrån ;)

 

Tar med mig laptopen till fjällen nästa vecka så man har något att koppla av med efter en hård dag i backen :)

 

Exempel på hur det ser ut just nu:

 

#Game No : 1641401391

 

$0.5/$1 FL Hold'Em (Multipoker)

 

 

Total number of players : 10

Seat 1: TeethOnCurb ( $31 ) (SB)

Seat 3: JagManXJS ( $4.5 )

Seat 4: kumbiya ( $51.88 )

Seat 5: uberFoo ( $49.5 )

Seat 7: redina ( $21.25 )

Seat 8: SmokinJoe144 ( $38.37 )

Seat 10: pddave ( $19 )

Seat 2: zkibit ( $40.75 ) (BB)

Seat 9: valpisces ( $24.25 ) (Button)

Seat 6: slickrick380 ( $20.5 )

 

TeethOnCurb posts small blind [$0.25].

zkibit posts big blind [$0.5].

 

** Preflop **

Dealt to zkibit [ 5 :spade: 9 :spade: ]

JagManXJS folds.

kumbiya calls [$0.5].

uberFoo folds.

slickrick380 calls [$0.5].

redina folds.

SmokinJoe144 folds.

valpisces folds.

TeethOnCurb folds.

zkibit checks.

 

** Dealing Flop ** [ 5 :heart: 5 :diamond: , 9 :diamond:]

 

zkibit checks.

kumbiya bets [$0.5].

slickrick380 calls [$0.5].

zkibit raises [$1].

kumbiya calls [$0.5].

slickrick380 calls [$0.5].

 

** Dealing Turn ** [ K :diamond:]

 

zkibit checks.

kumbiya bets [$1].

slickrick380 raises [$2].

zkibit raises [$3].

kumbiya calls [$2].

slickrick380 calls [$1].

 

** Dealing River ** [ 2 :diamond:]

 

zkibit bets [$1].

kumbiya calls [$1].

slickrick380 calls [$1].

zkibit shows [ 5 :spade: , 9 :spade: ] a full house, Fives full of nines.

kumbiya doesn't show [ 9 :heart: 6 :heart: ] two pairs, nines and fives.

slickrick380 doesn't show [ 4 :club: , 3 :diamond: ] a flush, king high.

zkibit wins $16 from the main pot with a full house, Fives full of nines.

 

----

 

Tar gärna emot förslag! :)

Länk till kommentar
Dela på andra webbplatser

Om ni ska implementera något med Web Services och SOAP, så kan jag kanske vara lite till assistans, åtminstone som bollplank. Jag jobbar just nu med att skapa en standard för web services i simuleringsvärlden... egentligen om dess vara eller icke vara i det sammanhanget. Prestandan blir ju inte så värst bra... bla bla bla ;-)

Länk till kommentar
Dela på andra webbplatser

bzkt, snyggt jobbat! :)

 

Under nästa vecka kommer jag änga mycket tid och energi åt flytten, därför kommer vi inte införa nya fetures förrän tidigaste om ca. 10 dagar.

 

Vore kul om vi kan titta på koden tillsammans längre fram och få lite input från t ex Hjort som har lite idéer kring det hela. :)

 

- QoS

Länk till kommentar
Dela på andra webbplatser

Fin mall bzkt.

Enda jag saknar är pottstorleken vid diverse gator samt att visa alla öppna kort vid varje gata. (T ex [Kc Qc Jc][Tc] istället för bara [Tc] på turn)

Jag tycker även att SB/BB/dealer upplägget är lite yrt, vore bättre om du bara hade inköpet längst upp och sedan stod det vem som var SB/BB/dealer nedanför.

 

Jobba på grappar! :)

Länk till kommentar
Dela på andra webbplatser

Använder ni XML för mallarna?

Jag kodar min parser i PHP för att den enkelt ska vara tillänglig åt användare genom att helt enkelt skriva in sin HH, sedan parsar den allt fint åt en. Koden består till 99% av en jävla massa regexp-replaces :)

 

Fin mall bzkt.

Enda jag saknar är pottstorleken vid diverse gator samt att visa alla öppna kort vid varje gata. (T ex [Kc Qc Jc][Tc] istället för bara [Tc] på turn)

Jag tycker även att SB/BB/dealer upplägget är lite yrt, vore bättre om du bara hade inköpet längst upp och sedan stod det vem som var SB/BB/dealer nedanför.

 

Jobba på grappar! :)

 

Tack för feedbacken. Som sagt har jag precis börjat jobba med den (började igår), men det du säger är helt sant angående korten och potstorleken. Jag håller på att försöka få att den skriver ut seat 1-10 i ordning, det blev dock lite krångligare än jag trodde. :)

Länk till kommentar
Dela på andra webbplatser

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gäst
Svara i detta ämne...

×   Du har klistrat in innehåll med formatering.   Ta bort formatering

  Endast 75 max uttryckssymboler är tillåtna.

×   Din länk har automatiskt bäddats in.   Visa som länk istället

×   Ditt tidigare innehåll har återställts.   Rensa redigerare

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Skapa nytt...