 |
AutoHotkey Community Wir helfen uns gegenseitig aus der Patsche
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
asox
Anmeldedatum: 04.07.2008 Beiträge: 2
|
Verfasst am: Fr Jul 04, 2008 1:10 pm Titel: Textteile aus Textdatei auslesen und in Zahlen umwandeln ? |
|
|
Hallo !
Vorweg, ich bin Anfänger (vor 2 Jahren mal ein kleines Script geschrieben), und möchte aus einer Textdatei Textteile auslesen, teilweise die Zahlen ins Zahlenformat konvertieren, und dann damit rechnen.
Denke mal, das was ich damit bezwecken will werde ich nie schaffen, aber bitte euch um Hilfe und Anfangsbeispiele, daß ich dann vielleicht selbst irgenswie weiterkomme:
Es handelt sich um Poker:
Ich habe eine Pokerhistorie im Textvormat.
Dateiname z.b. 123456.live
Diese sieht z.b. so aus:
Game #7192085770 starts.
#Game No : 7192085770
***** Hand History for Game 7192085770 *****
$5/$10 USD Texas Hold'em - Friday, July 04, 06:43:14 ET 2008
Table Jackpot #1410075 (6 max) (Real Money)
Seat 3 is the button
Total number of players : 6
Seat 1: holden433 ( $330.25 USD )
Seat 2: smellsfishyhere ( $143.40 USD )
Seat 3: Laci112 ( $861.75 USD )
Seat 4: ilovetow1n ( $383.75 USD )
Seat 5: mrdemut ( $287.50 USD )
Seat 6: kaltfront ( $144.50 USD )
ilovetow1n posts small blind [$2 USD].
mrdemut posts big blind [$5 USD].
** Dealing down cards **
kaltfront raises [$10 USD]
holden433 calls [$10 USD]
smellsfishyhere calls [$10 USD]
Laci112 calls [$10 USD]
ilovetow1n folds
mrdemut folds
** Dealing Flop ** [ Qs, 3d, 2h ]
kaltfront bets [$5 USD]
holden433 calls [$5 USD]
smellsfishyhere folds
Laci112 calls [$5 USD]
** Dealing Turn ** [ 9h ]
kaltfront bets [$10 USD]
holden433 calls [$10 USD]
Laci112 calls [$10 USD]
** Dealing River ** [ 4c ]
kaltfront bets [$10 USD]
holden433 folds
Laci112 folds
kaltfront does not show cards.
The time at which hand ended:Jul 04 2008 06:44 ET
kaltfront wins $98.50 USD
Beispiel:
Ich möchte die Spielernamen, die unter Seat 1:;Seat 2 usw. in je eine Variable einlesen
Dann möchte ich nun den Betrag, der z.b. bei Seat 1: Holden433 steht ($330.25) in eine Variable einlesen, und so konvertieren, daß ich dann damit rechnen kann.
Weiters möchte ich dann jede Zeile, in der Holden433 bets, calls oder raised (also überrall, wo er Geld in den Pot bringt) ebenfalls die Beträge einlesen, und diese dann von seinem Startbetrag abziehen.
Endergebnis sollte sein:
Seat 1: Spielername:Anfangskapital:Endkapital
Seat 2: Spielername:Anfangskapital:Endkapital
In späterer Folge will ich dann auch noch die Potgröße errechnen, oder wie viele Spieler mitgegangen sind (kein fold), aber dies wird dann ja ähnlich funktionieren.
Ein Problem ist vielleicht noch, daß diese Datei live geschrieben wird, so daß immer wieder eine Zeile dazukommt, bis eben xxx wins xxxxx kommt
Dann beginnt eine neue Hand, diese Datei wird gelöscht, und es entsteht wieder eine Datei mit anderer Bezeichnung z.b. 123457.live, aus der ich wieder diese Daten auslesen will
Wahrscheinlich wird das alles zu kompliziert für einen Anfänger, aber vielleicht kann mir ja doch jemand weiterhelfen
Ziel ist es mit diesen Werten dann weiterzurechnen, wie z.b.
Pottodds errechnen=Höhe des Pottes/Höhe des zu callenden Betrages oder Auszurechen, wie hoch ein gewisser Anteil vom Pot ist.
Ich will einfach bestimmte Werte aus der Datei errechnen und in irgendwelche Felder rausschreiben (z.b. Excel) um dann mit diesen Werten selbst weiterrechnen zu können, oder diese wieder aus den Feldern in ein anderes Script einlesen.
Ich weiß, es gibt bereits viele Pokerscripts, aber keines berechnet eigentlich genau das, was ich will.
Wäre auch bereit einen angemessen Betrag dafür zu zahlen, wenn sich jemand die Zeit nehmen will, so ein Script zu schreiben, bei dem ich dann die gewünschten Werte selbst weiter verarbeiten kann. (Denke mal für mich als Anfänger ist dieses Script wohl zu schwierig)
Bitte sich dann unter asox@gmx.net (hoffe das ist hier erlaubt) zu melden, um weiteres zu besprechen
Danke für Eure Hilfe
asox |
|
| Nach oben |
|
 |
denick
Anmeldedatum: 15.09.2006 Beiträge: 1201 Wohnort: Berlin
|
Verfasst am: Sa Jul 05, 2008 9:24 am Titel: |
|
|
Moin,
mal für den Anfang:
Wenn Du das | Code: | Game #7192085770 starts.
#Game No : 7192085770
***** Hand History for Game 7192085770 *****
$5/$10 USD Texas Hold'em - Friday, July 04, 06:43:14 ET 2008
Table Jackpot #1410075 (6 max) (Real Money)
Seat 3 is the button
Total number of players : 6
Seat 1: holden433 ( $330.25 USD )
Seat 2: smellsfishyhere ( $143.40 USD )
Seat 3: Laci112 ( $861.75 USD )
Seat 4: ilovetow1n ( $383.75 USD )
Seat 5: mrdemut ( $287.50 USD )
Seat 6: kaltfront ( $144.50 USD )
ilovetow1n posts small blind [$2 USD].
mrdemut posts big blind [$5 USD].
** Dealing down cards **
kaltfront raises [$10 USD]
holden433 calls [$10 USD]
smellsfishyhere calls [$10 USD]
Laci112 calls [$10 USD]
ilovetow1n folds
mrdemut folds
** Dealing Flop ** [ Qs, 3d, 2h ]
kaltfront bets [$5 USD]
holden433 calls [$5 USD]
smellsfishyhere folds
Laci112 calls [$5 USD]
** Dealing Turn ** [ 9h ]
kaltfront bets [$10 USD]
holden433 calls [$10 USD]
Laci112 calls [$10 USD]
** Dealing River ** [ 4c ]
kaltfront bets [$10 USD]
holden433 folds
Laci112 folds
kaltfront does not show cards.
The time at which hand ended:Jul 04 2008 06:44 ET
kaltfront wins $98.50 USD | als Datei Test.live speicherst und im selben Verzeichnis dieses Skript | Code: | #NoEnv
SetFormat, Float, 1.2
Datei := A_ScriptDir . "\Test.live"
ZZ := 1
Stage := 0
Stage1 := "is the Button"
Stage2 := "Total number of players : "
Stage3 := "Seat "
Stage4 := "The time at which hand ended:"
Spieler := ""
Pot := 0.00
Gui, Margin, 10, 10
Options := "Section xm ym"
Loop, 6 {
Gui, Font, Bold
Gui, Add, Text, % Options . " w120 Center vText" . A_Index, % "Spieler " . A_Index
Gui, Font,
Gui, Add, Edit, % "xp y+3 wp Readonly Center vName" . A_index
Gui, Add, Edit, % "xp y+3 wp Readonly Center vBetrag" . A_index
Gui, Add, Edit, % "xp y+3 wp Readonly Center cGreen vStatus" . A_index
Options := A_Index = 3 ? "Section xm y+18" : "ys x+10"
}
Gui, Add, Text, x140 y+18 wp Center, Pot
Gui, Add, Edit, xp y+3 wp vPot Center, 0.00
Gui, Show, , Texas Hold'em
SetTimer, ReadFile, On
Return
GuiClose:
GuiEscape:
ExitApp
ReadFile:
FileReadLine, Zeile, %Datei%, %ZZ%
If ErrorLevel
Return
ZZ++
If (Stage = 0) {
If InStr(Zeile, Stage1) {
RegExMatch(Zeile, "(\d+)", RX)
Aktiv := RX
Gui, Font, cRed Bold
GuiControl, Font, Text%Aktiv%
Gui, Font
Stage := 1
}
}
If (Stage = 1) {
If (SubStr(Zeile, 1, Strlen(Stage2)) = Stage2) {
SpielerG := SubStr(Zeile, Strlen(Stage2) + 1)
Stage := 2
}
Return
}
If (Stage = 2) {
If (SubStr(Zeile, 1, Strlen(Stage3)) = Stage3) {
RegExMatch(Zeile, Stage3 . "(\d+):\s+([\w]+)\s+[\D]+([\d.]+)", RX)
I := RX1
Name%I% := RX2
GuiControl, , Name%I%, % Name%I%
Betrag%I% := RX3
GuiControl, , Betrag%I%, % Betrag%I%
Spieler .= RX2 . "|"
If (I = SpielerG) {
Stage := 3
Spieler := SubStr(Spieler, 1, -1)
Sleep, 2000
SetTimer, ReadFile, 2000
}
}
Return
}
If (Stage = 3) {
If (SubStr(Zeile, 1, 2) = "**") {
Return
}
If (SubStr(Zeile, 1, Strlen(Stage4)) = Stage4) {
Stage := 4
Return
}
StringSplit, F, Zeile, %A_Space%
I := 0
Loop, Parse, Spieler, |
{
If (F1 = A_LoopField) {
I := A_Index
Break
}
}
If (I = 0) {
Return
}
Gui, Font
GuiControl, Font, Text%Aktiv%
Aktiv := I
Gui, Font, cRed Bold
GuiControl, Font, Text%Aktiv%
Gui, Font
If InStr(Zeile, "folds") {
Gui, Font, cRed Bold
GuiControl, Font, Status%I%
GuiControl, , Status%I%, Out
Return
}
If RegExMatch(Zeile, "\$(\d+)\s+", RX) {
Betrag%I% -= RX1
Pot += RX1
GuiControl, , Betrag%I%, % Betrag%I%
GuiControl, , Status%I%, %F2%
GuiControl, , Pot, %Pot%
}
Return
}
If (Stage = 4) {
StringSplit, F, Zeile, %A_Space%
I := 0
Loop, Parse, Spieler, |
{
If (F1 = A_LoopField) {
I := A_Index
Break
}
}
If (I = 0) {
Return
}
If RegExMatch(Zeile, "\$([\d.]+)\s+", RX) {
Betrag%I% += RX1
Gui, Font, cBlue Bold
GuiControl, Font, Text%I%
GuiControl, , Betrag%I%, % Betrag%I%
Gui, Font, cBlue Normal
GuiControl, Font, Status%I%
GuiControl, , Status%I%, Won $%RX1%
}
}
Return | ausführst, kannst Du ihnen zusehen!  _________________ Hilfe zur Hilfe
(de)nick |
|
| Nach oben |
|
 |
asox
Anmeldedatum: 04.07.2008 Beiträge: 2
|
Verfasst am: Sa Jul 05, 2008 12:42 pm Titel: |
|
|
Hallo !
Ja, so ähnlich soll es funktionieren, das kommt im Prinzip so hin, nur das mehr Werte angezeigt werden müssen z.b. TischNr. ,Wie viele Spieler haben etwas in den Pot einbezahlt (ausser small blind und bigblind),Höhe Bigblind (10) und samllblind (5) Nochanzahl der Spieler,Größe der Bet, Pottodds (aktueller Pott/größe der Bet) usw., aber ich schätze das wäre kein Problem.
Weiters gibt es bis zu 4 .live-Dateien (Also bis zu 4 Tische) gleichzeitig, deren Namen vorher nicht bekannt sind.(werden angelegt, sobald ein Tisch geöffnet wird, und haben immer die Nummer der aktuell gespielten Hand als Dateiname).Ist die Hand beendet, dann wird die Datei gelöscht, und es kommt die nächste .live.
Es müßte in dem bestimmten Verzeichnis danach gesucht werden, und danach die exestierenden .live (max 4) auf diese Art eingelesen werden.
Diese werden live geschrieben, das heißt nach jeder Action am Tisch kommt in der betreffenden Datei eine Zeile dazu, und die Werte müßten aktualisiert werden. Auch bräuchte ich diverse Eingabefelder, um Werte einzugeben, die zu diversen Berechnungen notwendig sind.
z.b. Berechnung:Stakepottrelation
2 Eingabefelder (Anzahl geschätzter Caller,Ergebniswert, auf den ich hin will)
Beispiel:Das Kapital des Spielers, das am niedristen ist / Ergebniswert/(Anzahl geschätzter caller+1)
Berechnungen auf diese Art sollen im Anzeigefenster möglich sein.
Die Formeln liefere natürlich ich.
Hatte eigentlich vor, die Werte livetime in Zellen einer Exceldatei zu schreiben, um dort die diversen Berechnungen durchzuführen (das könnte ich dann selbst machen ), aber wenn ich jemanden finden würde, der mir das Script mit den Berechnungen und der Ausgabe genau so macht, wie ich will, wäre das nicht nötig.
Durch die Weise, wie du die Ausgabe gestaltet hast, habe ich den Eindruck, daß du dich beim Pokern auskennst.
Wäre von Vorteil, da ich auch einen Wert hätte, der direkt in das Tischfenster des Pokerclients geschrieben werden soll (Setzhöhe), und dazu müßtest du dir eben die Pokersoftware installieren (keine Anmeldung erforderlich)
Wenn du Interesse (und Zeit) hast, das Script zu machen, dann melde dich bitte bei mir um auch finanziell einig zu werden.
Vorerst großen Danke für deine Bemühungen
Asox |
|
| Nach oben |
|
 |
denick
Anmeldedatum: 15.09.2006 Beiträge: 1201 Wohnort: Berlin
|
Verfasst am: Sa Jul 05, 2008 8:52 pm Titel: |
|
|
Moin asox,
tut mir leid, ich habe kein Interesse an Poker. Meine geheime Leidenschaft ist AHK. Ich denke, man kann damit fast Alles machen. Bis zu einem gewissen Grad will ich mir das beweisen. Mehr ist nicht drin, auch nicht für Chips!  _________________ Hilfe zur Hilfe
(de)nick |
|
| Nach oben |
|
 |
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|