X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=index.php;h=8385576502c82c412843606ce9a0e4f96c3e067c;hp=58dd1839cb9680f0beb144b30635069bd67e14d4;hb=f0bbdae184fed051df8ae0e93a41e88c9442a7db;hpb=987f4b37750c1c4c6d414a3cb8ae5e7b798fe41a diff --git a/index.php b/index.php index 58dd183..8385576 100644 --- a/index.php +++ b/index.php @@ -37,6 +37,7 @@ -

no game in progress, please input 4 names and email addresses, please make sure that the addresses are correct!

-
+

Please add 4 names, please make sure that the names are correct!

+ Name: Name: Name: @@ -96,7 +97,9 @@ else if( isset($_REQUEST["PlayerA"]) && $randomNRstring = join(":",$randomNR); /* create game */ - mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', NULL, NULL,'pre', NULL)"); + $followup = NULL; + if(isset($_REQUEST["followup"])) $followup= $_REQUEST["followup"]; + mysql_query("INSERT INTO Game VALUES (NULL, NULL, '$randomNRstring', NULL, NULL,'pre',$followup ,NULL)"); $game_id = mysql_insert_id(); @@ -146,21 +149,14 @@ else if( isset($_REQUEST["PlayerA"]) && 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); - - /* - - do things like: - select fullname,strength,suite,game_id from hand_card left join hand on hand_id=hand.id left join user on user.id=user_id left join card on card_id=card.id where game_id='4' - - */ - + } /* end set up a new game */ else if(isset($_REQUEST["me"])) { /* handle request from one specifig player, - * the hash is set on a per game base, so first just handle this game + * 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 */ @@ -175,8 +171,12 @@ else if(isset($_REQUEST["me"])) exit(); } + DB_update_user_timestamp($myid); $myname = DB_get_name_by_hash($me); $mystatus = DB_get_status_by_hash($me); + + /* get game id */ + $gameid = DB_get_gameid_by_hash($me); switch($mystatus) { @@ -273,28 +273,37 @@ else if(isset($_REQUEST["me"])) /* only set this after all poverty, etc. are handeled*/ DB_set_hand_status_by_hash($me,'play'); + + /* check if the game can start */ + $userids = DB_get_all_userid_by_gameid($gameid); + $done=1; + foreach($userids as $user) + if(DB_get_hand_status_by_userid($user)!='play') + $done=0; + + if($done) + DB_set_game_status_by_gameid($gameid,'play'); + break; case 'play': + case 'gameover': /* gameover and play, so that the tricks are visible for both */ 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 ". + $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"); + "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; @@ -381,16 +390,21 @@ else if(isset($_REQUEST["me"])) $myturn = 1; else $myturn = 0; + + if(isset($_REQUEST["comment"])) + { + } /* 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 */ + /* check if we have card and that we haven't played it yet*/ /* 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)); + $result = mysql_query("SELECT id FROM Hand_Card WHERE played='false' and ". + "hand_id='$handid' AND card_id=".DB_quote_smart($card)); $r = mysql_fetch_array($result,MYSQL_NUM); $handcardid = $r[0]; @@ -409,10 +423,45 @@ else if(isset($_REQUEST["me"])) display_card($card); echo "\n"; + + /*check if we still have cards left, else set status to gameover */ if(sizeof(DB_get_hand($me))==0) - DB_set_hand_status_by_hash($me,'gameover'); + { + DB_set_hand_status_by_hash($me,'gameover'); + $mystatus='gameover'; + } + + /* if all players are done, set game status also to game over */ + $userids = DB_get_all_userid_by_gameid($gameid); + $done=1; + foreach($userids as $user) + if(DB_get_hand_status_by_userid($user)!='gameover') + $done=0; + + if($done) + DB_set_game_status_by_gameid($gameid,"gameover"); - echo "TODO: email next player
"; + /* 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); /* returns the position */ + $next = $winner; + } + else + { + $next = DB_get_pos_by_hash($me)+1; + } + if($next==5) $next=1; + + echo "TODO: email next player at pos $next
"; + if($debug) + echo "DEBUG: next player
\n"; + + } } else { @@ -430,31 +479,52 @@ else if(isset($_REQUEST["me"])) if($myturn && !isset($_REQUEST["card"])) { - echo "Hello ".DB_get_name_by_hash($me).", it's your turn!
\n"; + echo "Hello ".$myname.", it's your turn!
\n"; echo "Your cards are:
\n"; echo "\n"; foreach($mycards as $card) display_link_card($card); ?> -
A short comment: +
A short comments:
\n"; foreach($mycards as $card) display_card($card); } echo "\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...
\n"; - echo "TODO: suggest a new game with the next person as dealer
\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... guess the final score should be displayed here...
\n"; + + /* suggest a new game with the same people in it, just rotated once */ + $names = DB_get_all_names_by_gameid($gameid); + + echo "Do you want to continue playing?(This will start a new game, with the next person as dealer.)\n"; + echo "
\n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo " \n"; + echo "
\n"; + } break; default: echo "error in testing the status"; @@ -472,8 +542,25 @@ else if(isset($_REQUEST["me"])) if($ok) { - echo "ok. your logged in, now what? :)
"; + $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 "ok. your logged in, now what? :)
last login: "; + echo date("r",$unixtime)."
"; + + DB_update_user_timestamp($uid); + + $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? remember 4 names from the list above and visit ". + "this page.

"; } else { @@ -501,7 +588,9 @@ else if(isset($_REQUEST["register"]) ) - + + +