2012-01-13 9 views
3

私は、ポーカーハンド履歴を解析する必要があるiOS用のソフトウェアをいくつかビルドしています。私はパースについて多くのことを知らないので、私は誰かが正しい方向に私を指すことができることを願って、チュートリアルを教えてください...Objective-Cパーサーポーカーハンド履歴

私はラインでポーカーの手を壊し始めた私は文字列関数で各行を処理し始めました。しかし、今私はBNF文法を書くことができる構文解析ツールがあることを知りました。だから私はパフォーマンスを達成したいなら、これは正しい方法かもしれませんね。しかし、私はBNF文法とその使い方について何も知らない...初心者のためのチュートリアルを教えてくれる人はいますか?

オウは、ポーカーハンド履歴は次のようになります。

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) 

答えて

2

あなたは時間が限られているし、あまり勉強したくない場合はBNFは、しかし...これを実行するための理想的な方法だろう、私は迅速かつ汚れた解決策を提案するかもしれません。正規表現を使用し、一致するものに基づいてスイッチを実行します。