exit();
}
+/* done major error checking, output header of HTML page */
output_header();
/* check if we want to start a new game */
{
echo "couldn't find one of the names, please start a new game";
output_footer();
+ DB_close();
exit();
}
$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 */
{
echo "Error defining ruleset: $ruleset";
output_footer();
+ DB_close();
exit();
};
$ruleset = DB_get_ruleset_by_gameid($followup); /* just copy ruleset from old game,
this way no manipulation is possible */
if($session)
- mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', 'normal', NULL,NULL,'1','pre',".
+ mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', 'normal', NULL,NULL,'1','1','pre',".
"'$ruleset','$session' ,NULL)");
else
{
/* get max session */
$max = DB_get_max_session();
$max++;
- 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));
+ mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', 'normal', NULL,NULL,'1','1','pre',".
+ "'$ruleset','$max' ,NULL)");
}
}
else
- mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', 'normal', NULL,NULL,'1','pre', ".
+ mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', 'normal', NULL,NULL,'1','1','pre', ".
"'$ruleset',NULL ,NULL)");
$game_id = mysql_insert_id();
/* create hands */
mysql_query("INSERT INTO Hand VALUES (NULL,".DB_quote_smart($game_id).",".DB_quote_smart($useridA).
- ", ".DB_quote_smart($hashA).", 'start','1',NULL,NULL,NULL,'false','false',NULL)");
+ ", ".DB_quote_smart($hashA).", 'start','1',NULL,NULL,NULL,NULL)");
$hand_idA = mysql_insert_id();
mysql_query("INSERT INTO Hand VALUES (NULL,".DB_quote_smart($game_id).",".DB_quote_smart($useridB).
- ", ".DB_quote_smart($hashB).", 'start','2',NULL,NULL,NULL,'false','false',NULL)");
+ ", ".DB_quote_smart($hashB).", 'start','2',NULL,NULL,NULL,NULL)");
$hand_idB = mysql_insert_id();
mysql_query("INSERT INTO Hand VALUES (NULL,".DB_quote_smart($game_id).",".DB_quote_smart($useridC).
- ", ".DB_quote_smart($hashC).", 'start','3',NULL,NULL,NULL,'false','false',NULL)");
+ ", ".DB_quote_smart($hashC).", 'start','3',NULL,NULL,NULL,NULL)");
$hand_idC = mysql_insert_id();
mysql_query("INSERT INTO Hand VALUES (NULL,".DB_quote_smart($game_id).",".DB_quote_smart($useridD).
- ", ".DB_quote_smart($hashD).", 'start','4',NULL,NULL,NULL,'false','false',NULL)");
+ ", ".DB_quote_smart($hashD).", 'start','4',NULL,NULL,NULL,NULL)");
$hand_idD = mysql_insert_id();
/* save cards */
"$PlayerC\n".
"$PlayerD\n\n".
"If you want to join this game, please follow this link:\n\n".
- " ".$host."?me=";
+ "".$host."?me=";
mymail($EmailA,"You are invited to a game of DoKo","Hello $PlayerA,\n".$message.$hashA);
mymail($EmailB,"You are invited to a game of DoKo","Hello $PlayerB,\n".$message.$hashB);
echo "Can't find you in the database, please check the url.<br />\n";
echo "perhaps the game has been cancled, check by login in <a href=\"$host\">here</a>.";
output_footer();
+ DB_close();
exit();
}
foreach($userids as $user)
{
$To = DB_get_email_by_userid($user);
- mymail($To,$EmailName."game cancled (timed out)",$message);
+ mymail($To,$EmailName."game $gameid cancled (timed out)",$message);
}
/* delete everything from the dB */
echo "Can't find you in the database, please check the url.<br />\n";
echo "perhaps the game has been cancled, check by login in <a href=\"$host\">here</a>.";
output_footer();
+ DB_close();
exit();
}
$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 */
- $result = mysql_query("SELECT value from User_Prefs".
- " WHERE user_id='$myid' AND pref_key='cardset'" );
- $r = mysql_fetch_array($result,MYSQL_NUM);
- if($r)
- {
- if($r[0]=="germancards" && (time()-strtotime( "2009-12-31 23:59:59")<0) ) /* licence only valid until then */
- $PREF["cardset"]="altenburg";
- else
- $PREF["cardset"]="english";
- }
- else
- $PREF["cardset"]="english";
+ DB_get_PREF($myid);
+ /* end set pref */
/* get rule set for this game */
$RULES["dullen"] = $r[2];
$RULES["schweinchen"] = $r[3];
-
+ $RULES["call"] = $r[4];
+
+
/* get some infos about the game */
$gametype = DB_get_gametype_by_gameid($gameid);
$gamestatus = DB_get_game_status_by_gameid($gameid);
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";
+
+ /* 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;
foreach($userids as $user)
{
$To = DB_get_email_by_userid($user);
- mymail($To,$EmailName."game canceled",$message);
+ mymail($To,$EmailName."game $gameid canceled",$message);
}
/* delete everything from the dB */
display_card($card,$PREF["cardset"]);
echo "</p>\n";
- check_for_sickness($me,$mycards);
+ output_check_for_sickness($me,$mycards);
/* move on to the next stage*/
DB_set_hand_status_by_hash($me,'check');
" 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 />";
+
+ 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)
+ {
+ $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);
+ }
+ };
+ };
- /* move on to the next stage*/
- DB_set_hand_status_by_hash($me,'poverty');
break;
case 'poverty':
if(!$ok)
{
echo "This step can only be handled after everyone finished the last step. ".
- "Seems like this is not the case, so you need to wait a bit... please check back later....<br />";
+ "Seems like this is not the case, so you need to wait a bit... ".
+ "you will get an email once that is the case, please use the link in ".
+ "that email to continue the game.<br />";
}
else
{
$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;
- $solo = 0;
+ $solo = 0;
foreach($userids as $user)
{
$name = DB_get_name_by_userid($user);
/* now check which sickness comes first and set the gametype to it */
- /* gamestatus == normal, => cancel game */
if($gametype == "solo")
{
/* do nothing */
foreach($userids as $user)
{
$To = DB_get_email_by_userid($user);
- mymail($To,$EmailName."game canceled",$message);
+ mymail($To,$EmailName."game $gameid canceled",$message);
}
/* delete everything from the dB */
echo "The game has been canceled because ".DB_get_name_by_userid($nines).
" has five or more nines and nobody is playing solo.\n";
output_footer();
+ 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_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";
else if($wedding> 0)
{
DB_set_gametype_by_gameid($gameid,"wedding");
+ DB_set_sickness_by_gameid($gameid,'-1'); /* wedding not resolved yet */
$gametype = "wedding";
};
$usersick = DB_get_sickness_by_userid_and_gameid($myid,$gameid);
if($usersick == "wedding")
DB_set_party_by_hash($me,"re");
+ else
+ DB_set_party_by_hash($me,"contra");
- echo "Don't know who will be Re and Contra, you need to ".
- "figure that out at the end of the game yourself <br />\n";
+ echo "Whoever will make the first trick will be on the re team. <br />\n";
+ echo " Ok, the game can start now, please finish <a href=\"$host?me=$me\">the setup</a>.<br />";
DB_set_hand_status_by_hash($me,'play');
break;
/* check if poverty resolved (e.g. DB.Game who set to NULL)
* yes? =>trump was taken, start game; break;
*/
- $who=DB_get_sickness_by_gameid($gameid);
+ $who = DB_get_sickness_by_gameid($gameid);
if($who<0)
{ /* trump has been taken */
DB_set_hand_status_by_hash($me,'play');
};
if($who>9) /*= two people still have trump on the table*/
- $add=10;
+ $add = 10;
else
- $add=1;
+ $add = 1;
/* check if we are being asked now
- * no, display wait message, e.g. player X is asked at the moment
+ * no? display wait message, e.g. player X is asked at the moment
*/
$usersick = DB_get_sickness_by_userid_and_gameid($myid,$gameid);
if(myisset("trump") && $_REQUEST["trump"]=="no" && ($who==$mypos || $who==$mypos*10))
else
DB_set_sickness_by_gameid($gameid,$who+$add);
+ /* email next player */
+ $who = DB_get_sickness_by_gameid($gameid);
+ if($who>9) $who = $who/10;
+
+ if($who<=4)
+ {
+ $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);
+ }
+
/* this user is done */
DB_set_hand_status_by_hash($me,'play');
break;
$trump = $_REQUEST["trump"];
/* get hand id for user $trump */
- $userhand=DB_get_handid_by_gameid_and_userid($gameid,$trump);
+ $userhand = DB_get_handid_by_gameid_and_userid($gameid,$trump);
/* copy trump from player A to B */
$result = mysql_query("UPDATE Hand_Card SET hand_id='$myhand' WHERE hand_id='$userhand' AND card_id<'27'" );
- /* set re/contra, if it is not already set */
- $party = DB_get_party_by_hash($me);
- if(!$party)
- {
- foreach($userids as $user)
- {
- $hash = DB_get_hash_from_gameid_and_userid($gameid,$user);
- if($user == $trump || $user == $myid)
- DB_set_party_by_hash($hash,"re");
- else
- DB_set_party_by_hash($hash,"contra");
- }
- }
/* add hidden button with trump in it to get to the next point */
echo "<form action=\"index.php\" method=\"post\">\n";
echo " <input type=\"hidden\" name=\"exchange\" value=\"-1\" />\n";
}
else /* reduce poverty count by one, that is go to single digits $who */
{
- $add=1;
- $who=$who/10;
+ $add = 1;
+ $who = $who/10;
+ /* whom to ask next */
$firstsick = DB_get_sickness_by_pos_and_gameid($mypos+1,$gameid);
$secondsick = DB_get_sickness_by_pos_and_gameid($mypos+2,$gameid);
+
if($firstsick!="poverty")
DB_set_sickness_by_gameid($gameid,$who+$add);
else
else
DB_set_sickness_by_gameid($gameid,$who+$add*3);
};
+
+ /* email next player */
+ $who = DB_get_sickness_by_gameid($gameid);
+ if($who<=4)
+ {
+ $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);
+ }
+
}
/* this user is done */
$hash = DB_get_hash_from_gameid_and_userid($gameid,$trump);
DB_set_hand_status_by_hash($hash,'play');
+ /* set party to re, unless we had dpoverty, in that case check if we need to set re/contra*/
+ $re_set=0;
+ foreach($userids as $user)
+ {
+ $userhash =DB_get_hash_from_gameid_and_userid($gameid,$user);
+ $party=DB_get_party_by_hash($userhash);
+ if($party=="re")
+ $re_set=1;
+ }
+ if($re_set)
+ {
+ DB_set_party_by_hash($me,"contra");
+ DB_set_party_by_hash($hash,"contra");
+ }
+ else
+ {
+ foreach($userids as $user)
+ {
+ $userhash =DB_get_hash_from_gameid_and_userid($gameid,$user);
+ if($userhash==$hash||$userhash==$me)
+ DB_set_party_by_hash($userhash,"re");
+ else
+ DB_set_party_by_hash($userhash,"contra");
+ }
+ }
+
+
break;
}
else
}
echo "I don't want to take any trump: ".
"<a href=\"index.php?me=$me&trump=no\">yes</a> <br />";
+
+ echo "Your cards are: <br />\n";
+ $mycards = DB_get_hand($me);
+ sort($mycards);
+ echo "<p class=\"mycards\" style=\"margin-top:8em;\">your cards are: <br />\n";
+ foreach($mycards as $card)
+ display_card($card,$PREF["cardset"]);
+ echo "</p>\n";
}
else
{
- echo "it's not your turn yet to decide if you want to take the trump or not.";
+ $mysick = DB_get_sickness_by_userid_and_gameid($myid,$gameid);
+ if($mysick=="poverty")
+ echo "The others are asked if they want to take your trump, you have to wait (you'll get an email).";
+ else
+ echo "it's not your turn yet to decide if you want to take the trump or not.";
}
/*
* yes, display number of trump and user's hand, ask if he wants to take it
*/
};
}
- /* check if noone wanted to take trump, in that case the gamesickness would be set to 5 or 50 */
- $who=DB_get_sickness_by_gameid($gameid);
+ /* check if no one wanted to take trump, in that case the gamesickness would be set to 5 or 50 */
+ $who = DB_get_sickness_by_gameid($gameid);
if($who==5 || $who==50)
{
$message = "Hello, \n\n".
foreach($userids as $user)
{
$To = DB_get_email_by_userid($user);
- mymail($To,$EmailName."game cancled (poverty not resolved)",$message);
+ mymail($To,$EmailName."game $gameid cancled (poverty not resolved)",$message);
}
/* delete everything from the dB */
echo "<p style=\"background-color:red\";>Game $gameid has been cancled.<br /><br /></p>";
output_footer();
+ DB_close();
exit();
}
$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)
{
/* email startplayer) */
- $message = "It's your turn now.\n".
+ $message = "It's your turn now in game $gameid.\n".
"Use this link to play a card: ".$host."?me=".$hash."\n\n" ;
- mymail($email,$EmailName."ready, set, go... ",$message);
+ mymail($email,$EmailName."ready, set, go... (game $gameid) ",$message);
}
else
echo " Please, <a href=\"$host?me=$me\">start</a> the game.<br />";
}
else
- echo "You finished the setup, at the moment you need to reload this page after everyone else has finished there setup so that the server can figure out vorbehalte... in future this will get an email in case you need to do anything, but this is not implemented yet :( <br />";
+ echo "\n <br />";
break;
case 'play':
/* has the game started? No, then just wait here...*/
if($gamestatus == 'pre')
{
- echo "You finished the setup, but not everyone else finished it...so you need to wait for the others... <br />";
+ echo "You finished the setup, but not everyone else finished it... ".
+ "so you need to wait for the others. Just wait for the an email... <br />";
break; /* not sure this works... the idea is that you can
* only play a card after everyone is ready to play */
}
/* display the table and the names */
$result = mysql_query("SELECT User.fullname as name,".
" Hand.position as position, ".
- " User.id ".
+ " User.id, ".
+ " Hand.party as party, ".
+ " Hand.sickness as sickness, ".
+ " Hand.point_call, ".
+ " User.last_login, ".
+ " Hand.hash ".
"FROM Hand ".
"LEFT JOIN User ON User.id=Hand.user_id ".
"WHERE Hand.game_id='".$gameid."' ".
" <img src=\"pics/table.png\" alt=\"table\" />\n";
while($r = mysql_fetch_array($result,MYSQL_NUM))
{
- $name = $r[0];
- $pos = $r[1];
- $user = $r[2];
+ $name = $r[0];
+ $pos = $r[1];
+ $user = $r[2];
+ $party = $r[3];
+ $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";
- echo " $name <br />\n";
- echo " local time: ".date("Y-m-d H:i:s")."\n";
+ 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")
+ {
+ $userhash = DB_get_hash_from_gameid_and_userid($gameid,$user);
+ $cards = DB_get_all_hand($userhash);
+ $trumpNR = count_trump($cards);
+ if($trumpNR)
+ echo "(poverty < trump back)";
+ else
+ echo "(poverty <)";
+ }
+ else
+ echo "(poverty >)";
+
+ if($GT=="dpoverty")
+ if($party=="re")
+ if($sickness=="poverty")
+ {
+ $userhash = DB_get_hash_from_gameid_and_userid($gameid,$user);
+ $cards = DB_get_all_hand($userhash);
+ $trumpNR = count_trump($cards);
+ if($trumpNR)
+ echo "(poverty A < trump back)";
+ else
+ echo "(poverty A <)";
+ }
+ else
+ echo "(poverty A >)";
+ else
+ if($sickness=="poverty")
+ {
+ $userhash = DB_get_hash_from_gameid_and_userid($gameid,$user);
+ $cards = DB_get_all_hand($userhash);
+ $trumpNR = count_trump($cards);
+ if($trumpNR)
+ echo "(poverty B < trump back)";
+ else
+ echo "(poverty B <)";
+ }
+ else
+ echo "(poverty B >)";
+
+ if($GT=="wedding" && $party=="re")
+ if($sickness=="wedding")
+ echo "(wedding +)";
+ else
+ echo "(wedding)";
+
+ if(ereg("solo",$GT) && $party=="re")
+ echo "($GT)";
+
+ /* add point calls */
+ if($call!=NULL)
+ echo " $party $call ";
+
+ echo "<br />\n";
+ echo " local time: ".date("Y-m-d H:i:s")."<br />\n";
+ echo " last login: ".date("Y-m-d H:i:s",$lastlogin)."<br />\n";
echo " </span>\n";
}
" Hand.position as position,".
" Play.sequence as sequence, ".
" Trick.id, ".
- " Comment.comment ".
+ " Comment.comment, ".
+ " Play.create_date, ".
+ " Hand.user_id ".
"FROM Trick ".
"LEFT JOIN Play ON Trick.id=Play.trick_id ".
"LEFT JOIN Hand_Card ON Play.hand_card_id=Hand_Card.id ".
$seq = $r[2];
$trick = $r[3];
$comment = $r[4];
-
+ $timeplayed = strtotime($r[5]);
+ $user = $r[6];
+
+ $offset = DB_get_user_timezone($user);
+ $zone = return_timezone($offset);
+ date_default_timezone_set($zone);
+
/* check if first schweinchen has been played */
if($r[0] == 19 || $r[0] == 20 )
$GAME["schweinchen"]++;
$r = mysql_fetch_array($result,MYSQL_NUM);
$handcardid = $r[0];
- if($handcardid)
+ if($handcardid) /* everything ok, play card */
{
$comment = "";
+ /* update Game timestamp */
+ DB_update_game_timestamp($gameid);
+
+ /* 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' ");
+ if(myisset("call90") && $_REQUEST["call90"] == "yes" && can_call(90,$me))
+ $result = mysql_query("UPDATE Hand SET point_call='90' WHERE hash='$me' ");
+ if(myisset("call60") && $_REQUEST["call60"] == "yes" && can_call(60,$me))
+ $result = mysql_query("UPDATE Hand SET point_call='60' WHERE hash='$me' ");
+ if(myisset("call30") && $_REQUEST["call30"] == "yes" && can_call(30,$me))
+ $result = mysql_query("UPDATE Hand SET point_call='30' WHERE hash='$me' ");
+ if(myisset("call0") && $_REQUEST["call0"] == "yes" && can_call(0,$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));
- /* update Game timestamp */
- DB_update_game_timestamp($gameid);
-
/* check for schweinchen */
//echo "schweinchen = ".$GAME["schweinchen"]." --$card-<br />";
if($card == 19 || $card == 20 )
$comment="Schweinchen! ";
if($RULES["schweinchen"]=="both" )
$comment="Schweinchen! ";
- echo "schweinchen = ".$GAME["schweinchen"]." ---<br />";
+ if ($debug) echo "schweinchen = ".$GAME["schweinchen"]." ---<br />";
}
/* get trick id or start new trick */
$a = DB_get_current_trickid($gameid);
$trickid = $a[0];
$sequence = $a[1];
+ $tricknr = $a[2];
$playid = DB_play_card($trickid,$handcardid,$sequence);
+ /* if sequence == 4 check who one in case of wedding */
+ if($sequence == 4 && $GT == "wedding")
+ {
+ /* is wedding resolve */
+ $resolved = DB_get_sickness_by_gameid($gameid);
+ if($resolved<0)
+ {
+ /* who has wedding */
+ $userids = DB_get_all_userid_by_gameid($gameid);
+ foreach($userids as $user)
+ {
+ $usersick = DB_get_sickness_by_userid_and_gameid($user,$gameid);
+ if($usersick == "wedding")
+ $whosick = $user;
+ }
+ /* who won the trick */
+ $play = DB_get_cards_by_trick($trickid);
+ $winner = get_winner($play,$gametype); /* returns the position */
+ $winnerid = DB_get_userid_by_gameid_and_position($gameid,$winner);
+ /* is tricknr <=3 */
+ if($tricknr <=3 && $winnerid!=$whosick)
+ {
+ /* set resolved at tricknr*/
+ $resolved = DB_set_sickness_by_gameid($gameid,$tricknr);
+ /* set partner */
+ $whash = DB_get_hash_from_gameid_and_userid($gameid,$winnerid);
+ DB_set_party_by_hash($whash,"re");
+ }
+ if($tricknr == 3 && $winnerid==$whosick)
+ {
+ /* set resolved at tricknr*/
+ $resolved = DB_set_sickness_by_gameid($gameid,'3');
+ }
+ }
+ }
+
/* check for coment */
if(myisset("comment"))
{
/* 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";
+ $message .= "Final score:\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";
+ $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" );
- $message .= "\n";
+ $message .= "\nTotals:\n";
while( $r = mysql_fetch_array($result,MYSQL_NUM))
- $message .= " FINAL SCORE: ".$r[0]." ".$r[1]."\n";
+ $message .= " ".$r[0]." ".$r[1]."\n";
+
+ /* send out final email */
+ $all = array();
+
+ foreach($userids as $user)
+ $all[] = DB_get_email_by_userid($user);
+ $TO = implode(",",$all);
+
+ $help = "\n\n (you can use reply all on this email to reach all the players.)\n";
+ mymail($To,$EmailName."game over (game $gameid) part 1(2)",$message.$help);
foreach($userids as $user)
{
- $To = DB_get_email_by_userid($user);
- mymail($To,$EmailName."game over",$message);
+ $To = DB_get_email_by_userid($user);
+ $hash = DB_get_hash_from_gameid_and_userid($gameid,$user);
+
+ $link = "Use this link to have a look at game $gameid: ".$host."?me=".$hash."\n\n" ;
+ mymail($To,$EmailName."game over (game $gameid) part 2(2)",$link);
}
}
/* 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".
+ $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" ;
- 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";
-
+ mymail($email,$EmailName."a card has been played in game $gameid",$message);
}
}
else
display_link_card($card,$PREF["cardset"]);
}
+ if( can_call(120,$me) )
+ echo " re/contra (120):".
+ " <input type=\"radio\" name=\"call120\" value=\"yes\" /> ";
+ if( can_call(90,$me) )
+ echo " 90:".
+ " <input type=\"radio\" name=\"call90\" value=\"yes\" /> ";
+ if( can_call(60,$me) )
+ echo " 60:".
+ " <input type=\"radio\" name=\"call60\" value=\"yes\" /> ";
+ if( can_call(30,$me) )
+ echo " 30:".
+ " <input type=\"radio\" name=\"call30\" value=\"yes\" /> ";
+ if( can_call(0,$me) )
+ echo " 0:".
+ " <input type=\"radio\" name=\"call0\" value=\"yes\" /> ".
+ " no call:".
+ " <input type=\"radio\" name=\"call0\" value=\"no\" /> ";
+
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 "</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' */
{
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" );
+ echo "Final Score:<br />\n".
+ " <table>\n";;
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" );
+ echo "Totals:<br />\n".
+ " <table> \n";
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".
echo "error in testing the status";
}
output_footer();
+ DB_close();
exit();
}
/* user status page */
/* test id and password, should really be done in one step */
$email = $_REQUEST["email"];
$password = $_REQUEST["password"];
+
if(myisset("forgot"))
{
if($ok)
{
+ DB_get_PREF($uid);
+
if(myisset("setpref"))
{
$setpref=$_REQUEST["setpref"];
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,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>";
+ 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&me=".$r[0]."\">yes</a>".
+ " (clicking here is final and can't be restored)";
+ echo "<br />";
+ }
+ 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<>'gameover'" );
+ " 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&me=".$r[0]."\">yes</a>".
echo "<p>and these are your games that are already done:<br />Game: \n";
+ $output=array();
$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 "<a href=\"".$host."?me=".$r[0]."\">#".$r[1]." </a>, ";
- echo "</p>\n";
+ $output[]= "<a href=\"".$host."?me=".$r[0]."\">#".$r[1]." </a>";
+ echo implode(", ",$output)."</p>\n";
$names = DB_get_all_names();
echo "<p>registered players:<br />\n";
- foreach ($names as $name)
- echo "$name, \n";
+ echo implode(", ",$names)."\n";
echo "</p>\n";
echo "<p>Want to start a new game? Visit <a href=\"".$host."?new\">this page.</a></p>";
}
};
output_footer();
+ DB_close();
exit();
}
/* page for registration */
/* default login page */
else
{
- $pre=0;$game=0;$done=0;
+ $pre[0]=0;$game[0]=0;$done[0]=0;
$r=mysql_query("SELECT COUNT(id) FROM Game GROUP BY status");
if($r) {
- $pre = mysql_fetch_array($r,MYSQL_NUM);
+ $pre = mysql_fetch_array($r,MYSQL_NUM);
$game = mysql_fetch_array($r,MYSQL_NUM);
$done = mysql_fetch_array($r,MYSQL_NUM);
}
- output_home_page($pre[0],$game[0],$done[0]);
+
+ $r=mysql_query("SELECT AVG(datediff(mod_date,create_date)) FROM Game where status='gameover' ");
+ if($r)
+ $avgage= mysql_fetch_array($r,MYSQL_NUM);
+ else
+ $avgage[0]=0;
+
+ output_home_page($pre[0],$game[0],$done[0],$avgage[0]);
}
output_footer();