";
- }
- $tmp2.=$tmp[$i];
- echo "adding card $tmp2 at $i *
";
- $player[$me]["cards"]=$tmp2;
-
- if($last<0)
- {
- $history[sizeof($history)-1]="".$player[$me]["number"]."->".$card.":\n";
- }
- else
- {
- $tmp = explode(":",$history[sizeof($history)-1]);
- $tmp[sizeof($tmp)-1] = "".$player[$me]["number"]."->".$card.":";
- $history[sizeof($history)-1]=join(":",$tmp);
- }
- save_status();
-
- display_card($card);
- }
- else
- echo "seems like you don't have that card
";
-
- }
-
- }
- else if(isset($_REQUEST["win"]) && strlen($history[sizeof($history)-1])>3)
- {
- $win=$_REQUEST["win"];
- $history[]=$win.":\n";
- echo "juhu someone won:$win
";
+ 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
";
+
+ /* 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: next player
\n";
+
+ }
+ }
+ else
+ {
+ echo "can't find that card?!
\n";
+ }
+ }
+ else if(myisset("card") && !$myturn )
+ {
+ echo "please wait until it's your turn!
\n";
+ }
+
+ $mycards = DB_get_hand($me);
+ $mycards = mysort($mycards,$gametype);
+ echo "\n";
+
+ if($myturn && !myisset("card"))
+ {
+ echo "Hello ".$myname.", it's your turn!
\n";
+ echo "Your cards are:
\n";
+ echo "\n";
+ }
+ else if($mystatus=='play')
+ {
+ echo "Your cards are:
\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:
\n";
+ foreach($oldcards as $card)
+ display_card($card);
+ }
+ echo "
\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...
\n";
+
+ $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" );
+ while( $r = mysql_fetch_array($result,MYSQL_NUM))
+ echo " FINAL SCORE: ".$r[0]."(".$r[2].") ".$r[1]."
";
+
+ $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" );
+ while( $r = mysql_fetch_array($result,MYSQL_NUM))
+ echo " FINAL SCORE: ".$r[0]." ".$r[1]."
\n";
- save_status();
- }
+
+ $session = DB_get_session_by_gameid($gameid);
+ $result = mysql_query("SELECT id,create_date FROM Game".
+ " WHERE session=$session".
+ " ORDER BY create_date DESC".
+ " LIMIT 1");
+ $r=-1;
+ if($result)
+ $r = mysql_fetch_array($result,MYSQL_NUM);
+
+ if(!$session || $gameid==$r[0])
+ {
+ /* suggest a new game with the same people in it, just rotated once */
+ $names = DB_get_all_names_by_gameid($gameid);
+ output_ask_for_new_game($names[1],$names[2],$names[3],$names[0],$gameid);
+ }
+ }
+ break;
+ default:
+ echo "error in testing the status";
+ }
+ output_footer();
+ exit();
+ }
+/* user status page */
+ else if(myisset("email","password"))
+ {
+ /* test id and password, should really be done in one step */
+ $email = $_REQUEST["email"];
+ $password = $_REQUEST["password"];
+
+ if(strlen($password)!=32)
+ $password = md5($password);
+
+ $ok=1;
+ $uid = DB_get_userid_by_email_and_password($email,$password);
+ if(!$uid)
+ $ok=0;
+
+ if($ok)
+ {
+ $time = DB_get_user_timestamp($uid);
+ $unixtime =strtotime($time);
+
+ $offset = DB_get_user_timezone($uid);
+ $zone = return_timezone($offset);
+ date_default_timezone_set($zone);
+
+ echo "last login: ".date("r",$unixtime)."
";
+
+ DB_update_user_timestamp($uid);
+
+ echo "these are the games you are playing in:
\n";
+ $result = mysql_query("SELECT Hand.hash,Hand.game_id,Game.mod_date from Hand".
+ " LEFT JOIN Game On Hand.game_id=Game.id".
+ " WHERE Hand.user_id='$uid' AND Game.status<>'gameover'" );
+ while( $r = mysql_fetch_array($result,MYSQL_NUM))
+ {
+ echo "game #".$r[1]." ";
+ 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? yes".
+ " (clicking here is final and can't be restored)";
echo "
";
-
- $tmp = explode(":",$history[sizeof($history)-1]);
-
- echo sizeof($tmp)." tmp ;;".strlen($tmp[0])." len tmp0
";
-
- if(sizeof($tmp)==5)
- {
- ?>
-
-";
- }
- if($hash[$next]==$me)
- {
-
- echo "ITS YOUR TURN
";
- $allcards = $player[$me]["cards"];
- $mycards = explode(";",$allcards);
-
- sort($mycards);
- echo "your cards are
";
- foreach($mycards as $card)
- {
- display_link_card($card,$me);
- }
- echo "
\n";
- }
- echo "
";
-
- }
}
+ echo "\n";
+
+
+ echo "and these are your games that are already done:
Game: \n";
+ $result = mysql_query("SELECT hash,game_id from Hand WHERE user_id='$uid' AND status='gameover'" );
+ while( $r = mysql_fetch_array($result,MYSQL_NUM))
+ echo "#".$r[1]." , ";
+ echo "
\n";
+
+ $names = DB_get_all_names();
+ echo "registered players:
\n";
+ foreach ($names as $name)
+ echo "$name, \n";
+ echo "
\n";
+
+ echo "Want to start a new game? Visit this page.
";
+ }
+ else
+ {
+ echo "sorry email and password don't match
";
+ }
+ output_footer();
+ exit();
+ }
+/* page for registration */
+ else if(myisset("register") )
+ {
+ output_register();
+ }
+/* new user wants to register */
+ else if(myisset("Rfullname","Remail","Rpassword","Rtimezone") )
+ {
+ $ok=1;
+ if(DB_get_userid_by_name($_REQUEST["Rfullname"]))
+ {
+ echo "please chose another name
";
+ $ok=0;
+ }
+ if(DB_get_userid_by_email($_REQUEST["Remail"]))
+ {
+ echo "this email address is already used ?!
";
+ $ok=0;
}
+ if($ok)
+ {
+ $r=mysql_query("INSERT INTO User VALUES(NULL,".DB_quote_smart($_REQUEST["Rfullname"]).
+ ",".DB_quote_smart($_REQUEST["Remail"]).
+ ",".DB_quote_smart(md5($_REQUEST["Rpassword"])).
+ ",".DB_quote_smart($_REQUEST["Rtimezone"]).",NULL)");
+
+ if($r)
+ echo " added you to the database";
+ else
+ echo " something went wrong";
+ }
+ }
+/* default login page */
+ else
+ {
+ output_home_page();
+ }
+
+output_footer();
- } /* is this the last player that needs to accept? */
- /* yes, figure out who starts, send out email to first player */
- /* no, email the rest to cancel game */
+DB_close();
-/* player wants to make a move? */
- /* check if it is this players turn it is (if it's the players turn, convert cards into links) */
- /* if it is the last card played*/
- /* add checkbox for who one the trick */
- /* email next player */
- /* last card played? */
- /* count score for each player */
+/*
+ *Local Variables:
+ *mode: php
+ *mode: hs-minor
+ *End:
+ */
?>
-
-
+