Разбор в Ruby (на Rails) - PullRequest
       24

Разбор в Ruby (на Rails)

4 голосов
/ 25 апреля 2009

Я хочу написать приложение Rails, чтобы помочь мне с моим онлайн-покером. Я играю на PokerStars, и для каждой сыгранной руки есть текстовые данные. Формат такой:

PokerStars Game #27457662450: Tournament #157033867, Freeroll  Hold'em No Limit - Level IV (50/100) - 2009/04/24 20:39:44 ET
Table '157033867 830' 9-max Seat #1 is the button
Seat 1: DortheaV (7624 in chips) 
Seat 2: Currly234 (3016 in chips) 
Seat 3: paolilla (3086 in chips) 
Seat 4: triumph888 (1571 in chips) is sitting out
Seat 5: Minchausti (1185 in chips) is sitting out
Seat 6: madmike11847 (1195 in chips) is sitting out
Seat 7: alamodey (4038 in chips) 
Seat 8: whiskerbob (3365 in chips) 
Seat 9: SHpic76 (1115 in chips) is sitting out
DortheaV: posts the ante 10
Currly234: posts the ante 10
paolilla: posts the ante 10
triumph888: posts the ante 10
Minchausti: posts the ante 10
madmike11847: posts the ante 10
alamodey: posts the ante 10
whiskerbob: posts the ante 10
SHpic76: posts the ante 10
Currly234: posts small blind 50
paolilla: posts big blind 100
*** HOLE CARDS ***
Dealt to alamodey [8s Ks]
triumph888: folds 
Minchausti: folds 
madmike11847: folds 
alamodey: calls 100
whiskerbob: folds 
SHpic76: folds 
DortheaV: folds 
Currly234: calls 50
paolilla: checks 
*** FLOP *** [5c 4h 6d]
Currly234: checks 
paolilla: checks 
alamodey: bets 234
Currly234: folds 
paolilla: folds 
Uncalled bet (234) returned to alamodey
alamodey collected 390 from pot
alamodey: doesn't show hand 
*** SUMMARY ***
Total pot 390 | Rake 0 
Board [5c 4h 6d]
Seat 1: DortheaV (button) folded before Flop (didn't bet)
Seat 2: Currly234 (small blind) folded on the Flop
Seat 3: paolilla (big blind) folded on the Flop
Seat 4: triumph888 folded before Flop (didn't bet)
Seat 5: Minchausti folded before Flop (didn't bet)
Seat 6: madmike11847 folded before Flop (didn't bet)
Seat 7: alamodey collected (390)
Seat 8: whiskerbob folded before Flop (didn't bet)
Seat 9: SHpic76 folded before Flop (didn't bet)

Существуют ли какие-либо библиотеки для анализа Ruby или я должен сделать это вручную и хакерски?

Ответы [ 4 ]

2 голосов
/ 25 апреля 2009

Возможно, вы захотите взглянуть на Treetop , грамматику синтаксического анализа для синтаксического анализатора Ruby.

2 голосов
/ 25 апреля 2009

Это звучит как работа для Regex !. Я сомневаюсь, что использование какой-либо библиотеки облегчит анализ, так как это довольно нестандартный формат, который вам просто придется взломать.

1 голос
/ 25 апреля 2009

Также, если вы просто хотите получить данные, вы должны просто проверить PokerTracker . PokerTracker хранит 100% информации о раздаче, имеет хорошо документированную схему и открытую базу данных PostgreSQL.

1 голос
/ 25 апреля 2009

Ragel очень хорошо для написания парсера. Например. http-парсер Mongrel генерируется с помощью ragel.

...