- }
- echo "</div>\n";
-
- /* check if we need to set status to 'gameover' is done during playing of the card */
- if($mystatus=='play')
- break;
- /* the following happens only when the gamestatus is 'gameover' */
- /* check if game is over, display results */
- if(DB_get_game_status_by_gameid($gameid)=='play')
- {
- echo "the game is over for you.. other people still need to play though";
- }
- else
- {
- echo "the game is over now... guess the final score should be displayed here...<br />\n";
-
- /* suggest a new game with the same people in it, just rotated once */
- $names = DB_get_all_names_by_gameid($gameid);
-
- echo "Do you want to continue playing?(This will start a new game, with the next person as dealer.)\n";
- echo "<form action=\"index.php\" methog=\"post\">\n";
- echo " <input type=\"hidden\" name=\"PlayerA\" value=\"".($names[1])."\" />\n";
- echo " <input type=\"hidden\" name=\"PlayerB\" value=\"".($names[2])."\" />\n";
- echo " <input type=\"hidden\" name=\"PlayerC\" value=\"".($names[3])."\" />\n";
- echo " <input type=\"hidden\" name=\"PlayerD\" value=\"".($names[0])."\" />\n";
- echo " <input type=\"hidden\" name=\"followup\" value=\"".($gameid)."\" />\n";
- echo " <input type=\"submit\" value=\"keep playing\" />\n";
- echo "</form>\n";
- }
+ echo "</div>\n";
+
+ /*check if we still have cards left, else set status to gameover */
+ if(sizeof(DB_get_hand($me))==0)
+ {
+ DB_set_hand_status_by_hash($me,'gameover');
+ $mystatus='gameover';
+ }
+
+ /* 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");
+ /* 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["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 */
+ /* individual score */
+ $result = mysql_query("SELECT fullname, SUM(score), Hand.party 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[2].") ".$r[1]."\n";
+ $message .= "\nIf your not in the list above your score is zero...\n\n";
+
+ $result = mysql_query("SELECT Hand.party, 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 Hand.party" );
+ $message .= "\n";
+ while( $r = mysql_fetch_array($result,MYSQL_NUM))
+ $message .= " FINAL SCORE: ".$r[0]." ".$r[1]."\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,$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["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 <br />";
+
+ /* who is the next player? */
+ $next = $winner;
+ }
+ else
+ {
+ $next = DB_get_pos_by_hash($me)+1;
+ }
+ if($next==5) $next=1;
+
+ /* email next player */
+ $next_hash = DB_get_hash_from_game_and_pos($gameid,$next);
+ $email = DB_get_email_by_hash($next_hash);
+
+ $message = "It's your turn now.\n".
+ "Use this link to play a card: ".$host."?me=".$next_hash."\n\n" ;
+ mymail($email,$EmailName."a card has been played",$message);
+
+ if($debug)
+ echo "DEBUG:<a href=\"index.php?me=".DB_get_hash_from_game_and_pos($gameid,$next).
+ "\"> next player </a> <br />\n";
+
+ }
+ }
+ else
+ {
+ echo "can't find that card?! <br />\n";
+ }
+ }
+ else if(myisset("card") && !$myturn )
+ {
+ echo "please wait until it's your turn! <br />\n";
+ }
+
+ $mycards = DB_get_hand($me);
+ $mycards = mysort($mycards,$gametype);
+ echo "<div class=\"mycards\">\n";
+
+ if($myturn && !myisset("card"))
+ {
+ 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 suite? */
+ $followsuit = 0;
+ if(have_suit($mycards,$firstcard))
+ $followsuit = 1;
+
+ foreach($mycards as $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";
+ echo "<input type=\"submit\" value=\"move\" />\n";
+ echo "</form>\n";
+ }
+ else if($mystatus=='play')
+ {
+ echo "Your cards are: <br />\n";
+ foreach($mycards as $card)
+ display_card($card);
+ }
+ else if($mystatus=='gameover')
+ {
+ $oldcards = DB_get_all_hand($me);
+ $oldcards = mysort($oldcards,$gametype);
+ echo "Your cards were: <br />\n";
+ foreach($oldcards as $card)
+ display_card($card);
+ }
+ echo "</div>\n";
+
+ /* check if we need to set status to 'gameover' is done during playing of the card */
+ if($mystatus=='play')