summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorarun <arun@nubati.net>2007-01-08 09:16:20 +0000
committerarun <arun>2007-01-08 09:16:20 +0000
commitf91a22b698415eacda6af7403814caa6f34ad7e5 (patch)
tree9c1ffdca2fb8738a41f4fddb062a143481bce5cc
parenta260a1abdfb22b421fbb4305cf2a0c8d57b89c9e (diff)
downloade-DoKo-f91a22b698415eacda6af7403814caa6f34ad7e5.tar.gz
e-DoKo-f91a22b698415eacda6af7403814caa6f34ad7e5.tar.bz2
e-DoKo-f91a22b698415eacda6af7403814caa6f34ad7e5.zip
FEATURE: added solo and now you also can only play cards that are valid on a trick
-rw-r--r--create_database.sql3
-rw-r--r--db.php55
-rw-r--r--functions.php338
-rw-r--r--index.php105
-rw-r--r--output.php6
5 files changed, 339 insertions, 168 deletions
diff --git a/create_database.sql b/create_database.sql
index 66c0cc3..88c41d9 100644
--- a/create_database.sql
+++ b/create_database.sql
@@ -70,8 +70,9 @@ CREATE TABLE `Game` (
`mod_date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`create_date` timestamp NOT NULL default '0000-00-00 00:00:00',
`randomnumbers` varchar(136) default NULL,
- `type` enum('solo','wedding','poverty','dpoverty') default NULL,
+ `type` enum('normal','solo','wedding','poverty','dpoverty') default NULL,
`solo` enum('trumpless','jack','queen','trump','club','spade','heart','silent') default NULL,
+ `startplayer` tinyint(4) default '1',
`status` enum('pre','play','gameover') default NULL,
`followup_of` int(11) default NULL,
`id` int(11) NOT NULL auto_increment,
diff --git a/db.php b/db.php
index 254c460..6da3bd9 100644
--- a/db.php
+++ b/db.php
@@ -283,12 +283,18 @@ function DB_get_cards_by_trick($id)
}
-function DB_set_solo_by_hash($me,$solo)
+function DB_set_solo_by_hash($hash,$solo)
{
mysql_query("UPDATE Hand SET solo=".DB_quote_smart($solo)." WHERE hash=".DB_quote_smart($hash));
return;
}
+function DB_set_solo_by_gameid($id,$solo)
+{
+ mysql_query("UPDATE Game SET solo=".DB_quote_smart($solo)." WHERE id=".DB_quote_smart($id));
+ return;
+}
+
function DB_set_sickness_by_hash($hash,$sickness)
{
mysql_query("UPDATE Hand SET sickness=".DB_quote_smart($sickness)." WHERE hash=".DB_quote_smart($hash));
@@ -420,4 +426,51 @@ function DB_insert_comment($comment,$playid,$userid)
mysql_query("INSERT INTO Comment VALUES (NULL,NULL,NULL,$userid,$playid, ".DB_quote_smart($comment).")");
return;
}
+
+function DB_get_gametype_by_gameid($id)
+{
+ $result = mysql_query("SELECT type FROM Game WHERE id=".DB_quote_smart($id));
+ $r = mysql_fetch_array($result,MYSQL_NUM);
+
+ if($r)
+ return $r[0]."";
+ else
+ return "";
+}
+
+function DB_set_gametype_by_gameid($id,$p)
+{
+ mysql_query("UPDATE Game SET type='".$p."' WHERE id=".DB_quote_smart($id));
+ return;
+}
+
+function DB_get_solo_by_gameid($id)
+{
+ $result = mysql_query("SELECT solo FROM Game WHERE id=".DB_quote_smart($id));
+ $r = mysql_fetch_array($result,MYSQL_NUM);
+
+ if($r)
+ return $r[0]."";
+ else
+ return "";
+}
+
+
+function DB_get_startplayer_by_gameid($id)
+{
+ $result = mysql_query("SELECT startplayer FROM Game WHERE id=".DB_quote_smart($id));
+ $r = mysql_fetch_array($result,MYSQL_NUM);
+
+ if($r)
+ return $r[0];
+ else
+ return 0;
+}
+
+function DB_set_startplayer_by_gameid($id,$p)
+{
+ mysql_query("UPDATE Game SET startplayer='".$p."' WHERE id=".DB_quote_smart($id));
+ return;
+}
+
?> \ No newline at end of file
diff --git a/functions.php b/functions.php
index a6ee160..2077d00 100644
--- a/functions.php
+++ b/functions.php
@@ -49,69 +49,35 @@ function pos_array($c,$arr)
return $ret;
}
-function is_trump($c,$game)
+function is_trump($c)
{
- switch($game)
- {
- case "queen":
- if(in_array($c,array('3','4','5','6','7','8','9','10')))
- return 1;
- else
- return 0;
- break;
- case "normal":
- return (($c<27) ? 1:0);
- break;
- }
+ global $TRUMP;
+
+ if(in_array($c,$TRUMP))
+ return 1;
+ else
+ return 0;
}
-function is_same_suite($c1,$c2,$game)
+function is_same_suite($c1,$c2)
{
- switch($game)
- {
- case "queen":
- /* clubs */
- if(in_array($c1,array('11','12','27','28','29','30','31','32','33','34')) &&
- in_array($c2,array('11','12','27','28','29','30','31','32','33','34')) )
- return 1;
- /* spade */
- if(in_array($c1,array('13','14','35','36','37','38','39','40','41','42')) &&
- in_array($c2,array('13','14','35','36','37','38','39','40','41','42')) )
- return 1;
- /* heart */
- if(in_array($c1,array( '1', '2','15','16','43','44','45','46','47','48')) &&
- in_array($c2,array( '1', '2','15','16','43','44','45','46','47','48')) )
- return 1;
- /* diamonds */
- if(in_array($c1,array('17','18','19','20','21','22','23','24','25','26')) &&
- in_array($c2,array('17','18','19','20','21','22','23','24','25','26')) )
- return 1;
-
- return 0;
- break;
- case "normal":
- /* clubs */
- if(in_array($c1,array('27','28','29','30','31','32','33','34')) &&
- in_array($c2,array('27','28','29','30','31','32','33','34')) )
- return 1;
- /* spade */
- if(in_array($c1,array('35','36','37','38','39','40','41','42')) &&
- in_array($c2,array('35','36','37','38','39','40','41','42')) )
- return 1;
- /* heart */
- if(in_array($c1,array('43','44','45','46','47','48')) &&
- in_array($c2,array('43','44','45','46','47','48')) )
- return 1;
-
- return 0;
- break;
- }
+ global $TRUMP,$DIAMONDS,$HEARTS,$CLUBS,$SPADES;
+
+ if(in_array($c1,$TRUMP ) && in_array($c2,$TRUMP ) ) return 1;
+ if(in_array($c1,$CLUBS ) && in_array($c2,$CLUBS ) ) return 1;
+ if(in_array($c1,$HEARTS ) && in_array($c2,$HEARTS ) ) return 1;
+ if(in_array($c1,$SPADES ) && in_array($c2,$SPADES ) ) return 1;
+ if(in_array($c1,$DIAMONDS) && in_array($c2,$DIAMONDS) ) return 1;
+
+ return 0;
}
function compare_cards($a,$b,$game)
{
/* if "a" is higher than "b" return 1, else 0, "a" being the card first played */
+ global $TRUMP,$DIAMONDS,$HEARTS,$CLUBS,$SPADES;
+
/* first map all cards to the odd number,
* this insure that the first card wins the trick
* if they are the same card
@@ -120,93 +86,65 @@ function compare_cards($a,$b,$game)
$a--;
if( $b/2 - (int)($b/2) != 0.5)
$b--;
-
+
+ /* some special cases */
switch($game)
{
- case "trumpless":
- break;
- case "jack":
- break;
- case "queen":
- if(is_trump($a,$game) && is_trump($b,$game) && $a<=$b)
- return 1;
- else if(is_trump($a,$game) && is_trump($b,$game) )
- return 0;
- else
- { /*$a is not a trump */
- if(is_trump($b,$game))
- return 0;
- else
- { /* both no trump */
- /* both clubs? */
- $posA = pos_array($a,array('27','28','29','30','31','32','11','12','33','34'));
- $posB = pos_array($b,array('27','28','29','30','31','32','11','12','33','34'));
- if($posA && $posB)
- if($posA <= $posB)
- return 1;
- else
- return 0;
- /* both spades? */
- $posA = pos_array($a,array('35','36','37','38','39','40','13','14','41','42'));
- $posB = pos_array($b,array('35','36','37','38','39','40','13','14','41','42'));
- if($posA && $posB)
- if($posA <= $posB)
- return 1;
- else
- return 0;
- /* both hearts? */
- $posA = pos_array($a,array('43','44','15','16','45','46', '1', '2','47','48'));
- $posB = pos_array($b,array('43','44','15','16','45','46', '1', '2','47','48'));
- if($posA && $posB)
- if($posA <= $posB)
- return 1;
- else
- return 0;
- /* both diamonds? */
- $posA = pos_array($a,array('19','20','21','22','23','24','17','18','25','26'));
- $posB = pos_array($b,array('19','20','21','22','23','24','17','18','25','26'));
- if($posA && $posB)
- if($posA <= $posB)
- return 1;
- else
- return 0;
-
- /* not the same suit and no trump: a wins */
- return 1;
- }
- }
- break;
- case "trump":
- break;
- case "club":
- break;
- case "spade":
- break;
- case "heart":
- break;
case "normal":
if($a==1 && $b==1) /* both 10 of hearts */
return 0; /* second one wins. TODO should be able to set this at the start of a new game */
- if(is_trump($a,$game) && $a<=$b)
- return 1;
- else if(is_trump($a,$game))
+ }
+
+ if(is_trump($a) && is_trump($b) && $a<=$b)
+ return 1;
+ else if(is_trump($a) && is_trump($b) )
+ return 0;
+ else
+ { /*$a is not a trump */
+ if(is_trump($b))
return 0;
- else
- { /*$a is not a trump */
- if(is_trump($b,$game))
- return 0;
- else
- {
- if(is_same_suite($a,$b,$game))
- if($a<=$b)
- return 1;
- else
- return 0;
-
- /* not the same suit and no trump: a wins */
+ else
+ { /* both no trump */
+
+ /* both clubs? */
+ $posA = pos_array($a,$CLUBS);
+ $posB = pos_array($b,$CLUBS);
+ if($posA && $posB)
+ if($posA <= $posB)
return 1;
- }
- }
+ else
+ return 0;
+
+ /* both spades? */
+ $posA = pos_array($a,$SPADES);
+ $posB = pos_array($b,$SPADES);
+ if($posA && $posB)
+ if($posA <= $posB)
+ return 1;
+ else
+ return 0;
+
+ /* both hearts? */
+ $posA = pos_array($a,$HEARTS);
+ $posB = pos_array($b,$HEARTS);
+ if($posA && $posB)
+ if($posA <= $posB)
+ return 1;
+ else
+ return 0;
+
+ /* both diamonds? */
+ $posA = pos_array($a,$DIAMONDS);
+ $posB = pos_array($b,$DIAMONDS);
+ if($posA && $posB)
+ if($posA <= $posB)
+ return 1;
+ else
+ return 0;
+
+ /* not the same suit and no trump: a wins */
+ return 1;
+ }
}
}
@@ -219,12 +157,25 @@ function get_winner($p,$mode)
$c4 = $p[4];
/* find out who won */
+
+ /* first card is better than all the rest */
if( compare_cards($c1,$c2,$mode) && compare_cards($c1,$c3,$mode) && compare_cards($c1,$c4,$mode) )
- return 1;
+ return 1;
+
+ /* second card is better than first and better than the rest */
if( !compare_cards($c1,$c2,$mode) && compare_cards($c2,$c3,$mode) && compare_cards($c2,$c4,$mode) )
return 2;
- if( !compare_cards($c1,$c3,$mode) && !compare_cards($c2,$c3,$mode) && compare_cards($c3,$c4,$mode) )
- return 3;
+
+ /* third card is better than first card and better than last */
+ if( !compare_cards($c1,$c3,$mode) && compare_cards($c3,$c4,$mode) )
+ /* if second card is better than first, third card needs to be even better */
+ if( !compare_cards($c1,$c2,$mode) && !compare_cards($c2,$c3,$mode) )
+ return 3;
+ /* second is worse than first, e.g. not following suite */
+ else if (compare_cards($c1,$c2,$mode) )
+ return 3;
+
+ /* non of the above */
return 4;
}
@@ -246,7 +197,7 @@ function count_nines($cards)
function check_wedding($cards)
{
- if( in_array("3",$cards) && in_array("2",$cards) )
+ if( in_array("3",$cards) && in_array("4",$cards) )
return 1;
return 0;
@@ -461,4 +412,117 @@ function return_timezone($offset)
return $zone;
}
+function have_suit($cards,$c)
+{
+ global $TRUMP,$DIAMONDS,$HEARTS,$CLUBS,$SPADES;
+ $suit = array();
+
+ if(in_array($c,$TRUMP))
+ $suit = $TRUMP;
+ else if(in_array($c,$CLUBS))
+ $suit = $CLUBS;
+ else if(in_array($c,$SPADES))
+ $suit = $SPADES;
+ else if(in_array($c,$HEARTS))
+ $suit = $HEARTS;
+ else if(in_array($c,$DIAMONDS))
+ $suit = $DIAMONDS;
+
+ foreach($cards as $card)
+ {
+ if(in_array($card,$suit))
+ return 1;
+ }
+
+ return 0;
+}
+
+function same_type($card,$c)
+{
+ global $TRUMP,$DIAMONDS,$HEARTS,$CLUBS,$SPADES;
+ $suit = "";
+
+ /* figure out what kind of card c is */
+ if(in_array($c,$TRUMP))
+ $suit = $TRUMP;
+ else if(in_array($c,$CLUBS))
+ $suit = $CLUBS;
+ else if(in_array($c,$SPADES))
+ $suit = $SPADES;
+ else if(in_array($c,$HEARTS))
+ $suit = $HEARTS;
+ else if(in_array($c,$DIAMONDS))
+ $suit = $DIAMONDS;
+
+ /* card is the same suid return 1 */
+ if(in_array($card,$suit))
+ return 1;
+
+ return 0;
+}
+
+function set_gametype($gametype)
+{
+ global $TRUMP,$DIAMONDS,$HEARTS,$CLUBS,$SPADES;
+
+ switch($gametype)
+ {
+ case "normal":
+ case "trump":
+ case "silent":
+ $TRUMP = array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16',
+ '17','18','19','20','21','22','23','24','25','26');
+ $DIAMONDS = array();
+ $CLUBS = array('27','28','29','30','31','32','33','34');
+ $SPADES = array('35','36','37','38','39','40','41','42');
+ $HEARTS = array('43','44','45','46','47','48');
+ break;
+ case "queen":
+ $TRUMP = array('3','4','5','6','7','8','9','10');
+ $CLUBS = array('27','28','29','30','31','32','11','12','33','34');
+ $SPADES = array('35','36','37','38','39','40','13','14','41','42');
+ $HEARTS = array('43','44', '1', '2','45','46','15','16','47','48');
+ $DIAMONDS = array('19','20','21','22','23','24','17','18','25','26');
+ break;
+ case "jack":
+ $TRUMP = array('11','12','13','14','15','16','17','18');
+ $CLUBS = array('27','28','29','30','31','32','3', '4','33','34');
+ $SPADES = array('35','36','37','38','39','40','5', '6','41','42');
+ $HEARTS = array('43','44', '1', '2','45','46','7', '8','47','48');
+ $DIAMONDS = array('19','20','21','22','23','24','9','10','25','26');
+ break;
+ case "trumpless":
+ $TRUMP = array();
+ $CLUBS = array('27','28','29','30','31','32','3', '4','11','12','33','34');
+ $SPADES = array('35','36','37','38','39','40','5', '6','13','14','41','42');
+ $HEARTS = array('43','44', '1', '2','45','46','7', '8','15','16','47','48');
+ $DIAMONDS = array('19','20','21','22','23','24','9','10','17','18','25','26');
+ break;
+ case "club":
+ $TRUMP = array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16',
+ '17','18','27','28','29','30','31','32','33','34');
+ $CLUBS = array();
+ $SPADES = array('35','36','37','38','39','40','41','42');
+ $HEARTS = array('43','44','45','46','47','48');
+ $DIAMONDS = array('19','20','21','22','23','24','25','26');
+ break;
+ case "spade":
+ $TRUMP = array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16',
+ '17','18','35','36','37','38','39','40','41','42');
+ $CLUBS = array('27','28','29','30','31','32','33','34');
+ $SPADES = array();
+ $HEARTS = array('43','44','45','46','47','48');
+ $DIAMONDS = array('19','20','21','22','23','24','25','26');
+ break;
+ case "heart":
+ $TRUMP = array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16',
+ '17','18','43','44','45','46','47','48');
+ $CLUBS = array('27','28','29','30','31','32','33','34');
+ $SPADES = array('35','36','37','38','39','40','41','42');
+ $HEARTS = array();
+ $DIAMONDS = array('19','20','21','22','23','24','25','26');
+ break;
+ }
+}
+
?> \ No newline at end of file
diff --git a/index.php b/index.php
index 550144f..f8c7a3a 100644
--- a/index.php
+++ b/index.php
@@ -7,7 +7,6 @@ include_once("db.php"); /* database only */
include_once("functions.php"); /* the rest */
DB_open();
-
output_header();
/* check if we want to start a new game */
@@ -47,10 +46,10 @@ else if( myisset("PlayerA", "PlayerB","PlayerC","PlayerD" ))
if(myisset("followup") )
{
$followup= $_REQUEST["followup"];
- mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', NULL, NULL,'pre','$followup' ,NULL)");
+ mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', 'normal', NULL,'1','pre','$followup' ,NULL)");
}
else
- mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', NULL, NULL,'pre', NULL ,NULL)");
+ mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', 'normal', NULL,'1','pre', NULL ,NULL)");
$game_id = mysql_insert_id();
/* create hash */
@@ -127,6 +126,7 @@ else if(myisset("me"))
$gameid = DB_get_gameid_by_hash($me);
$myname = DB_get_name_by_hash($me);
$mystatus = DB_get_status_by_hash($me);
+ $mypos = DB_get_pos_by_hash($me);
switch($mystatus)
{
@@ -177,8 +177,8 @@ else if(myisset("me"))
break;
case 'check':
- echo "no checking at the moment... you need to play a normal game.".
- " At the moment you need to reload this page to finish the setup.";
+ echo "checking for solo...<br /> if you have a wedding or poverty you need to play a normal game,sorry...<br />".
+ " At the moment you need to reload this page to finish the setup.<br />";
if(!myisset("solo","wedding","poverty","nines") )
{
/* all these variables have a pre-selected default,
@@ -188,13 +188,28 @@ else if(myisset("me"))
}
else
{
+ /* check if this sickness needs to be handled first */
+ $gametype = DB_get_gametype_by_gameid($gameid);
+ $startplayer = DB_get_startplayer_by_gameid($gameid);
+
if( $_REQUEST["solo"]!="No")
{
DB_set_solo_by_hash($me,$_REQUEST["solo"]);
DB_set_sickness_by_hash($me,"solo");
+ echo "Seems like you want to play a ".$_REQUEST["solo"]." solo. Got it.\n";
+
+ if($gametype == "solo" && $startplayer<$mypos)
+ {}/* do nothing */
+ else
+ {
+ DB_set_gametype_by_gameid($gameid,"solo");
+ DB_set_startplayer_by_gameid($gameid,$mypos);
+ DB_set_solo_by_gameid($gameid,$_REQUEST["solo"]);
+ };
}
else if($_REQUEST["wedding"] == "yes")
{
+ /* TODO: add silent solo somewhere*/
echo "wedding was chosen<br />\n";
DB_set_sickness_by_hash($me,"wedding");
}
@@ -209,14 +224,14 @@ else if(myisset("me"))
DB_set_sickness_by_hash($me,"nines");
}
}
+
DB_set_hand_status_by_hash($me,'poverty');
-
+
/* check all players and set game to final result, e.g. solo, wedding, povert, redeal */
-
- /* 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.
+ /* here we need to check if there is a solo or some other form of sickness.
* If so, which one counts
* set that one in the Game table, delete other ones form Hand table
* tell people about it.
@@ -246,6 +261,24 @@ else if(myisset("me"))
* in case of 'play' there is a break later that skips the last part
*/
+ /* figure out what kind of game we are playing,
+ * set the global variables $TRUMP,$DIAMONDS,$HEARTS,$CLUBS,$SPADES
+ * accordingly
+ */
+
+ $gametype = DB_get_gametype_by_gameid($gameid);
+ $GT = $gametype;
+ if($gametype=="solo")
+ {
+ $gametype = DB_get_solo_by_gameid($gameid);
+ $GT = $gametype." ".$GT;
+ }
+ else
+ $gametype="normal";
+
+ set_gametype($gametype);
+
+
/* display useful things in divs */
/* display local time */
@@ -263,7 +296,7 @@ else if(myisset("me"))
};
echo "</table>\n</div>\n";
- display_status();
+ display_status($GT);
/* display links to the users status page */
$result = mysql_query("SELECT email,password from User WHERE id='$myid'" );
@@ -324,6 +357,7 @@ else if(myisset("me"))
$play = array(); /* needed to calculate winner later */
$seq = 1;
$pos = 0;
+ $firstcard = ""; /* first card in a trick */
echo "\n<ul class=\"tricks\">\n";
echo " <li> Hello $myname! History: </li>\n";
@@ -338,20 +372,27 @@ else if(myisset("me"))
/* save card to be able to find the winner of the trick later */
$play[$pos] = $r[0];
- if($trick!=$lasttrick && $seq==1)
- {
- /* start of an old trick? */
- echo " <li onclick=\"hl('$trickNR');\"><a href=\"#\">Trick $trickNR</a>\n".
- " <div class=\"trick\" id=\"trick".$trickNR."\">\n".
- " <img class=\"arrow\" src=\"pics/arrow".($pos-1).".png\" alt=\"table\" />\n";
- }
- else if($trick==$lasttrick && $seq==1)
+ if($seq==1)
{
- /* start of a last trick? */
- echo " <li onclick=\"hl('$trickNR');\"><a href=\"#\">Current Trick</a>\n".
- " <div class=\"trick\" id=\"trick".$trickNR."\">\n".
- " <img class=\"arrow\" src=\"pics/arrow".($pos-1).".png\" alt=\"table\" />\n";
- }
+ /* first card in a trick, output some html */
+ if($trick!=$lasttrick)
+ {
+ /* start of an old trick? */
+ echo " <li onclick=\"hl('$trickNR');\"><a href=\"#\">Trick $trickNR</a>\n".
+ " <div class=\"trick\" id=\"trick".$trickNR."\">\n".
+ " <img class=\"arrow\" src=\"pics/arrow".($pos-1).".png\" alt=\"table\" />\n";
+ }
+ else if($trick==$lasttrick)
+ {
+ /* start of a last trick? */
+ echo " <li onclick=\"hl('$trickNR');\"><a href=\"#\">Current Trick</a>\n".
+ " <div class=\"trick\" id=\"trick".$trickNR."\">\n".
+ " <img class=\"arrow\" src=\"pics/arrow".($pos-1).".png\" alt=\"table\" />\n";
+ };
+
+ /* remember first card, so that we are able to check, what cards can be played */
+ $firstcard = $r[0];
+ };
/* display card */
echo " <div class=\"card".($pos-1)."\">\n";
@@ -381,8 +422,9 @@ else if(myisset("me"))
/* whos turn is it? */
if($seq==4)
{
- $winner = get_winner($play,"normal"); /* returns the position */
+ $winner = get_winner($play,$gametype); /* returns the position */
$next = $winner;
+ $firstcard = ""; /* new trick, no first card */
}
else
{
@@ -455,7 +497,7 @@ else if(myisset("me"))
if($sequence==4)
{
$play = DB_get_cards_by_trick($trickid);
- $winner = get_winner($play,"normal"); /* returns the position */
+ $winner = get_winner($play,$gametype); /* returns the position */
$next = $winner;
}
else
@@ -497,8 +539,19 @@ else if(myisset("me"))
echo "Hello ".$myname.", it's your turn! <br />\n";
echo "Your cards are: <br />\n";
echo "<form action=\"index.php?me=$me\" method=\"post\">\n";
+
+ /* do we have to follow suit? */
+ $followsuit = 0;
+ if(have_suit($mycards,$firstcard))
+ $followsuit = 1;
+
foreach($mycards as $card)
- display_link_card($card);
+ {
+ if($followsuit && !same_type($card,$firstcard))
+ display_card($card);
+ else
+ display_link_card($card);
+ }
echo "<br />\nA short comments:<input name=\"comment\" type=\"text\" size=\"30\" maxlength=\"50\" />\n";
echo "<input type=\"hidden\" name=\"me\" value=\"$me\" />\n";
diff --git a/output.php b/output.php
index 5b79681..000c2b2 100644
--- a/output.php
+++ b/output.php
@@ -2,10 +2,10 @@
/* functions which only ouput html */
-function display_status()
+function display_status($gametype)
{
echo "<div class=\"info\">";
- echo " is someone playing solo, etc?";
+ echo " Gametype: $gametype";
echo "</div>\n";
return;
@@ -142,7 +142,7 @@ function check_for_sickness($me,$mycards)
<?php
- echo "wedding?";
+ echo "wedding?";
if(check_wedding($mycards))
{
echo " yes<input type=\"radio\" name=\"wedding\" value=\"yes\" checked=\"checked\" />";