diff options
author | Arun Persaud <arun@nubati.net> | 2008-05-18 11:48:25 -0700 |
---|---|---|
committer | Arun Persaud <arun@nubati.net> | 2008-05-18 11:48:25 -0700 |
commit | a4149c6703653b2d0d5f3da4277d7fe065048edd (patch) | |
tree | 66231c48787b3bf9400d53c7289f73eb4cfbb26b /include/functions.php | |
parent | 2a2c6ad2b883e1f0c9a2f5bf3f742452ce7ef540 (diff) | |
download | e-DoKo-a4149c6703653b2d0d5f3da4277d7fe065048edd.tar.gz e-DoKo-a4149c6703653b2d0d5f3da4277d7fe065048edd.tar.bz2 e-DoKo-a4149c6703653b2d0d5f3da4277d7fe065048edd.zip |
BUGFIX: show schweinchen has highest trump in your hand
correctly shows both schweinchen as highest trump or just one depending on the rules. If only one don't allow to play it unless the first fox has been played.
Signed-off-by: Arun Persaud <arun@nubati.net>
Diffstat (limited to 'include/functions.php')
-rw-r--r-- | include/functions.php | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/include/functions.php b/include/functions.php index bbffe00..5267bfb 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1,5 +1,5 @@ <?php -/* make sure that we are not called from outside the scripts, +/* make sure that we are not called from outside the scripts, * use a variable defined in config.php to check this */ if(!isset($HOST)) @@ -328,9 +328,9 @@ function count_trump($cards) $trump++; /* normally foxes don't count as trump, so we substract them here - * in case someone has schweinchen, one or two of them should count as trump + * in case someone has schweinchen, one or two of them should count as trump * though, so we need to add one trump for those cases */ - + /* subtract foxes */ if( in_array("19",$cards)) $trump--; @@ -466,6 +466,7 @@ function set_gametype($gametype) { global $CARDS; global $RULES; + global $GAME; switch($gametype) { @@ -488,6 +489,38 @@ function set_gametype($gametype) '17','18','19','20','21','22','23','24','25','26'); $CARDS["hearts"] = array('43','44','1','2','45','46','47','48'); } + /* do we need to reorder for Schweinchen? need to search for it because of special case for dullen above*/ + if($RULES['schweinchen']=='both'&& $GAME['schweinchen-who']) + { + /* find the fox and put them at the top of the stack */ + foreach(array('19','20') as $fox) + { + /* search for fox */ + $trump = $CARDS['trump']; + $key = array_keys($trump, $fox); + + /* reorder */ + $foxa = array(); + $foxa[]=$trump[$key[0]]; + unset($trump[$key[0]]); + $trump = array_merge($foxa,$trump); + $CARDS['trump'] = $trump; + } + } + else if( ($RULES['schweinchen']=='second' || $RULES['schweinchen']=='secondaftercall') + && $GAME['schweinchen-who']) + { + /* find the fox and put them at the top of the stack */ + $trump = $CARDS['trump']; + $key = array_keys($trump, '19'); + + /* reorder */ + $foxa = array(); + $foxa[]=$trump[$key[0]]; + unset($trump[$key[0]]); + $trump = array_merge($foxa,$trump); + $CARDS['trump'] = $trump; + } break; case "queen": $CARDS["trump"] = array('3','4','5','6','7','8','9','10'); @@ -932,7 +965,7 @@ function generate_global_score_table() $player[$key]['nr']+=1; } } - + echo "<table>\n <tr>\n"; function cmp($a,$b) { @@ -942,7 +975,7 @@ function generate_global_score_table() $a=$a['points']/$a['nr']; $b=$b['points']/$b['nr']; - if ($a == $b) + if ($a == $b) return 0; return ($a > $b) ? -1 : 1; } @@ -953,7 +986,7 @@ function generate_global_score_table() echo " <tr><td>",$pl['name'],"</td><td>",round($pl['points']/$pl['nr'],3),"</td></tr>\n"; } echo "</table>\n"; - + return; } |