NEW FEATURE: reuse random numbers from old games
authorArun Persaud <arun@nubati.net>
Sun, 17 Jun 2007 16:55:34 +0000 (18:55 +0200)
committerArun Persaud <arun@nubati.net>
Sun, 17 Jun 2007 16:55:34 +0000 (18:55 +0200)
random numbers generated for old games are reused in case none
of the players were in that old game. Will be interesting how different
people play with the same hand ;)

db.php
functions.php
index.php

diff --git a/db.php b/db.php
index 935c8486660d3d8453596dc65fac6db4f587fe7d..a44436043228c57c132c9367425e58756aa6bfaf 100644 (file)
--- a/db.php
+++ b/db.php
@@ -764,4 +764,19 @@ function DB_get_PREF($myid)
     return;
 }
 
     return;
 }
 
+function DB_get_unused_randomnumbers($userstr)
+{
+  $queryresult = mysql_query("SELECT randomnumbers,Game.id FROM Game ".
+                            "  LEFT JOIN Hand ON Hand.game_id=Game.id ".
+                            "                 AND  user_id not in (".$userstr.")".
+                            "  GROUP BY  Game.id ".
+                            "  HAVING num=4");
+  
+  $r = mysql_fetch_array($queryresult,MYSQL_NUM);
+  if($r)
+    return $r[0];
+  else
+    return "";
+}
+
 ?>
\ No newline at end of file
 ?>
\ No newline at end of file
index 997ba43e154af02582aa59ff981015d2e85628fa..4f33f1e41c00019c5e569621f2193d14b2db6e03 100644 (file)
@@ -423,7 +423,7 @@ function card_value($card)
 }
 
 
 }
 
 
-function  create_array_of_random_numbers()
+function  create_array_of_random_numbers($useridA,$useridB,$useridC,$useridD)
 {
   global $debug;
 
 {
   global $debug;
 
@@ -446,10 +446,21 @@ function  create_array_of_random_numbers()
     }
   else
     {
     }
   else
     {
+      /* check if we can find a game were non of the player was involved and return 
+       * cards insted 
+       */
+      $userstr = implode(",",array($useridA,$useridB,$useridC,$useridD));
+      $randomnumbers = DB_get_unused_randomnumbers($userstr);
+      $randomnumbers = explode(":",$randomnumbers);
+      
+      if(sizeof($randomnumbers)==48)
+       return $randomnumbers;
+      
+      /* need to create new numbers */
       for($i=0;$i<48;$i++)
        $r[$i]=$i+1;
       
       for($i=0;$i<48;$i++)
        $r[$i]=$i+1;
       
-      shuffle($r);
+      shuffle($r); 
     };
 
   return $r;
     };
 
   return $r;
index a2cf35b0cd2f38a1085e1088c5d6fa258ab5e530..fa828daabfb498aba84c089247b07cc680ab1f40 100644 (file)
--- a/index.php
+++ b/index.php
@@ -72,7 +72,7 @@ if(myisset("new"))
     $useridD  = DB_get_userid_by_name($PlayerD);
     
     /* create random numbers */
     $useridD  = DB_get_userid_by_name($PlayerD);
     
     /* create random numbers */
-    $randomNR       = create_array_of_random_numbers();
+    $randomNR       = create_array_of_random_numbers($useridA,$useridB,$useridC,$useridD);
     $randomNRstring = join(":",$randomNR);
     
     /* get ruleset information or create new one */
     $randomNRstring = join(":",$randomNR);
     
     /* get ruleset information or create new one */