PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [XP / VX] Texas Hold'em Poker Script (unfertig)



Cornix
03.10.2012, 17:55
Guten Tag,
vor einiger Zeit hatte ich einmal auf Anfrage damit begonnen ein kleines Poker Script in Ruby zu schreiben für die RPG-Maker XP und VX.
Hin und wieder, über die vergangenen Wochen, habe ich immer einmal hier und dort etwas ergänzt und erweitert.
Das Script selbst ist nun >beinahe< fertig.
"Beinahe" bedeutet in diesem Fall alles funktioniert bis auf die Berechnung des Siegers.

Ich habe das gesamte Script in dem Gedanken entwickelt den Code öffentlich zu legen und leicht veränderbar zu machen.
Viele Klassen und Funktionen sind möglichst einfach und überschaubar gehalten damit man leicht eingriffe vornehmen kann.
Leider bin ich noch nicht dazu gekommen einen letzten Feinschliff durchzuführen.

Warum ich das ganze hier schreibe will ich schnell erklären:
Ich habe einfach keine Zeit mehr das Script zu vollenden. Innerhalb der letzten Wochen ist eine Menge passiert und ich bin im Moment so ziemlich von Aufgaben überwältigt. Dies ist ebenfalls der Grund dafür, warum ich auch in anderer Hinsicht kaum noch tätig bin in der Community.
Ich denke nicht, dass ich Zeit haben werde mich auf dieses Script zu konzentrieren in den nächsten Wochen oder vielleicht sogar auch Monaten.
Daher habe ich vor es in seinem derzeitigen Stadium zu veröffentlichen und so gut wie es nur geht Auskunft darüber zu geben wie es funktioniert.
Mit etwas Glück wird sich jemand finden lassen, der es vollenden können wird. Falls nicht, wer weis, vielleicht werde sogar ich irgendwann noch einmal etwas Zeit stibitzen können um es zu vervollständigen.
Um dies nocheinmal hervorzuheben: Das Script ist "so gut wie fertig", ein letzter Algorithmus zum bestimmen des Siegers fehlt noch sowie, wahrscheinlich, Feinschliff und Fehlerbehebung.
Ich hoffe es lässt sich jemand finden, der diese letzte Aufgabe übernehmen kann.

Informationen zum Script:
Ich habe für das System folgende Akteure vorgesehen gehabt:


Settings (Ein Modul zum einstellen der Startdaten und Werte der nächsten Runde)
System (Ein Modul zum halten aller kritischen Konstanten und übergeordneten Hilfsfunktionen)
Scene (Eine einfache Szene wie sie auch in den RPG-Makern verwendet wird, sie dient lediglich dazu das Spiel zu updaten, diese Klasse kann leicht vom Benutzer individuell verändert werden.)
Data (Das eigentliche Spiel, eine Klasse zur Datenhaltung sämtlicher lokaler Spielwerte und mit Funktionen um den Spielfluss zu steuern.)
Spriteset (Eine Klasse welche sich um die Audio-Visuelle-Darstellung des Spiels kümmert. Diese Klasse kann von dem Benutzer individuell verändert werden.)


Das System ist sehr flexibel aufgebaut. Viele der Klassen welche ich geschrieben habe können, und dürfen auch, ohne größeren Aufwand neudefiniert werden. So ist zum Beispiel die Darstellungsebene des Spiels völlig frei gestaltbar.
Auch künstliche Intelligenzen und die generelle Steuerung der Spielentscheidungen ist sehr einfach zu modifizieren.

Für die Darstellung benutze ich ein Observer-Modell. Alle wichtigen Datenhaltungsklassen, die Spieler, das Spielfeld, der Pot, etc, können eine Observerliste verwalten. Darstellungsobjekte können sich in diese Observer-Liste einhängen und werden von da an fortwährend über jegliche Änderungen des beobachteten Objektes informiert.
Darstellungsobjekte können auch mehrere Datenhaltungsklassen gleichzeitig observieren und eine Datenhaltungsklasse kann auch durch viele verschiedene Darstellungsobjekte beobachtet werden.
KI-Scripte sind eigene Objekte welche beim starten des Spiels für jeden Spieler aus einer KI-Liste heraus erstellt werden.
KI-Scripte können auch observiert werden, zum Beispiel um den "Denkprozess" eines computergesteuerten Spielers zu simulieren oder um eine Auswahlbox für den Spieler anzuzeigen.
Die Scene_Game-Klasse ist von dem ganzen Spiel insoweit entkoppelt, dass sie zu jedem Zeitpunkt entfernt werden kann und eine andere Szene fortgesetzt werden könnte.
Das Spieldaten-Objekt kann solange temporär zwischengespeichert werden und sobald eine neue Scene_Game erstellt wird dann übergeben werden.
Das Spiel selbst wird nur fortgeführt falls auf dem Spieldaten-Objekt die Update-Methode aufgerufen wird. Wird diese nicht aufgerufen pausiert das Spiel einfach.
Alles ist so geschrieben, dass es Komponentenweise ausgetauscht und ersetzt werden kann.
Lediglich das Kernsystem selbst ist insofern kompliziert und fragil, dass man nur Veränderungen daran vornehmen sollte wenn man wirklich weis, was man tut.

Ich hoffe diese Informationen konnten jemandem hilfreich sein. Falls noch Informationsbedarf bestehen sollte so könnt ihr euch hier in diesem Thread melden und ich werde, so gut wie es mir möglich ist, darauf antworten.

Alle Scripte sind größtenteils auch kommentiert, auch wenn wahrscheinlich nicht in ausreichendem Umfang.
Vorallem die Algorithmen, fürchte ich, sind etwas zu spärrlich kommentiert worden daher hoffe ich jemand kann aus dem ganzen einen Sinn ziehen wenn er den Code betrachtet. Ich hatte mich darum bemüht leicht verständliche Variablen- und Funktionsnamen zu verwenden.

Falls jemand das Script fertigstellt und benutzen möchte: Ein Creditseintrag oder ähnliches ist nicht nötig.

Der download findet sich im Anhang.
Das XP-Projekt beinhaltet Beispielklassen zur Darstellung und für die AI, sowie ein allgemeines Verwendungsbeispiel mit Map und Events.

Viel Erfolg.

Raff_the_Math
10.09.2013, 06:26
Kann das sein, dass der Download bei mir down ist? Oder stimmt was bei mir nicht? :(
Ja... Alle haben sie "in letzter Zeit" (wenn ich darüber lese) keine Zeit mehr... ich vor kurzem auch nicht. ^^
Naja.. ich frage mich wie es momentan ist. :P

Weiß ja nicht um was es ging, aber das ist ja auch privat...

Wunder mich nur, dass sich noch niemand dem Thema angetan hat. Schade drum eig. :(

...Vorallem wenn man bedenkt, wie viel Zeit du darin investiert hast - es FAST FERTIG geworden ist.. alles umsonst?
Das wär ja echt übel. :/ (On top of was dazu gekommen ist, dass du keine Zeit mehr hattest.)

Lares Yamoir
15.09.2013, 23:57
Ich melde mich mal bestätigend, dass der Link bei mir auch nicht funktioniert.
Hätte es mir zumindest gerne mal angeguckt, vllt. hätte ich auch daran weitergearbeitet.

Cornix
16.09.2013, 00:17
Ja, sieht so aus. Schon eigenartig, immerhin war es als normales Attachment hier im Forum hochgeladen.
Ich bin mir nicht sicher, ob ich noch eine lokale Kopie habe.

Cepanks
16.09.2013, 00:25
^Die Attachments wurden vor ein paar Monaten alle gelöscht, als der Server sich selbst besiegt hat. Siehe hier: http://www.multimediaxis.de/threads/138438-Server-Downtime-heute-(22-05-2013)

Cornix
16.09.2013, 01:16
Okay, das macht Sinn.

Ich habe das Projekt gefunden und nochmal hochgeladen. Ich weis allerdings nicht, in welchem Zustand diese Version ist. Es ist wahrscheinlich, dass es sich dabei um die selbe Version handelt, möglicherweise aber auch um eine andere.