PHP Gewinnlinie auswerten.

Handymann

** Losedealer **
ID: 418952
L
27 August 2011
346
15
Hallo ,

Ich versuche mich gerade an einem keinen slotscript.
Wie wertet man eine Gewinnlinie aus ?

Wenn z.B die erste Linie so aussieht.

1 1 1 5 6

Wie kann ich nun feststellen , das die ersten 3 Symbole gleich sind ?
Dann möchte ich gern noch ein WILD Symbol einbauen.
z.B die 5 ist das WILD , wie wertet man es dann aus ?

Danke für eure Hilfe.
 
Wenn die ersten drei Zahlen gleich sind, ist die erste gleich der zweiten und die zweite gleich der dritten.
 
PHP:
if (symb1 == symb2 && symb1 == symb3) {
machwas; 
}

So in etwa ? Wie mache ich da , wenn das 4. Symbol das WILD ist ?
 
PHP:
$symb1= 1;
$symb2= 1;
$symb3= 1;
$symb4= 5;
$symb5= 6;

$wildsymbol = 5;

$gewinn1 = $einsatz *2; // 111
$gewinn2 = $einsatz *10; // 1111
$gewinn3 = $einsatz *20; // 11111

if ($symb1 == $symb2 && $symb1 == $symb3) {
  if ($symb4 == $wildsymbol) {
     if ($symb5 == $wildsymbol) {   
     $gewinn = $gewinn3;
     }
     $gewinn = $gewinn2;
  }
  $gewinn = $gewinn1;
}


So in etwa ?
 
Also ich würde hier einen ganz anderen Ansatz fahren ( ich komme aus der Großrechnerwelt, da wird vermutlich anders programmiert. )

Ich würde alle 5 Symbole der Gewinnlinie in einen String schreiben und dann einen Character-Vergleich durchführen.

So in etwa:

angenommen, es gibt verschiedene Symbole "1" bis "5" und ein Wildsymbol "6"

dann ergibt:
PHP:
$x = $symb1 . $symb2 . $symb3 . $symb4 . $symb5 ;
$n = strspn($x,"16") ;

beinhaltet $n eine 3,4, oder 5, dann gabs Symbol 1 entsprechend oft.

danach
PHP:
$n = strspn($x,"26") ;

beinhaltet $n jetzt eine 3,4, oder 5, dann gabs Symbol 2 entsprechend oft.
usw

und das ganze dann über eine Prozedur aufrufen.

( Hier mal Pseudocode, weil meine PHP-Kenntnisse zu gering sind ):


Code:
Prozedur Gewinnermittlung. 
Eingabe : Symbol1, Symbol2, ... Symbol5
Ausgabe: Gewinnfakto

ermittle $x = Symbol1 . Symbol2 . Symbol3 . Symbol4 . Symbol5 ;
ermittle $n  = strspn($x,"16") ;
prüfe ($n)
   wenn (5) EXIT mit Wert  10,5   // fünf mal Symbol 1 ergibt 10,5facher Einsatz
   wenn (4) EXIT mit Wert 7,5   // vier mal Symbol 1 ergibt 7,5facher Einsatz
   wenn (3) EXIT mit  Wert 3,5  // drei mal Symbol 1 ergibt 3,5 facher Einsatz
   sonst ---
ende prüfe 

ermittle $n  = strspn($x,"26") ;
prüfe ($n)
   wenn (5) EXIT mit Wert  1,5   // fünf mal Symbol 2 ergibt 1,5 facher Einsatz
   wenn (4) EXIT mit Wert 1,0   // vier mal Symbol 2 ergibt 1,0 facher Einsatz
   wenn (3) EXIT mit  Wert 0,5  // drei mal Symbol 2 ergibt 0,5 facher Einsatz
   sonst ---
ende prüfe 
...
das gleiche für Symbol, 3,4 und 5

EXIT mit Wert 0 // nix getroffen, kein Gewinn

Ende Prozedur
 
Zuletzt bearbeitet:
Also ich würde hier einen ganz anderen Ansatz fahren ( ich komme aus der Großrechnerwelt, da wird vermutlich anders programmiert. )

Ich würde alle 5 Symbole der Gewinnlinie in einen String schreiben und dann einen Character-Vergleich durchführen.

So in etwa:

angenommen, es gibt verschiedene Symbole "1" bis "5" und ein Wildsymbol "6"

dann ergibt:
PHP:
$x = $symb1 . $symb2 . $symb3 . $symb4 . $symb5 ;
$n = strspn($x,"16") ;

beinhaltet $n eine 3,4, oder 5, dann gabs Symbol 1 entsprechend oft.

danach
PHP:
$n = strspn($x,"26") ;

beinhaltet $n jetzt eine 3,4, oder 5, dann gabs Symbol 2 entsprechend oft.
usw

Das ist sehr Interessant , kannst du mir das genauer erklären oder gibt es ein Tutorial dafür ?

Wie setzte ich das in meinem Script um ?
 
wenn Deine Gewinnlinie so aussieht

1 1 1 5 6

dann hast Du ja in $symb1 = '1' , in $symb2 = '1' ... $symb5 = '6'

zu einem String verkettet
$x = $symb1 . $symb2 . $symb3 . $symb4 . $symb5 ;

steht in $x jetzt "11156".

Die Funktion strspn(string1,string2) prüft, wieviele Zeichen in string1 sind, bevor das erste Zeichen kommt, das nicht in string2 ist.

strspn ( "11156", "16") würde jetzt eine 3 zurückgeben, weil die ersten drei Zeichen von "11156" auch in "16" vorkommen.
Also drei in einer Reihe ...

Wäre die Gewinnlinie 1 (Apfel) 6 (wild) 1 (Apfel) 3 (Birne) 4 (Zitrone)
dann würde
strspn ( "16134", "16") ebenfalls den Wert 3 zurückgeben,

bei einer Gewinnlinie
1 (Apfel) 6 (wild) 3 (Birne) 4 (Zitrone) 1 (Apfel)

würde strspn ( "16341", "16") nur einen Wert von 2 zurückgeben... kein Gewinn


hier noch die Beschreibung der Funktion strspn:
https://de.php.net/manual/de/function.strspn.php
 
Danke , ich verstehe.

Wenn ich also 9 Symbole hätte und das 9. Symbol mein Wild wäre , würde das ganze so aussehen.


$x = "11911" ;
$n = strspn($x,"19") ;

Würde 5 zurück geben.

$x = "11945" ;
$n = strspn($x,"19") ;

Würde 3 zurück geben.

Wunderbar , das werde ich gleich mal einbauen. VIELEN DANK !
 
das ist richtig.

Allerdings gibts natülich noch ein paar Sonderfälle zu berücksichtigen
z.B. WILD WILD WILD APFEL BIRNE

die drei WILD-Symbole am Anfang würden für jedes Symbol einen Gewinn von "3 Symbolen" anzeigen , nur bei Apfel einen Gewinn von "4 Symbolen".


Sollten solche Möglichkeiten also vorkommen können, dann ist noch etwas zusätzliche Logik notwendig um den richtigen Gewinn zu ermitteln