php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 10-05-2009, 16:53
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard Poker-Algorithmus

ich habe das wochende mit einem eingeklemmten nerv verbrigen müssen, und hab vor lauter langeweile ein pokerspiel in javascript angefangen, wo ein spieler gegen "den computer" antritt. jetzt stehe ich vor folgendem problem.

"der computer" zieht fünf karten und muss nun auswählen, welche er davon behalten will. leider habe ich absolut keinen plan wie ich das mache, ohne mit zigtausend schleifen zu arbeiten. gibt es da irgendeine matrix, mit der man eine kleine ki aufbauen kann?

im moment werkel ich hier mit einem literal-objekt herum, das ungefär so aufgebaut ist.
PHP-Code:
var poker =
  {
   ... 
    
cards :
    {
      
'karo' :
      {
        
0'2'1'3'2'4'3'5'4'6'5'7'6'8'7'9'8'10'9'b'10'd'11'k'12'a' 
      
},
      
'herz' :
      {
        
0'2'1'3'2'4'3'5'4'6'5'7'6'8'7'9'8'10'9'b'10'd'11'k'12'a' 
      
},
      
'pik' :
      {
        
0'2'1'3'2'4'3'5'4'6'5'7'6'8'7'9'8'10'9'b'10'd'11'k'12'a' 
      
},
      
'kreuz' :
      {
        
0'2'1'3'2'4'3'5'4'6'5'7'6'8'7'9'8'10'9'b'10'd'11'k'12'a' 
      
}
    },
    
    
level :
    {
      
0'karo'1'herz'2'pik'3'kreuz'
    
},
    
    
rank :
    {
      
0'2'1'3'2'4'3'5'4'6'5'7'6'8'7'9'8'10'9'b'10'd'11'k'12'a' 
    
},
    ...
  } 
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #2 (permalink)  
Alt 10-05-2009, 18:24
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ist nicht schwer ... Also du musst einfach auf mögliche Kombinationen testen, d.h. folgende Test musst durchgeführt werden:

- pair
- two pairs
- three of a kind
- straight
- flush
- fullhouse
- four of a kind
- straight flush
- royal flush

Teste von unten nach oben dann weisst du was der Computer hat, anschliessend kannst du entscheiden, was getauscht werden muss.

Die Tests kannst du in einzelne Function unterbringen und geschickt kombinieren, z.B. Fullhouse = 3 of a kind + pair, etc.
Mit Zitat antworten
  #3 (permalink)  
Alt 10-05-2009, 18:58
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von asp2php Beitrag anzeigen
Ist nicht schwer ...
hab ich anfangs auch gedacht.
Zitat:
Zitat von asp2php Beitrag anzeigen
Also du musst einfach auf mögliche Kombinationen testen, d.h. folgende Test musst durchgeführt werden:
...
Teste von unten nach oben dann weisst du was der Computer hat, anschliessend kannst du entscheiden, was getauscht werden muss.

Die Tests kannst du in einzelne Function unterbringen und geschickt kombinieren, z.B. Fullhouse = 3 of a kind + pair, etc.
das ist mir auch schon klar. mir geht es nur um das wie. bisher wusel ich mich mit zig schleifen durch die karten. aber das muss doch besser zu lösen sein. gibt es hier keinen mathematiker?

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #4 (permalink)  
Alt 10-05-2009, 18:59
Blackgreetz
 PHP Junior
Links : Onlinestatus : Blackgreetz ist offline
Registriert seit: Oct 2005
Beiträge: 901
Blackgreetz ist zur Zeit noch ein unbeschriebenes Blatt
Standard

so einfach ist das normale poker ansich nicht.
Es kann ja auch sein, dass du kein paar hast, aber 3x Herz und zwar 4 6 7 ... ...dann tauschst du ansich nur die anderen beiden, in einer gewissen Hoffnung.
Gleiches bei Highcards.

mfg
Mit Zitat antworten
  #5 (permalink)  
Alt 10-05-2009, 19:51
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Blackgreetz Beitrag anzeigen
so einfach ist das normale poker ansich nicht.
Es kann ja auch sein, dass du kein paar hast, aber 3x Herz und zwar 4 6 7 ... ...dann tauschst du ansich nur die anderen beiden, in einer gewissen Hoffnung.
Gleiches bei Highcards.

mfg
weiß ich alles. aber wie kann ich das in einen algorithmus mit einer entsprechenden matrix packen? das ist mein problem. ich will einfach nicht mit zig funktionen und schleifen arbeiten. der code soll so einfach wie möglich sein. und da hapert es bei mir.

peter

ps. vielleicht rede ich auch blödsinn, bin im moment ziemlich vollgepumpt mit schmerztabletten
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #6 (permalink)  
Alt 10-05-2009, 20:21
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Ich kenne die Poker-Regeln leider nicht. Hab kurz bei Wikipedia geschaut und jetzt weiß ich zumindest, dass du dir da einen harten Brocken vorgenommen hast.
Pokern ist anscheinend nur sehr schwer algorithmisch umzusetzen, da man das Blatt des Gegners nicht kennt. Man weiß eigentlich nur, welche Karten er auf keinen Fall haben kann, nämlich die eigenen. Die Güte Blattes des Gegners muss man anhand seines Setzverhaltens abschätzen. Diese psychologische Komponente ist nicht berechenbar. Da muss man heuristisch rangehen.

Du willst jetzt erstmal die absolute* Güte deines eigenen Blattes ermitteln. Wie gesagt kenne ich die Regeln nicht. Aber es gibt knapp 2,6 Mio. Hände (52 über 5). Man kann die nicht alle vorab bewerten und speichern. Vor allem nicht in JS.

Deshalb war mein erster Gedanke "Graph"! Ein vollständiger Graph, jede Karte als Knoten vertreten, gewichtete Kanten ...
Wäre das eine Möglichkeit? Ich weiß halt nicht, ob man überhaupt Kantengewichte bestimmen kann und wie viele Pfadschritte durchschnittlich zu berechnen wären.

Ich habe etwa folgendes im Kopf:
Finde eine Karte aus deiner Hand im Graphen.
Bilde jeden möglichen 5er-Pfad ausgehend von diesem Knoten. Damit das halbwegs performant geht, würde ich die Pfade sukzessiv verlängern und in jedem Schritt schauen, ob ich den neuen Knoten als Karte auf der Hand habe. Ausgehend davon und dem Gewicht der Kante wird die Güte des Pfades angepasst. Unterhalb einer bestimmten Güte wird ein Pfad nicht weiter verfolgt.

Wenn die Regeln das hergeben, muss man deutlich weniger als die 2,6 Mio. möglichen Pfade berechnen. Durch geschickte Auswahl des Startknotens lässt sich eventuell auch noch was einsparen.
Mit Zitat antworten
  #7 (permalink)  
Alt 10-05-2009, 20:30
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Talking

Let me google that for you

Zitat:
Zitat von Kropff Beitrag anzeigen
ps. vielleicht rede ich auch blödsinn, bin im moment ziemlich vollgepumpt mit schmerztabletten
Wir wissen alle schon, dass du drogen abhängig bist
Mit Zitat antworten
  #8 (permalink)  
Alt 10-05-2009, 21:50
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von onemorenerd Beitrag anzeigen
Man weiß eigentlich nur, welche Karten er auf keinen Fall haben kann, nämlich die eigenen. Die Güte Blattes des Gegners muss man anhand seines Setzverhaltens abschätzen. Diese psychologische Komponente ist nicht berechenbar. Da muss man heuristisch rangehen.
ach so toll soll das garnicht werden. der "computer" muss nur sein eigenes blatt beurteilen.
Zitat:
Zitat von asp2php Beitrag anzeigen
Let me google that for you
Wir wissen alle schon, dass du drogen abhängig bist
1. danke für den hinweis, schau ich mir morgen mal an
2. komm du mir noch mal zwischen die finger

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #9 (permalink)  
Alt 10-05-2009, 22:56
Blackgreetz
 PHP Junior
Links : Onlinestatus : Blackgreetz ist offline
Registriert seit: Oct 2005
Beiträge: 901
Blackgreetz ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Meine erste Antwort war auch an asp2php gerichtet siehe "so einfach ist das nicht".

Du könntest ansonsten auch ein Punktesystem machen. >10 bekommt dann 3 punkte, unter 10 1 .. zusammenhängende +2 .. welche mit nur 1 karte dazwischen +1 usw. (farben.,..,..)
Und dann kannst du gucken, welche Kartenkombi die am meisten Punkte hat, die anderen tauschst du. Überprüfen kann man das Ganze aber mit Wenigen schleifen, die einfach immer nur eine karte zu einer anderen hinzunimmt etc und dann die Punkte dafür ausrechnet. Die höchste Kombi gewinnt und der Rest fliegt.

Bin mir nun nicht sicher, ob das System so funktioniert, aber viel mir gerade ein^^

mfg
Mit Zitat antworten
  #10 (permalink)  
Alt 11-05-2009, 00:27
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Nennt sich hutchinson und gibt es somit schon. Hat aber wie jedes System seine Macken -man kann erfolgreiches Pokerspiel eben kaum berechnen.
Mit Zitat antworten
  #11 (permalink)  
Alt 11-05-2009, 02:18
Blackgreetz
 PHP Junior
Links : Onlinestatus : Blackgreetz ist offline
Registriert seit: Oct 2005
Beiträge: 901
Blackgreetz ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von unset Beitrag anzeigen
Nennt sich hutchinson und gibt es somit schon.
Danke. Wusste zwar, dass ich öfter mal von dem Prinzip gelesen habe, aber kannte keinen Namen.


Ich denke, dass diese Methode da doch nen guter Ansatz für ist.

Geändert von Blackgreetz (11-05-2009 um 02:24 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 11-05-2009, 09:41
eintrachtemil
 Registrierter Benutzer
Links : Onlinestatus : eintrachtemil ist offline
Registriert seit: May 2004
Beiträge: 223
eintrachtemil ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hier gibt es noch ein paar Wahrscheinlichkeiten, die dir eventuell bei Kartenbewertungen helfen könnten: Texas Hold'em Poker Statistiken Startblätter Flops Wahrscheinlichkeit holdem-poker.ch
__________________
Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm
Mit Zitat antworten
  #13 (permalink)  
Alt 11-05-2009, 09:44
eintrachtemil
 Registrierter Benutzer
Links : Onlinestatus : eintrachtemil ist offline
Registriert seit: May 2004
Beiträge: 223
eintrachtemil ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hier noch eine Poker-Engine in PHP: PHP Poker Engine - Official Website

Vielleicht kannst du da was rausziehen.
__________________
Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm
Mit Zitat antworten
  #14 (permalink)  
Alt 11-05-2009, 09:49
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

danke euch allen. hätte ich geahnt, wie aufwendig das ist, hätte ich es bleiben lassen. sch***ß langeweile

peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #15 (permalink)  
Alt 11-05-2009, 10:39
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ach komm schon. Die 5 Karten durchzulaufen ist doch nichts ... 5 von 52 Karten sind doch bloß nur 2.598.296 Kombinationen ... streng dich an
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:31 Uhr.