* FIX: added extra check for calling 120, etc. so that people can't cheat
authorarun <arun@nubati.net>
Thu, 7 Jun 2007 18:09:08 +0000 (18:09 +0000)
committerarun <arun>
Thu, 7 Jun 2007 18:09:08 +0000 (18:09 +0000)
* NEW: display sessions
* NEW: display who's turn it is on the userpage (change in DB)
* NEW: different ways when to say 90, 60, etc.  (change in DB)
* MISC: some clean up, e.g. display of final score

create_database.sql
css/standard.css
db.php
functions.php
index.php

index 4b75c479896c35457782a0e1b9cafcddd55956ae..b480bf3b8b68dcec0df70fcec7a68abdec17dfc0 100644 (file)
@@ -74,6 +74,7 @@ CREATE TABLE `Game` (
   `solo` enum('trumpless','jack','queen','trump','club','spade','heart','silent') default NULL,
   `sickness` int(11) default NULL,
   `startplayer` tinyint(4) default '1', 
   `solo` enum('trumpless','jack','queen','trump','club','spade','heart','silent') default NULL,
   `sickness` int(11) default NULL,
   `startplayer` tinyint(4) default '1', 
+  `playerid` int(11) default NULL, 
   `status` enum('pre','play','gameover') default NULL,
   `ruleset` int(11) default NULL,
   `session` int(11) default NULL,
   `status` enum('pre','play','gameover') default NULL,
   `ruleset` int(11) default NULL,
   `session` int(11) default NULL,
@@ -102,6 +103,7 @@ CREATE TABLE `Rulesets` (
   `create_date` timestamp NOT NULL default '0000-00-00 00:00:00',
   `dullen` enum('none','firstwins','secondwins') default 'secondwins',
   `schweinchen` enum ('none','both','second','secondaftercall') default 'second',
   `create_date` timestamp NOT NULL default '0000-00-00 00:00:00',
   `dullen` enum('none','firstwins','secondwins') default 'secondwins',
   `schweinchen` enum ('none','both','second','secondaftercall') default 'second',
+  `call` enum ('1st-own-card','5th-card','9-cards') default '1st-own-card',
   `id` int(11) NOT NULL auto_increment,
   UNIQUE KEY `id` (`id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
   `id` int(11) NOT NULL auto_increment,
   UNIQUE KEY `id` (`id`)
 ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
index d6eebc594718537705f3430e5c3e0a9c67ba46f8..a54d165867faac37220261e6b28ca59ccc54fcb9 100644 (file)
@@ -242,6 +242,9 @@ ul.tricks li div div.card3 span{
   padding:0;
 }
 
   padding:0;
 }
 
+.session {
+  border-bottom:1px solid black;
+}
 
 .ruleset {
   float:left;
 
 .ruleset {
   float:left;
diff --git a/db.php b/db.php
index 64a80b9f7abfc10e597a4fbb78c37807364f87a5..935c8486660d3d8453596dc65fac6db4f587fe7d 100644 (file)
--- a/db.php
+++ b/db.php
@@ -629,6 +629,24 @@ function DB_set_startplayer_by_gameid($id,$p)
   return;
 }
 
   return;
 }
 
+function DB_get_player_by_gameid($id)
+{
+  $result = mysql_query("SELECT player 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_player_by_gameid($id,$p)
+{
+  mysql_query("UPDATE Game SET player='".DB_quote_smart($p)."' WHERE id=".DB_quote_smart($id));
+  return;
+}
+
+
+
 function DB_get_ruleset_by_gameid($id)
 {
   $result = mysql_query("SELECT ruleset FROM Game WHERE id=".DB_quote_smart($id));
 function DB_get_ruleset_by_gameid($id)
 {
   $result = mysql_query("SELECT ruleset FROM Game WHERE id=".DB_quote_smart($id));
@@ -662,6 +680,20 @@ function DB_get_max_session()
     return 0;
 }
 
     return 0;
 }
 
+function DB_get_hashes_by_session($session,$user)
+{
+  $r = array();
+
+  $result = mysql_query("SELECT Hand.hash FROM Hand".
+                       " LEFT JOIN Game ON Game.id=Hand.game_id ".
+                       " WHERE Game.session=".DB_quote_smart($session).
+                       " AND Hand.user_id=".DB_quote_smart($user));
+  while($t = mysql_fetch_array($result,MYSQL_NUM))
+    $r[] = $t[0];
+
+  return $r;
+}
+
 function DB_get_ruleset($dullen,$schweinchen)
 {
   $r = array();
 function DB_get_ruleset($dullen,$schweinchen)
 {
   $r = array();
index 893f916c68271ba1d0151b83ee288969034094e1..997ba43e154af02582aa59ff981015d2e85628fa 100644 (file)
@@ -656,7 +656,7 @@ function can_call($what,$hash)
   $gameid   = DB_get_gameid_by_hash($hash);
   $gametype = DB_get_gametype_by_gameid($gameid);
 
   $gameid   = DB_get_gameid_by_hash($hash);
   $gametype = DB_get_gametype_by_gameid($gameid);
 
-  $NRcards  = count(DB_get_hand($me));
+  $NRcards  = count(DB_get_hand($hash));
   
   $NRallcards = 0;
   for ($i=1;$i<5;$i++)
   
   $NRallcards = 0;
   for ($i=1;$i<5;$i++)
index 8e4f17f1293c03ed309c597b52629b4f08de9a7c..a2cf35b0cd2f38a1085e1088c5d6fa258ab5e530 100644 (file)
--- a/index.php
+++ b/index.php
@@ -101,9 +101,9 @@ if(myisset("new"))
            /* get max session */
            $max = DB_get_max_session();
            $max++;
            /* get max session */
            $max = DB_get_max_session();
            $max++;
+           mysql_query("UPDATE Game SET session='".$max."' WHERE id=".DB_quote_smart($followup));
            mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', 'normal', NULL,NULL,'1','pre',".
                        "'$ruleset','$max' ,NULL)");
            mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', 'normal', NULL,NULL,'1','pre',".
                        "'$ruleset','$max' ,NULL)");
-           mysql_query("UPDATE Game SET session='".$max."' WHERE id=".DB_quote_smart($followup));
          }
       }
     else
          }
       }
     else
@@ -233,6 +233,7 @@ else if(myisset("me"))
     $mystatus = DB_get_status_by_hash($me);
     $mypos    = DB_get_pos_by_hash($me);
     $myhand   = DB_get_handid_by_hash($me);
     $mystatus = DB_get_status_by_hash($me);
     $mypos    = DB_get_pos_by_hash($me);
     $myhand   = DB_get_handid_by_hash($me);
+    $session  = DB_get_session_by_gameid($gameid);
 
     /* get prefs and save them */
     DB_get_PREF($myid);
 
     /* get prefs and save them */
     DB_get_PREF($myid);
@@ -247,7 +248,7 @@ else if(myisset("me"))
 
     $RULES["dullen"]      = $r[2];
     $RULES["schweinchen"] = $r[3];
 
     $RULES["dullen"]      = $r[2];
     $RULES["schweinchen"] = $r[3];
-    $RULES["call"]        = "1st-own-card";
+    $RULES["call"]        = $r[4];
 
 
     /* get some infos about the game */
 
 
     /* get some infos about the game */
@@ -269,7 +270,27 @@ else if(myisset("me"))
     echo "Rules: <br />\n";
     echo "10ofhearts : ".$r[2]."<br />\n";
     echo "schweinchen: ".$r[3]."<br />\n";
     echo "Rules: <br />\n";
     echo "10ofhearts : ".$r[2]."<br />\n";
     echo "schweinchen: ".$r[3]."<br />\n";
+    echo "call:        ".$r[4]."<br />\n";
     echo "</div>\n";
     echo "</div>\n";
+
+    /* output extra division in case this game is part of a session */
+    if($session)
+      {
+       echo "<div class=\"session\">\n".
+         "This game is part of session $session: \n";
+       $hashes = DB_get_hashes_by_session($session,$myid);
+       $i = 1;
+       foreach($hashes as $hash)
+         {
+           if($hash == $me)
+             echo "$i ";
+           else 
+             echo "<a href=\"".$host."?me=".$hash."\">$i</a> ";
+           $i++;
+         }
+       echo "</div>\n";
+      }
+
     
     /* does anyone have both foxes */
     $GAME["schweinchen"]=0; 
     
     /* does anyone have both foxes */
     $GAME["schweinchen"]=0; 
@@ -405,35 +426,35 @@ else if(myisset("me"))
                " is playing solo, this game will be canceled.<br />\n";
              DB_set_sickness_by_hash($me,"nines");
            }
                " is playing solo, this game will be canceled.<br />\n";
              DB_set_sickness_by_hash($me,"nines");
            }
-       }
-
-      echo " Ok, done with checking, please go to the <a href=\"$host?me=$me\">next step of the setup</a>.<br />";
-
-      /* move on to the next stage*/
-      DB_set_hand_status_by_hash($me,'poverty');
-
-      /* check if everyone has reached this stage, send out email */
-      $userids = DB_get_all_userid_by_gameid($gameid);
-      $ok=1;
-      foreach($userids as $user)
-       {
-         $userstat = DB_get_hand_status_by_userid_and_gameid($user,$gameid);
-         if($userstat!='poverty' && $userstat!='play')
-           $ok=0;
-       };
-      if($ok)
-       foreach($userids as $user)
-         {
-           $To = DB_get_email_by_userid($user);
-           $userhash =DB_get_hash_from_gameid_and_userid($gameid,$user);
-           if($userhash!=$me)
+         
+         echo " Ok, done with checking, please go to the <a href=\"$host?me=$me\">next step of the setup</a>.<br />";
+         
+         /* move on to the next stage*/
+         DB_set_hand_status_by_hash($me,'poverty');
+         
+         /* check if everyone has reached this stage, send out email */
+         $userids = DB_get_all_userid_by_gameid($gameid);
+         $ok=1;
+         foreach($userids as $user)
+           {
+             $userstat = DB_get_hand_status_by_userid_and_gameid($user,$gameid);
+             if($userstat!='poverty' && $userstat!='play')
+               $ok=0;
+           };
+         if($ok)
+           foreach($userids as $user)
              {
              {
-               $message = "Everyone finish the questionary in game $gameid, ".
-                          "please visit this link now to continue: \n".
-                          " ".$host."?me=".$userhash."\n\n" ;
-               mymail($To,$EmailName." finished setup in game $gameid",$message);
-             }
-         };
+               $To = DB_get_email_by_userid($user);
+               $userhash =DB_get_hash_from_gameid_and_userid($gameid,$user);
+               if($userhash!=$me)
+                 {
+                   $message = "Everyone finish the questionary in game $gameid, ".
+                     "please visit this link now to continue: \n".
+                     " ".$host."?me=".$userhash."\n\n" ;
+                   mymail($To,$EmailName." finished setup in game $gameid",$message);
+                 }
+             };
+       };
 
       break;
 
 
       break;
 
@@ -472,12 +493,10 @@ else if(myisset("me"))
          $startplayer = DB_get_startplayer_by_gameid($gameid);
 
          /* check for different sickness and just output a general info */
          $startplayer = DB_get_startplayer_by_gameid($gameid);
 
          /* check for different sickness and just output a general info */
-
-         
-         $nines = 0;
+         $nines   = 0;
          $poverty = 0;
          $wedding = 0;
          $poverty = 0;
          $wedding = 0;
-         $solo = 0;
+         $solo    = 0;
          foreach($userids as $user)
            {
              $name = DB_get_name_by_userid($user);
          foreach($userids as $user)
            {
              $name = DB_get_name_by_userid($user);
@@ -507,7 +526,6 @@ else if(myisset("me"))
 
          /* now check which sickness comes first and set the gametype to it */
 
 
          /* now check which sickness comes first and set the gametype to it */
 
-         /* gamestatus == normal, => cancel game */
          if($gametype == "solo")
            {
              /* do nothing */
          if($gametype == "solo")
            {
              /* do nothing */
@@ -538,7 +556,7 @@ else if(myisset("me"))
              DB_close();
              exit();
            }
              DB_close();
              exit();
            }
-         else if($poverty==1)
+         else if($poverty==1) /* one person has poverty */
            {
              DB_set_gametype_by_gameid($gameid,"poverty");
              $gametype = "poverty";
            {
              DB_set_gametype_by_gameid($gameid,"poverty");
              $gametype = "poverty";
@@ -552,7 +570,7 @@ else if(myisset("me"))
                    DB_set_sickness_by_gameid($gameid,1); /* who needs to be asked first */
                }
            }
                    DB_set_sickness_by_gameid($gameid,1); /* who needs to be asked first */
                }
            }
-         else if($poverty==2)
+         else if($poverty==2) /* two people have poverty */
            {
              DB_set_gametype_by_gameid($gameid,"dpoverty");
              $gametype = "dpoverty";
            {
              DB_set_gametype_by_gameid($gameid,"dpoverty");
              $gametype = "dpoverty";
@@ -698,7 +716,8 @@ else if(myisset("me"))
                    {
                      $To       = DB_get_email_by_pos_and_gameid($who,$gameid);
                      $userhash = DB_get_hash_from_game_and_pos($gameid,$who);
                    {
                      $To       = DB_get_email_by_pos_and_gameid($who,$gameid);
                      $userhash = DB_get_hash_from_game_and_pos($gameid,$who);
-                     
+                     DB_set_player_by_gameid($gameid,$who);
+
                      $message = "Someone has poverty, it's your turn to decide, if you want to take the trump. Please visit:".
                        " ".$host."?me=".$userhash."\n\n" ;
                      mymail($To,$EmailName." poverty (game $gameid)",$message);
                      $message = "Someone has poverty, it's your turn to decide, if you want to take the trump. Please visit:".
                        " ".$host."?me=".$userhash."\n\n" ;
                      mymail($To,$EmailName." poverty (game $gameid)",$message);
@@ -777,7 +796,8 @@ else if(myisset("me"))
                            {
                              $To       = DB_get_email_by_pos_and_gameid($who,$gameid);
                              $userhash = DB_get_hash_from_game_and_pos($gameid,$who);
                            {
                              $To       = DB_get_email_by_pos_and_gameid($who,$gameid);
                              $userhash = DB_get_hash_from_game_and_pos($gameid,$who);
-                             
+                             DB_set_player_by_gameid($gameid,$who);
+
                              $message = "Someone has poverty, it's your turn to decide, ".
                                         "if you want to take the trump. Please visit:".
                                         " ".$host."?me=".$userhash."\n\n" ;
                              $message = "Someone has poverty, it's your turn to decide, ".
                                         "if you want to take the trump. Please visit:".
                                         " ".$host."?me=".$userhash."\n\n" ;
@@ -924,6 +944,8 @@ else if(myisset("me"))
          $startplayer = DB_get_startplayer_by_gameid($gameid);
          $email       = DB_get_email_by_pos_and_gameid($startplayer,$gameid);
          $hash        = DB_get_hash_from_game_and_pos($gameid,$startplayer);
          $startplayer = DB_get_startplayer_by_gameid($gameid);
          $email       = DB_get_email_by_pos_and_gameid($startplayer,$gameid);
          $hash        = DB_get_hash_from_game_and_pos($gameid,$startplayer);
+         $who         = DB_get_userid_by_email($email);
+         DB_set_player_by_gameid($gameid,$who);
          
          if($hash!=$me)
            {
          
          if($hash!=$me)
            {
@@ -992,7 +1014,8 @@ else if(myisset("me"))
                            "        Hand.party as party, ".
                            "        Hand.sickness as sickness, ".
                            "        Hand.point_call, ".
                            "        Hand.party as party, ".
                            "        Hand.sickness as sickness, ".
                            "        Hand.point_call, ".
-                           "        User.last_login ".
+                           "        User.last_login, ".
+                           "        Hand.hash        ".
                            "FROM Hand ".
                            "LEFT JOIN User ON User.id=Hand.user_id ".
                            "WHERE Hand.game_id='".$gameid."' ".
                            "FROM Hand ".
                            "LEFT JOIN User ON User.id=Hand.user_id ".
                            "WHERE Hand.game_id='".$gameid."' ".
@@ -1009,13 +1032,19 @@ else if(myisset("me"))
          $sickness  = $r[4];
          $call      = $r[5];
          $lastlogin = strtotime($r[6]);
          $sickness  = $r[4];
          $call      = $r[5];
          $lastlogin = strtotime($r[6]);
-         
+         $hash      = $r[7];
+
          $offset = DB_get_user_timezone($user);
          $zone   = return_timezone($offset);
          date_default_timezone_set($zone);
 
          echo " <span class=\"table".($pos-1)."\">\n";
          $offset = DB_get_user_timezone($user);
          $zone   = return_timezone($offset);
          date_default_timezone_set($zone);
 
          echo " <span class=\"table".($pos-1)."\">\n";
-         echo " $name ";
+         if(!$debug)
+           echo " $name \n";
+         else
+           {
+             echo "<a href=\"".$host."?me=".$hash."\">$name</a>\n";
+           }
          /* add hints for poverty, wedding, solo, etc */
          if($GT=="poverty" && $party=="re")
            if($sickness=="poverty")
          /* add hints for poverty, wedding, solo, etc */
          if($GT=="poverty" && $party=="re")
            if($sickness=="poverty")
@@ -1210,25 +1239,24 @@ else if(myisset("me"))
            {
              $comment = "";
 
            {
              $comment = "";
 
-             /* mark card as played */
-             mysql_query("UPDATE Hand_Card SET played='true' WHERE hand_id='$handid' AND card_id=".
-                         DB_quote_smart($card));
-
              /* update Game timestamp */
              DB_update_game_timestamp($gameid);
 
              /* update Game timestamp */
              DB_update_game_timestamp($gameid);
 
-             /* check if a call was made */
-             if(myisset("call120") && $_REQUEST["call120"] == "yes")
+             /* check if a call was made, must do this before we set the card status to played */
+             if(myisset("call120") && $_REQUEST["call120"] == "yes" && can_call(120,$me))
                $result = mysql_query("UPDATE Hand SET point_call='120' WHERE hash='$me' ");
                $result = mysql_query("UPDATE Hand SET point_call='120' WHERE hash='$me' ");
-             if(myisset("call90")  && $_REQUEST["call90"]  == "yes")
+             if(myisset("call90")  && $_REQUEST["call90"]  == "yes" && can_call(90,$me))
                $result = mysql_query("UPDATE Hand SET point_call='90'  WHERE hash='$me' ");
                $result = mysql_query("UPDATE Hand SET point_call='90'  WHERE hash='$me' ");
-             if(myisset("call60")  && $_REQUEST["call60"]  == "yes")
+             if(myisset("call60")  && $_REQUEST["call60"]  == "yes" && can_call(60,$me))
                $result = mysql_query("UPDATE Hand SET point_call='60'  WHERE hash='$me' ");
                $result = mysql_query("UPDATE Hand SET point_call='60'  WHERE hash='$me' ");
-             if(myisset("call30")  && $_REQUEST["call30"]  == "yes")
+             if(myisset("call30")  && $_REQUEST["call30"]  == "yes" && can_call(30,$me))
                $result = mysql_query("UPDATE Hand SET point_call='30'  WHERE hash='$me' ");
                $result = mysql_query("UPDATE Hand SET point_call='30'  WHERE hash='$me' ");
-             if(myisset("call0")   && $_REQUEST["call0"]   == "yes")
+             if(myisset("call0")   && $_REQUEST["call0"]   == "yes" && can_call(0,$me))
                $result = mysql_query("UPDATE Hand SET point_call='0'   WHERE hash='$me' ");
                
                $result = mysql_query("UPDATE Hand SET point_call='0'   WHERE hash='$me' ");
                
+             /* mark card as played */
+             mysql_query("UPDATE Hand_Card SET played='true' WHERE hand_id='$handid' AND card_id=".
+                         DB_quote_smart($card));
 
              /* check for schweinchen */
              //echo "schweinchen = ".$GAME["schweinchen"]." --$card-<br />";
 
              /* check for schweinchen */
              //echo "schweinchen = ".$GAME["schweinchen"]." --$card-<br />";
@@ -1337,24 +1365,24 @@ else if(myisset("me"))
                  
                  /* email all players */
                  /* individual score */
                  
                  /* email all players */
                  /* individual score */
-                 $result = mysql_query("SELECT fullname, SUM(score), Hand.party FROM Score".
-                                       " LEFT JOIN Hand ON Hand.id=hand_id".
+                 $result = mysql_query("SELECT fullname, IFNULL(SUM(score),0), Hand.party FROM Hand".
+                                       " LEFT JOIN Score ON Hand.id=Score.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";
                                        " 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";
+                 $message .= "Final score:\n";
                  while( $r = mysql_fetch_array($result,MYSQL_NUM))
                  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";
+                   $message .= "   ".$r[0]."(".$r[2].") ".$r[1]."\n";
 
 
-                 $result = mysql_query("SELECT Hand.party, SUM(score) FROM Score".
-                                       " LEFT JOIN Hand ON Hand.id=hand_id".
+                 $result = mysql_query("SELECT Hand.party, IFNULL(SUM(score),0) FROM Hand".
+                                       " LEFT JOIN Score ON Hand.id=Score.hand_id".
                                        " LEFT JOIN User ON Hand.user_id=User.id".
                                        " WHERE Hand.game_id=$gameid".
                                        " GROUP BY Hand.party" );
                                        " LEFT JOIN User ON Hand.user_id=User.id".
                                        " WHERE Hand.game_id=$gameid".
                                        " GROUP BY Hand.party" );
-                 $message .= "\n";
+                 $message .= "\nTotals:\n";
                  while( $r = mysql_fetch_array($result,MYSQL_NUM))
                  while( $r = mysql_fetch_array($result,MYSQL_NUM))
-                   $message .= " FINAL SCORE: ".$r[0]." ".$r[1]."\n";
+                   $message .= "    ".$r[0]." ".$r[1]."\n";
                  
                  /* check who wants to be CC'ed on the email */
                  $h = array();
                  
                  /* check who wants to be CC'ed on the email */
                  $h = array();
@@ -1415,7 +1443,9 @@ else if(myisset("me"))
                  /* email next player */
                  $next_hash = DB_get_hash_from_game_and_pos($gameid,$next);
                  $email     = DB_get_email_by_hash($next_hash);
                  /* email next player */
                  $next_hash = DB_get_hash_from_game_and_pos($gameid,$next);
                  $email     = DB_get_email_by_hash($next_hash);
-                 
+                 $who       = DB_get_userid_by_email($email);
+                 DB_set_player_by_gameid($gameid,$who);
+
                  $message = "A card has been played in game $gameid.\n\n".
                    "It's your turn  now.\n".
                    "Use this link to play a card: ".$host."?me=".$next_hash."\n\n" ;
                  $message = "A card has been played in game $gameid.\n\n".
                    "It's your turn  now.\n".
                    "Use this link to play a card: ".$host."?me=".$next_hash."\n\n" ;
@@ -1494,7 +1524,7 @@ else if(myisset("me"))
        }
       echo "</div>\n";
       
        }
       echo "</div>\n";
       
-      /* check if we need to set status to 'gameover' is done during playing of the card */
+      /* if the game is over do some extra stuff, therefore exit the swtich statement if we are still playing*/
       if($mystatus=='play')
        break;
       /* the following happens only when the gamestatus is 'gameover' */
       if($mystatus=='play')
        break;
       /* the following happens only when the gamestatus is 'gameover' */
@@ -1507,22 +1537,27 @@ else if(myisset("me"))
        {
          echo "the game is over now...<br />\n";
          
        {
          echo "the game is over now...<br />\n";
          
-         $result = mysql_query("SELECT fullname, SUM(score), Hand.party FROM Score".
-                               " LEFT JOIN Hand ON Hand.id=hand_id".
+         $result = mysql_query("SELECT fullname, IFNULL(SUM(score),0), Hand.party FROM Hand".
+                               " LEFT JOIN Score ON Hand.id=Score.hand_id".
                                " LEFT JOIN User ON Hand.user_id=User.id".
                                " WHERE Hand.game_id=$gameid".
                                " GROUP BY fullname" );
                                " LEFT JOIN User ON Hand.user_id=User.id".
                                " WHERE Hand.game_id=$gameid".
                                " GROUP BY fullname" );
+         echo "Final Score:<br />\n".
+           " <table>\n";;
          while( $r = mysql_fetch_array($result,MYSQL_NUM))
          while( $r = mysql_fetch_array($result,MYSQL_NUM))
-           echo " FINAL SCORE: ".$r[0]."(".$r[2].") ".$r[1]."<br />";
-         
-         $result = mysql_query("SELECT Hand.party, SUM(score) FROM Score".
-                               " LEFT JOIN Hand ON Hand.id=hand_id".
+           echo "  <tr><td>  ".$r[0]."</td><td>(".$r[2].")</td><td> ".$r[1]."</td></tr>";
+         echo "</table>\n";
+
+         $result = mysql_query("SELECT Hand.party, IFNULL(SUM(score),0) FROM Hand".
+                               " LEFT JOIN Score ON Hand.id=Score.hand_id".
                                " LEFT JOIN User ON Hand.user_id=User.id".
                                " WHERE Hand.game_id=$gameid".
                                " GROUP BY Hand.party" );
                                " LEFT JOIN User ON Hand.user_id=User.id".
                                " WHERE Hand.game_id=$gameid".
                                " GROUP BY Hand.party" );
+         echo "Totals:<br />\n".
+           " <table> \n";
          while( $r = mysql_fetch_array($result,MYSQL_NUM))
          while( $r = mysql_fetch_array($result,MYSQL_NUM))
-           echo " FINAL SCORE: ".$r[0]." ".$r[1]."<br />\n";
-
+           echo "  <tr><td>".$r[0]."</td><td> ".$r[1]."</td></tr>\n";
+         echo "</table>\n";
          
          $session = DB_get_session_by_gameid($gameid);
          $result  = mysql_query("SELECT id,create_date FROM Game".
          
          $session = DB_get_session_by_gameid($gameid);
          $result  = mysql_query("SELECT id,create_date FROM Game".
@@ -1643,12 +1678,22 @@ else if(myisset("me"))
               DB_update_user_timestamp($uid);
               
               echo "<p>these are your games that haven't started yet:<br />\n";
               DB_update_user_timestamp($uid);
               
               echo "<p>these are your games that haven't started yet:<br />\n";
-              $result = mysql_query("SELECT Hand.hash,Hand.game_id,Game.mod_date from Hand".
+              $result = mysql_query("SELECT Hand.hash,Hand.game_id,Game.mod_date,Game.player from Hand".
                                     " LEFT JOIN Game On Hand.game_id=Game.id".
                                     " WHERE Hand.user_id='$uid' AND Game.status='pre'" );
               while( $r = mysql_fetch_array($result,MYSQL_NUM))
                 {
                   echo "<a href=\"".$host."?me=".$r[0]."\">game #".$r[1]." </a>";
                                     " LEFT JOIN Game On Hand.game_id=Game.id".
                                     " WHERE Hand.user_id='$uid' AND Game.status='pre'" );
               while( $r = mysql_fetch_array($result,MYSQL_NUM))
                 {
                   echo "<a href=\"".$host."?me=".$r[0]."\">game #".$r[1]." </a>";
+                  if($r[3])
+                    {
+                      if($r[3]==$uid)
+                        echo "(it's <strong>your</strong> turn)\n";
+                      else
+                        {
+                          $name = DB_get_name_by_userid($r[3]);
+                          echo "(it's $name's turn)\n";
+                        };
+                    }
                   if(time()-strtotime($r[2]) > 60*60*24*30)
                     echo " The game has been running for over a month.".
                       " Do you want to cancel it? <a href=\"$host?cancle=1&amp;me=".$r[0]."\">yes</a>".
                   if(time()-strtotime($r[2]) > 60*60*24*30)
                     echo " The game has been running for over a month.".
                       " Do you want to cancel it? <a href=\"$host?cancle=1&amp;me=".$r[0]."\">yes</a>".
@@ -1658,12 +1703,22 @@ else if(myisset("me"))
               echo "</p>\n";
 
               echo "<p>these are the games you are playing in:<br />\n";
               echo "</p>\n";
 
               echo "<p>these are the games you are playing in:<br />\n";
-              $result = mysql_query("SELECT Hand.hash,Hand.game_id,Game.mod_date from Hand".
+              $result = mysql_query("SELECT Hand.hash,Hand.game_id,Game.mod_date,Game.player from Hand".
                                     " LEFT JOIN Game On Hand.game_id=Game.id".
                                     " WHERE Hand.user_id='$uid' AND Game.status='play'" );
               while( $r = mysql_fetch_array($result,MYSQL_NUM))
                 {
                   echo "<a href=\"".$host."?me=".$r[0]."\">game #".$r[1]." </a>";
                                     " LEFT JOIN Game On Hand.game_id=Game.id".
                                     " WHERE Hand.user_id='$uid' AND Game.status='play'" );
               while( $r = mysql_fetch_array($result,MYSQL_NUM))
                 {
                   echo "<a href=\"".$host."?me=".$r[0]."\">game #".$r[1]." </a>";
+                  if($r[3])
+                    {
+                      if($r[3]==$uid)
+                        echo "(it's <strong>your</strong> turn)\n";
+                      else
+                        {
+                          $name = DB_get_name_by_userid($r[3]);
+                          echo "(it's $name's turn)\n";
+                        };
+                    }
                   if(time()-strtotime($r[2]) > 60*60*24*30)
                     echo " The game has been running for over a month.".
                       " Do you want to cancel it? <a href=\"$host?cancle=1&amp;me=".$r[0]."\">yes</a>".
                   if(time()-strtotime($r[2]) > 60*60*24*30)
                     echo " The game has been running for over a month.".
                       " Do you want to cancel it? <a href=\"$host?cancle=1&amp;me=".$r[0]."\">yes</a>".