author arun Tue, 19 Dec 2006 18:11:30 +0000 (18:11 +0000) committer arun Tue, 19 Dec 2006 18:11:30 +0000 (18:11 +0000)
 functions.php patch | blob | history index.php patch | blob | history

@@ -19,51 +19,69 @@ function is_club(\$c)  { return (in_array(\$c,array('27','28','29','30','31','32',
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;
+      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;
-           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;
+               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;
}
--- 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