- /* handle request from one specifig player,
- * the hash is set on a per game base, so first just handle this game
- * perhaps also show links to other games in a sidebar
- */
-
- $me = $_REQUEST["me"];
-
- $myid = DB_get_userid_by_hash($me);
-
- if(!$myid)
- {
- echo "Can't find you in the database, please check the url.<br />\n";
- echo "perhaps the game has been cancled.";
- exit();
- }
-
- $myname = DB_get_name_by_hash($me);
- $mystatus = DB_get_status_by_hash($me);
-
- switch($mystatus)
- {
- case 'start':
- check_want_to_play($me);
- DB_set_hand_status_by_hash($me,'init');
- break;
-
- case 'init':
- if( !isset($_REQUEST["in"]) || !isset($_REQUEST["update"]))
- {
- DB_set_hand_status_by_hash($me,'start');
- echo "you need to answer both question";
- }
- else
- {
- if($_REQUEST["in"] == "no")
- {
- echo "TODO: email everyone that the game has been canceld<br />";
- /*something like
- for($i=0;$i<4;$i++)
- {
- $message = "Hello ".$player[$hash[$i]]["name"].",\n\n".
- "the game has been canceled due to the request of one of the players.\n";
- mymail($player[$hash[$i]]["email"],"[DoKo-Debug] the game has been canceled",$message);
- }
- */
- DB_cancel_game($me);
- }
- else
- {
- echo "thanks for joining the game... please scroll down";
- echo "TODO: make this page nicer<br />";
- echo "TODO: set card pref<br />";
-
- $mycards = DB_get_hand($me);
- sort($mycards);
- echo "<p class=\"mycards\">your cards are: <br />\n";
- foreach($mycards as $card)
- display_card($card);
- echo "</p>\n";
-
- check_for_sickness($me,$mycards);
-
- DB_set_hand_status_by_hash($me,'check');
- }
- }
- break;
-
- case 'check':
- echo "no checking at the moment... you need to play a normal game";
- if(!isset($_REQUEST["solo"]) ||
- !isset($_REQUEST["wedding"]) ||
- !isset($_REQUEST["poverty"]) ||
- !isset($_REQUEST["nines"]) )
- {
- DB_set_hand_status_by_hash($me,'init');
- /* problem: by setting it back to init, variables "in" and "update" are
- * not set, so the player will be send back to the start, after seeing his hand
- */
- echo "you need to fill out the form";
- }
- else
- {
- if( $_REQUEST["solo"]!="No")
- {
- DB_set_solo_by_hash($me,$_REQUEST["solo"]);
- DB_set_sickness_by_hash($me,"solo");
- }
- else if($_REQUEST["wedding"] == "yes")
- {
- echo "wedding was chosen<br />\n";
- DB_set_sickness_by_hash($me,"wedding");
- }
- else if($_REQUEST["poverty"] == "yes")
- {
- echo "poverty was chosen<br />\n";
- DB_set_sickness_by_hash($me,"poverty");
- }
- else if($_REQUEST["nines"] == "yes")
- {
- echo "nines was chosen<br />\n";
- DB_set_sickness_by_hash($me,"nines");
- }
- }
- DB_set_hand_status_by_hash($me,'poverty');
-
- /* check all players and set game to final result, e.g. solo, wedding, povert, redeal */
-
- /* reset solo, etc from players who did say something, but it didn't matter? */
- break;
- case 'poverty':
- echo "<br />poverty not handeled at the moment... you need to play a normal game<br />";
-
- /* only set this after all poverty, etc. are handeled*/
- DB_set_hand_status_by_hash($me,'play');
- break;
- case 'play':
- display_news();
- display_status();
-
- /* get game id */
- $gameid = DB_get_gameid_by_hash($me);
-
- /* get trick ids */
- $result = mysql_query("SELECT hand_card.card_id as card,".
- " user.fullname as name,".
- " hand.position as position,".
- " play.sequence as sequence, ".
- " hand.hash as hash, ".
- " trick.id ".
- "FROM Trick ".
- "LEFT JOIN Play ON trick.id=play.trick_id ".
- "LEFT JOIN Hand_Card ON play.hand_card_id=hand_card.id ".
- "LEFT JOIN Hand ON hand_card.hand_id=hand.id ".
- "LEFT JOIN User ON user.id=hand.user_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;
-
- echo "\n<ul class=\"oldtrick\">\n";
- echo " <li> Hello $myname! History: </li>\n";
-
- while($r = mysql_fetch_array($result,MYSQL_NUM))
- {
- $seq = $r[3];
- $pos = $r[2];
- $trick = $r[5];
-
- if($trick!=$lasttrick && $seq==1)
- {
- /* start of an old trick? */
- echo " <li onclick=\"hl('$trickNR');\"><a href=\"#\">Trick $trickNR</a>\n".
- " <div class=\"table\" id=\"trick".$trickNR."\">\n".
- " <img class=\"table\" src=\"pics/table".($pos-1).".png\" alt=\"table\" />\n";
- }
- else if($trick==$lasttrick && $seq==1)
- {
- /* start of a last trick? */
- echo " <li onclick=\"hl('$trickNR');\"><a href=\"#\">Current Trick</a>\n".
- " <div class=\"table\" id=\"trick".$trickNR."\">\n".
- " <img class=\"table\" src=\"pics/table".($pos-1).".png\" alt=\"table\" />";
- }
-
- /* display card */
- echo " <div class=\"card".($pos-1)."\">\n";
-
- $play[$pos]=$r[0];
-
- $comment=0;
- if($comment)
- echo " <span class=\"comment\">";
- else
- echo " <span>";
-
- /* print name */
- echo $r[1];
-
- /* check for comment */
- if($comment)
- echo "<span>".$comment."</span>";
- echo "</span>\n ";
-
- display_card($r[0]);
-
- echo " </div>\n"; /* end div card */
-
- /* end of trick? */
- if($seq==4)
- {
- $trickNR++;
- echo " </div>\n </li>\n"; /* end div table, end li table */
- }
- }
- if($seq!=4)
- echo " </div>\n </li>\n"; /* end div table, end li table */
-
- echo "</ul>\n";
-
- /* whos turn is it? */
- if($seq==4)
- {
- $winner = get_winner($play); /* returns the position */
- $next = $winner;
- }
- else
- {
- $next = $pos+1;
- }
- if($next==5) $next=1;
-
- /* my turn?, display cards as links, ask for comments*/
- if(DB_get_pos_by_hash($me) == $next)
- $myturn = 1;
- else
- $myturn = 0;
-
- /* do we want to play a card? */
- if(isset($_REQUEST["card"]) && $myturn)
- {
- $card = $_REQUEST["card"];
- $handid = DB_get_handid_by_hash($me);
-
- /* check if we have card */
- /* set played in hand_card to true where hand_id and card_id*/
- $result = mysql_query("SELECT id FROM Hand_Card WHERE hand_id='$handid' AND card_id=".DB_quote_smart($card));
- $r = mysql_fetch_array($result,MYSQL_NUM);
- $handcardid = $r[0];
-
- if($handcardid)
- {
- mysql_query("UPDATE Hand_Card SET played='true' WHERE hand_id='$handid' AND card_id=".DB_quote_smart($card));
-
- /* get trick id or start new trick */
- $a = DB_get_current_trickid($gameid);
- $trickid = $a[0];
- $sequence = $a[1];
-
- DB_play_card($trickid,$handcardid,$sequence);
- echo "<div class=\"card\">";
- echo " you played <br />";
- display_card($card);
- echo "</div>\n";
-
- if(sizeof(DB_get_hand($me))==0)
- DB_set_hand_status_by_hash($me,'gameover');
-
- echo "TODO: email next player<br />";
- }
- else
- {
- echo "couldn't find card <br />\n";
- }
- }
- else if(isset($_REQUEST["card"]) && !$myturn )
- {
- echo "please wait until it is your turn! <br />\n";
- }
-
- $mycards = DB_get_hand($me);
- sort($mycards);
- echo "<div class=\"mycards\">\n";
-
- if($myturn && !isset($_REQUEST["card"]))
- {
- echo "Hello ".DB_get_name_by_hash($me).", it's your turn! <br />\n";
- echo "Your cards are: <br />\n";
- echo "<form action=\"index.php?me=$me\" method=\"post\">\n";
- foreach($mycards as $card)
- display_link_card($card);
-?>
- <br />A short comment:<input name="comment" type="text" size="30" maxlength="50" />
- <input type="hidden" name="me" value="<?php echo $me; ?>" />
- <input type="submit" value="move" />
- </form>
- <?php
- }
- else
- {
- echo "Your cards are: <br />\n";
- foreach($mycards as $card)
- display_card($card);
- }
- echo "</div>\n";
- /*check if we still have cards left, else set status to gameover */
-
- break;
- case 'gameover':
- echo "the game is over... guess the final score should be displayed here...<br />\n";
- echo "TODO: suggest a new game with the next person as dealer <br />\n";
- break;
- default:
- echo "error in testing the status";
- }
- exit();
- }
- else if(isset($_REQUEST["email"]) && isset($_REQUEST["password"]))
- {
- $ok=1;
- $uid = DB_get_userid_by_email($_REQUEST["email"]);
- if(!$uid)
- $ok=0;
- if(!DB_get_userid_by_passwd(md5($_REQUEST["password"])))
- $ok=0;
-
- if($ok)
- {
- echo "ok. your logged in, now what? :)<br />";
-
- }