Pokerlog, kaarten omzetten naar plaatjes

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mike Schoneveld

Mike Schoneveld

08/06/2010 15:01:00
Quote Anchor link
Goedendag,

Ik zit met het volgende probleem, ik ben geen held in reguliere expressies dus ik vraag het hier maar even.
Ik heb een pokerlog met daarin de volgende weergave van de kaarten "[Ad 8c 3s]". Deze 3 kaarten wil ik omzetten naar plaatjes, zodat de echte speelkaarten zichtbaar zijn.

Voorbeeld log:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
    PokerStars Game #45202943340:  Hold'em No Limit ($0.10/$0.25 USD) - 2010/06/07 22:52:44 CET [2010/06/07 16:52:44 ET]
    Table 'Fogelin VI' 6-max Seat #6 is the button
    Seat 1: BosnaDelight ($24.61 in chips)
    Seat 2: Hooiplukker ($25 in chips)
    Seat 4: Sedoy_sakh ($32.22 in chips)
    Seat 6: Bernhard1954 ($8.38 in chips)
    BosnaDelight: posts small blind $0.10
    Hooiplukker: posts big blind $0.25
    *** HOLE CARDS ***
    Dealt to Hooiplukker [4h Kd]
    Sedoy_sakh: folds
    Bernhard1954: folds
    BosnaDelight: calls $0.15
    Hooiplukker: raises $0.75 to $1
    BosnaDelight: calls $0.75
    *** FLOP *** [Ad 8c 3s]
    BosnaDelight: checks
    Hooiplukker: bets $1
    BosnaDelight: folds
    Uncalled bet ($1) returned to Hooiplukker
    Hooiplukker collected $1.90 from pot
    *** SUMMARY ***
    Total pot $2 | Rake $0.10
    Board [Ad 8c 3s]
    Seat 1: BosnaDelight (small blind) folded on the Flop
    Seat 2: Hooiplukker (big blind) collected ($1.90)
    Seat 4: Sedoy_sakh folded before Flop (didn't bet)
    Seat 6: Bernhard1954 (button) folded before Flop (didn't bet)


Ik hoop dat jullie mij kunnen helpen. Ik wil dus een parser maken die deze log verwerkt en alles tussen [ en ] omzet naar echte plaatjes.
 
PHP hulp

PHP hulp

08/05/2021 11:46:20
 
Mark L

Mark L

08/06/2010 16:02:33
Quote Anchor link
Hoe moet deze omgezet worden? En waar wil je dat deze op zoekt? Want als je tussen [] zoekt, dan heb je ook de tijd [2010/06/07 16:52:44 ET].
Heb je een specifiekere manier om dit te omschrijven?

Wil je dit trouwens gebruiken om bestaande logs om te zetten, of maak je deze logs nog steeds aan. Want anders kun je er misschien aan denken om deze logs anders op te stellen. misschien wel op een DB?
 
Peter Dorn

Peter Dorn

08/06/2010 16:07:00
Quote Anchor link
De datum/tijd kan uitgesloten worden met [a-zA-Z0-9][c|d|h|s|]
 
Mike Schoneveld

Mike Schoneveld

08/06/2010 18:38:51
Quote Anchor link
Ha heren, deze logs worden aangemaakt door PokerStars, dit is poker software om online mee te kunnen pokeren.

Dat met de datum tussen haakjes is inderdaad ook bijkomend probleem, daarom stel ik ook hier mijn vraag te kijken of jullie heir misschien een oplossing voor hebben.

Ik dacht aan alle spelkaarten in een array te gooien, maar dan moet er nog op 1 of andere manier gekeken worden of de waarde voorkomt in de array en tussen de 2 haakjes staan.
 
Mike Schoneveld

Mike Schoneveld

10/06/2010 15:43:33
Quote Anchor link
Aangezien niemand mij kon helpen ben ik zelf maar achter het antwoord aangegaan en ben tot hetvolgende gekomen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function parseCards($log) {

    preg_match_all("_\[(.*)]_", $log, $matches);
    
    foreach ($matches[1] as $match) {
        
        $cards = explode(" ", $match);
        
        $tmp = "";
        foreach ($cards as $card) {
            
            $img = $phpbb_root_path . "images/cards/" . strtolower($card) . ".gif";
            
            if (file_exists($img)) {
                $tmp .= "<img src=\"" . $img . "\" alt=\"" . $card . "\" />";
            }
        }
        if ($tmp != "") {
            $log = str_replace($match, $tmp, $log);
        }
    }
    return $log;
}
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.