summaryrefslogtreecommitdiffstats
path: root/include/functions.php
diff options
context:
space:
mode:
authorArun Persaud <arun@nubati.net>2008-05-18 11:48:25 -0700
committerArun Persaud <arun@nubati.net>2008-05-18 11:48:25 -0700
commita4149c6703653b2d0d5f3da4277d7fe065048edd (patch)
tree66231c48787b3bf9400d53c7289f73eb4cfbb26b /include/functions.php
parent2a2c6ad2b883e1f0c9a2f5bf3f742452ce7ef540 (diff)
downloade-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.php45
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;
}