new sort function; should sorrt correctly for solos,etc
[e-DoKo.git] / index.php
index 36b59efbd19e6d8ff2be26003cf2c762beaca169..ef047be0f0983f169174417b78b240a810ca9d07 100644 (file)
--- a/index.php
+++ b/index.php
@@ -1,6 +1,9 @@
 <?php
 error_reporting(E_ALL);
 
+global $REV;
+$REV  ="\$Rev$";
+
 include_once("config.php");      
 include_once("output.php");      /* html output only */
 include_once("db.php");          /* database only */
@@ -107,7 +110,9 @@ else if( myisset("PlayerA", "PlayerB","PlayerC","PlayerD" ))
     mymail($EmailB,"You are invited to a game of DoKo","Hello $PlayerB,\n".$message.$hashB);
     mymail($EmailC,"You are invited to a game of DoKo","Hello $PlayerC,\n".$message.$hashC);
     mymail($EmailD,"You are invited to a game of DoKo","Hello $PlayerD,\n".$message.$hashD);
-        
+
+    
+    echo "You started a new game. The emails have been sent out!";    
   }    
 /* end set up a new game */
 
@@ -159,7 +164,7 @@ else if(myisset("me"))
                foreach($userids as $user)
                  {
                    $To = DB_get_email_by_userid($user);
-                   mymail($To,"[DoKo] game over",$message);
+                   mymail($To,"[DoKo] game cancled",$message);
                  }
                
                /* delete everything from the dB */
@@ -186,10 +191,10 @@ else if(myisset("me"))
        break;
        
       case 'check':
-       echo "checking for solo...<br />".
+       echo "checking if you selected solo or nines...<br />".
          " if you have a wedding, please send an email to the other players. <br />".
-         " if you have  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 you have poverty you need to play a normal game,sorry...<br />".
+         " Please click <a href=\"$host?me=$me\">here</a> to finish the setup.<br />";
        if(!myisset("solo","wedding","poverty","nines") )
          {
            /* all these variables have a pre-selected default,
@@ -213,6 +218,7 @@ else if(myisset("me"))
                  {}/* do nothing */
                else
                  {
+                   /* this solo comes first */
                    DB_set_gametype_by_gameid($gameid,"solo");
                    DB_set_startplayer_by_gameid($gameid,$mypos);
                    DB_set_solo_by_gameid($gameid,$_REQUEST["solo"]);
@@ -247,8 +253,8 @@ else if(myisset("me"))
         * 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 />".
-          "reload this page to finish the setup <br />";
+       echo "<br />checking if someone else selected solo or nines... wedding and poverty not handled at the moment<br />".
+         " Please click <a href=\"$host?me=$me\">here</a> to finish the setup.<br />";  
        
        /* only set this after all poverty, etc. are handeled*/
        DB_set_hand_status_by_hash($me,'play');
@@ -262,8 +268,71 @@ else if(myisset("me"))
 
        if($ok)
          {
-           /* TODO: check what kind of game we are playing */
            DB_set_game_status_by_gameid($gameid,'play');
+
+           /* check what kind of game we are playing */
+           $gametype    = DB_get_gametype_by_gameid($gameid);
+           $startplayer = DB_get_startplayer_by_gameid($gameid);
+
+           /* nines? */
+           $nines = 0;
+           /* check for nines */
+           foreach($userids as $user)
+             {
+               if(DB_get_sickness_by_userid_and_gameid($user,$gameid) == 'nines')
+                 $nines = 1;
+             }
+           
+           /* gamestatus == normal, => cancel game */
+           if($nines && $gamestatus == "normal")
+             {
+               /* TODO: set game type to nines to be able to keep statistics */
+               
+               $message = "Hello, \n\n".
+                 "the game has been cancled becausee someone has five or more nines.\n";
+               
+               $userids = DB_get_all_userid_by_gameid($gameid);
+               foreach($userids as $user)
+                 {
+                   $To = DB_get_email_by_userid($user);
+                   mymail($To,"[DoKo] game cancled",$message);
+                 }
+               
+               /* delete everything from the dB */
+               DB_cancel_game($me);
+
+             }
+
+           /* poverty? */
+           $poverty = 0;
+
+           /* check players for poverty */
+           foreach($userids as $user)
+             {
+               if(DB_get_sickness_by_userid_and_gameid($user,$gameid) == 'poverty')
+                 {
+                   $poverty++;
+                   $name = DB_get_name_by_userid($user);
+                   echo "$name has a Vorbehalt. <br />";
+                 }
+             }
+           /* if gamestatus == normal, set poverty or dpovert (in case two people have poverty) */
+
+           /* wedding? */
+           $wedding = 0;
+           /* check players for wedding */
+           foreach($userids as $user)
+             {
+               if(DB_get_sickness_by_userid_and_gameid($user,$gameid) == 'wedding')
+                 {
+                   $wedding++;
+                   $name = DB_get_name_by_userid($user);
+                   echo "$name has a Vorbehalt. <br />"  ;
+                 }
+             }
+
+           /* if gamestatus == normal, set wedding  */
+           
          }
        
        break;
@@ -290,7 +359,9 @@ else if(myisset("me"))
        
        set_gametype($gametype);
 
-       
+       /* get some infos about the game */
+       $gamestatus = DB_get_game_status_by_gameid($gameid);
+
        /* display useful things in divs */
        
        /* display local time */
@@ -308,7 +379,8 @@ else if(myisset("me"))
          };
        echo "</table>\n</div>\n";
 
-       display_status($GT);
+       if($gamestatus != 'pre')
+         display_status($GT);
 
        /* display links to the users status page */
        $result = mysql_query("SELECT email,password from User WHERE id='$myid'" );
@@ -320,7 +392,6 @@ else if(myisset("me"))
        /* end display useful things*/
 
        /* has the game started? No, then just wait here...*/
-       $gamestatus = DB_get_game_status_by_gameid($gameid);
        if($gamestatus == 'pre')
          {
            echo "you need to wait for the others... <br />";
@@ -360,15 +431,13 @@ else if(myisset("me"))
                              "LEFT JOIN Comment ON Play.id=Comment.play_id ".
                              "WHERE Trick.game_id='".$gameid."' ".
                              "ORDER BY Trick.id,sequence ASC");
-       
-       
        $trickNR = 1;
        
        $lasttrick = DB_get_max_trickid($gameid);
        
        $play = array(); /* needed to calculate winner later  */
        $seq  = 1;          
-       $pos  = 0;
+       $pos  = DB_get_startplayer_by_gameid($gameid)-1; 
        $firstcard = ""; /* first card in a trick */
        
        echo "\n<ul class=\"tricks\">\n";
@@ -598,7 +667,7 @@ else if(myisset("me"))
          }
        
        $mycards = DB_get_hand($me);
-       sort($mycards);
+       mysort($mycards,$gametype);
        echo "<div class=\"mycards\">\n";
        
        if($myturn && !myisset("card"))
@@ -607,7 +676,7 @@ else if(myisset("me"))
            echo "Your cards are: <br />\n";
            echo "<form action=\"index.php?me=$me\" method=\"post\">\n";
 
-           /* do we have to follow suit? */
+           /* do we have to follow suite? */
            $followsuit = 0;
            if(have_suit($mycards,$firstcard))
              $followsuit = 1;