\n".
+ "
\n";
+ };
+
+ /* remember first card, so that we are able to check, what cards can be played */
+ $firstcard = $r[0];
+ };
/* display card */
echo "
\n";
- $play[$pos]=$r[0];
-
- if($comment!="")
- echo "
\n"; /* end div card */
@@ -369,14 +552,15 @@ 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
{
$next = $pos+1;
+ if($next==5) $next=1;
}
- if($next==5) $next=1;
/* my turn?, display cards as links, ask for comments*/
if(DB_get_pos_by_hash($me) == $next)
@@ -399,7 +583,9 @@ else if(myisset("me"))
if($handcardid)
{
- mysql_query("UPDATE Hand_Card SET played='true' WHERE hand_id='$handid' AND card_id=".DB_quote_smart($card));
+ /* mark card as played */
+ mysql_query("UPDATE Hand_Card SET played='true' WHERE hand_id='$handid' AND card_id=".
+ DB_quote_smart($card));
/* get trick id or start new trick */
$a = DB_get_current_trickid($gameid);
@@ -408,17 +594,17 @@ else if(myisset("me"))
$playid = DB_play_card($trickid,$handcardid,$sequence);
- /*check for coment */
+ /* check for coment */
if(myisset("comment"))
{
DB_insert_comment($_REQUEST["comment"],$playid,$myid);
};
+ /* display played card */
echo "
";
echo " you played
";
display_card($card);
echo "
\n";
-
/*check if we still have cards left, else set status to gameover */
if(sizeof(DB_get_hand($me))==0)
@@ -427,23 +613,76 @@ else if(myisset("me"))
$mystatus='gameover';
}
- /* if all players are done, set game status to game over */
+ /* if all players are done, set game status to game over,
+ * get the points of the last trick and send out an email
+ * to all players
+ */
$userids = DB_get_all_userid_by_gameid($gameid);
+
$done=1;
foreach($userids as $user)
if(DB_get_hand_status_by_userid_and_gameid($user,$gameid)!='gameover')
$done=0;
if($done)
- DB_set_game_status_by_gameid($gameid,"gameover");
+ {
+ DB_set_game_status_by_gameid($gameid,"gameover");
+ /* get score for last trick
+ * all other tricks are handled a few lines further down*/
+ $play = DB_get_cards_by_trick($trickid);
+ $winner = get_winner($play,$gametype); /* returns the position */
+ /* get points of last trick and save it */
+ $points = 0;
+ foreach($play as $card)
+ $points = $points + card_value($card);
+ $winnerid = DB_get_handid_by_gameid_and_position($gameid,$winner);
+ if($winnerid>0)
+ mysql_query("INSERT INTO Score VALUES (NULL, '$gameid', '$winnerid', '$points')");
+ else
+ echo "ERROR during scoring";
+
+ /* email all players */
+ $result = mysql_query("SELECT fullname, SUM(score) FROM Score".
+ " LEFT JOIN Hand ON Hand.id=hand_id".
+ " LEFT JOIN User ON Hand.user_id=User.id".
+ " WHERE Hand.game_id=$gameid".
+ " GROUP BY fullname" );
+ $message = "The game is over. Thanks for playing :)\n";
+ while( $r = mysql_fetch_array($result,MYSQL_NUM))
+ $message .= " FINAL SCORE: ".$r[0]." ".$r[1]."\n";
+ $message .= "\nIf your not in the list above your score is zero...\n";
+ foreach($userids as $user)
+ {
+ $To = DB_get_email_by_userid($user);
+ mymail($To,$EmailName."game over",$message);
+ }
+ }
+
/* email next player */
if(DB_get_game_status_by_gameid($gameid)=='play')
{
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 */
+
+ /* get points of last trick and save it, last trick is handled
+ * a few lines further up */
+ $points = 0;
+ foreach($play as $card)
+ $points = $points + card_value($card);
+
+ $winnerid = DB_get_handid_by_gameid_and_position($gameid,$winner);
+ if($winnerid>0)
+ mysql_query("INSERT INTO Score VALUES (NULL, '$gameid', '$winnerid', '$points')");
+ else
+ echo "ERROR during scoring";
+
+ if($debug)
+ echo "DEBUG: $winner got $points
";
+
+ /* who is the next player? */
$next = $winner;
}
else
@@ -458,7 +697,7 @@ else if(myisset("me"))
$message = "It's your turn now.\n".
"Use this link to play a card: ".$host."?me=".$next_hash."\n\n" ;
- mymail($email,"[DoKo-debug] a card has been played",$message);
+ mymail($email,$EmailName."a card has been played",$message);
if($debug)
echo "DEBUG:
\n";
+ echo "can't find that card?!
\n";
}
}
else if(myisset("card") && !$myturn )
{
- echo "please wait until it is your turn!
\n";
+ echo "please wait until it's your turn!
\n";
}
$mycards = DB_get_hand($me);
- sort($mycards);
+ $mycards = mysort($mycards,$gametype);
echo "
\n";
if($myturn && !myisset("card"))
@@ -485,8 +724,19 @@ else if(myisset("me"))
echo "Hello ".$myname.", it's your turn!
\n";
echo "Your cards are:
\n";
echo "