summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--functions.php92
-rw-r--r--index.php9
2 files changed, 62 insertions, 39 deletions
diff --git a/functions.php b/functions.php
index 29ca96d..7cc2826 100644
--- a/functions.php
+++ b/functions.php
@@ -19,51 +19,69 @@ function is_club($c) { return (in_array($c,array('27','28','29','30','31','32',
function is_spade($c) { return (in_array($c,array('35','36','37','38','39','40','41','42')));}
function is_heart($c) { return (in_array($c,array('43','44','45','46','47','48')));}
-function compare_cards($a,$b)
+function compare_cards($a,$b,$mode)
{
- /* if a is higher than b return 1, else 0, a being the card first played */
-
- /* first map all cards to the odd number */
+ /* if "a" is higher than "b" return 1, else 0, "a" being the card first played */
+
+ /* don't think we need this */
if( $a/2 - (int)($a/2) != 0.5)
$a--;
if( $b/2 - (int)($b/2) != 0.5)
$b--;
- if(is_trump($a) && $a<=$b)
- return 1;
- else if(is_trump($a) && $a>$b)
- return 0;
- else
- { /*$a is not a trump */
- if(is_trump($b))
+ switch($mode)
+ {
+ case "trumpless":
+ break;
+ case "jack":
+ break;
+ case "queen":
+ break;
+ case "trump":
+ break;
+ case "club":
+ break;
+ case "spade":
+ break;
+ case "heart":
+ break;
+ case "normal":
+ /* first map all cards to the odd number */
+ if(is_trump($a) && $a<=$b)
+ return 1;
+ else if(is_trump($a) && $a>$b)
return 0;
- else
- {
- /* both clubs? */
- if( is_club($a) && is_club($b))
- if($a<=$b)
- return 1;
- else
- return 0;
- /* both spade? */
- if( is_spade($a) && is_spade($b))
- if($a<=$b)
- return 1;
- else
- return 0;
- /* both heart? */
- if( is_heart($a) && is_heart($b))
- if($a<=$b)
+ else
+ { /*$a is not a trump */
+ if(is_trump($b))
+ return 0;
+ else
+ {
+ /* both clubs? */
+ if( is_club($a) && is_club($b))
+ if($a<=$b)
+ return 1;
+ else
+ return 0;
+ /* both spade? */
+ if( is_spade($a) && is_spade($b))
+ if($a<=$b)
+ return 1;
+ else
+ return 0;
+ /* both heart? */
+ if( is_heart($a) && is_heart($b))
+ if($a<=$b)
+ return 1;
+ else
+ return 0;
return 1;
- else
- return 0;
- return 1;
- }
+ }
+ }
}
-
}
-function get_winner($p)
+function get_winner($p,$mode)
{
/* get all 4 cards played in a trick */
$c1 = $p[1];
@@ -72,11 +90,11 @@ function get_winner($p)
$c4 = $p[4];
/* find out who won */
- if( compare_cards($c1,$c2) && compare_cards($c1,$c3) && compare_cards($c1,$c4) )
+ if( compare_cards($c1,$c2,$mode) && compare_cards($c1,$c3,$mode) && compare_cards($c1,$c4,$mode) )
return 1;
- if( compare_cards($c2,$c3) && compare_cards($c2,$c4) )
+ if( compare_cards($c2,$c3,$mode) && compare_cards($c2,$c4,$mode) )
return 2;
- if( compare_cards($c3,$c4) )
+ if( compare_cards($c3,$c4,$mode) )
return 3;
return 4;
}
diff --git a/index.php b/index.php
index cf55680..c849f69 100644
--- a/index.php
+++ b/index.php
@@ -225,6 +225,11 @@ else if(isset($_REQUEST["me"]))
/* reset solo, etc from players who did say something, but it didn't matter? */
break;
case 'poverty':
+ /* here we need to check if there is a solo or some other form o sickness.
+ * If so, which one counts
+ * set that one in the Game table, delete other ones form Hand table
+ * tell people about it.
+ */
echo "<br />poverty not handeled at the moment... you need to play a normal game<br />";
/* only set this after all poverty, etc. are handeled*/
@@ -367,7 +372,7 @@ else if(isset($_REQUEST["me"]))
/* whos turn is it? */
if($seq==4)
{
- $winner = get_winner($play); /* returns the position */
+ $winner = get_winner($play,"normal"); /* returns the position */
$next = $winner;
}
else
@@ -441,7 +446,7 @@ else if(isset($_REQUEST["me"]))
if($sequence==4)
{
$play = DB_get_cards_by_trick($trickid);
- $winner = get_winner($play); /* returns the position */
+ $winner = get_winner($play,"normal"); /* returns the position */
$next = $winner;
}
else