2012-01-13 5 views
3

Je construis un logiciel pour iOS qui a besoin d'analyser les historiques de mains de poker. Comme je ne connais pas grand-chose à l'analyse syntaxique, j'espérais que quelqu'un pourrait me diriger dans la bonne direction, me diriger vers un tutoriel, ...Objective-C parser poker main histoire

J'ai commencé à briser la main de poker en lignes, puis J'ai commencé à traiter chaque ligne avec une fonction de chaîne. Mais maintenant j'ai vu qu'il y a des outils d'analyse disponibles pour lesquels je peux écrire une grammaire BNF. Donc, cela pourrait être la bonne voie à suivre si je veux atteindre la performance, non? Cependant, je ne sais rien sur les grammaires BNF, et comment les utiliser, ... Quelqu'un qui peut me diriger vers un tutoriel pour les débutants?

Ow, une histoire de main de poker ressemble à quelque chose comme ceci:

PokerStars Game #73611647630: Hold'em No Limit ($0.01/$0.02 USD) - 2012/01/10 17:15:42 CET [2012/01/10 11:15:42 ET] 
Table 'Joella VIII' 6-max Seat #1 is the button 
Seat 1: [email protected] ($0.85 in chips) 
Seat 2: Pet21 ($1.96 in chips) 
Seat 3: derphurp ($2.79 in chips) 
Seat 4: -M-A-R-K-qaz ($0.90 in chips) 
Seat 5: Rolle55 ($2.47 in chips) 
Seat 6: SanderDecler ($2 in chips) 
Pet21: posts small blind $0.01 
derphurp: posts big blind $0.02 
*** HOLE CARDS *** 
Dealt to SanderDecler [Jc 2s] 
-M-A-R-K-qaz: folds 
Rolle55: calls $0.02 
SanderDecler: folds 
[email protected]: folds 
Pet21: folds 
derphurp: checks 
*** FLOP *** [2h 3s As] 
derphurp: checks 
Rolle55: checks 
*** TURN *** [2h 3s As] [Kh] 
derphurp: bets $0.02 
Rolle55: calls $0.02 
*** RIVER *** [2h 3s As Kh] [5d] 
derphurp: bets $0.02 
Rolle55: raises $0.02 to $0.04 
derphurp: raises $0.16 to $0.20 
Rolle55: raises $0.16 to $0.36 
derphurp: folds 
Uncalled bet ($0.16) returned to Rolle55 
Rolle55 collected $0.47 from pot 
*** SUMMARY *** 
Total pot $0.49 | Rake $0.02 
Board [2h 3s As Kh 5d] 
Seat 1: [email protected] (button) folded before Flop (didn't bet) 
Seat 2: Pet21 (small blind) folded before Flop 
Seat 3: derphurp (big blind) folded on the River 
Seat 4: -M-A-R-K-qaz folded before Flop (didn't bet) 
Seat 5: Rolle55 collected ($0.47) 
Seat 6: SanderDecler folded before Flop (didn't bet) 

Répondre

2

A BNF serait le moyen idéal de le faire ... si vous avez un temps limité et ne veulent pas apprendre trop , puis-je suggérer une solution rapide et sale. Utilisez des expressions régulières et effectuez un changement en fonction de celui qui correspond.