X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=include%2Fgame.php;h=613575bc4a75a328f45c7f9296859b2991254c92;hp=668aa1fe06096a59d2e2512116fe0e135a74b3b0;hb=0329ae5dc48fee11545d6a4b37ba8522979e42d4;hpb=2a2c6ad2b883e1f0c9a2f5bf3f742452ce7ef540 diff --git a/include/game.php b/include/game.php index 668aa1f..613575b 100644 --- a/include/game.php +++ b/include/game.php @@ -6,14 +6,12 @@ if(!isset($HOST)) exit; /* calling game.php only makes sense when we give it a hash for a game */ -if(!myisset("me")) +if(!myisset('me')) { echo "Hmm, you really shouldn't mess with the urls.
\n"; - output_footer(); - DB_close(); - exit(); + return; } -$me = $_REQUEST["me"]; +$me = $_REQUEST['me']; /* Ok, got a hash, but is it valid? */ $myid = DB_get_userid('hash',$me); @@ -21,14 +19,10 @@ if(!$myid) { echo "Can't find you in the database, please check the url.
\n"; echo "perhaps the game has been canceled, check by login in here."; - output_footer(); - DB_close(); - exit(); + return; } -/* user might get here by clicking on the link in an email, so session might not be set */ -if(isset($_SESSION["name"])) - output_status($_SESSION["name"]); +global $GAME,$RULES,$CARDS; /* the user has done something, update the timestamp */ DB_update_user_timestamp($myid); @@ -51,10 +45,10 @@ $RULES = DB_get_RULES($gameid); $gametype = DB_get_gametype_by_gameid($gameid); $gamestatus = DB_get_game_status_by_gameid($gameid); $GT = $gametype; -if($gametype=="solo") +if($gametype=='solo') { $gametype = DB_get_solo_by_gameid($gameid); - $GT = $gametype." ".$GT; + $GT = $gametype.' '.$GT; } /* do we need to worry about Schweinchen? @@ -76,6 +70,11 @@ else $ok=1; } +/* these are the defaults */ +$GAME['schweinchen-who'] = NULL; +$GAME['schweinchen-first'] = NULL; +$GAME['schweinchen-second'] = NULL; + if($ok) { /* need to check for Schweinchen */ @@ -83,39 +82,71 @@ if($ok) { $hash = DB_get_hash_from_game_and_pos($gameid,$i); $cards = DB_get_all_hand($hash); - if( in_array("19",$cards) && in_array("20",$cards) ) + if( in_array('19',$cards) && in_array('20',$cards) ) $GAME['schweinchen-who']=$hash; }; $GAME['schweinchen-first'] = 0; /* to keep track if they have been played already */ $GAME['schweinchen-second'] = 0; } -else -{ - /* no need to check for Schweinchen */ - $GAME['schweinchen-who']=NULL; -} /* end check for Schweinchen */ +/* set the $CARDS variable, needed for sorting the cards + * we set it to normal so that the pre-game phase is handled ok + * and later set it to the correct game type that is played + */ +set_gametype('normal'); + /* put everyting in a form */ -echo "
\n"; +echo "\n"; -/* output game */ +/* handle user notes (only possible while game is running)*/ +if( $mystatus!='gameover' ) + if(myisset('note')) + { + $note = $_REQUEST['note']; + + if($note != '') + DB_insert_note($note,$gameid,$myid); + }; +output_user_notes($myid,$gameid,$mystatus); + +/* handle calls */ +if(myisset('call') && $_REQUEST['call'] == '120' && can_call(120,$me)) + $result = DB_query("UPDATE Hand SET point_call='120' WHERE hash='$me' "); +if(myisset('call') && $_REQUEST['call'] == '90' && can_call(90,$me)) + $result = DB_query("UPDATE Hand SET point_call='90' WHERE hash='$me' "); +if(myisset('call') && $_REQUEST['call'] == '60' && can_call(60,$me)) + $result = DB_query("UPDATE Hand SET point_call='60' WHERE hash='$me' "); +if(myisset('call') && $_REQUEST['call'] == '30' && can_call(30,$me)) + $result = DB_query("UPDATE Hand SET point_call='30' WHERE hash='$me' "); +if(myisset('call') && $_REQUEST['call'] == '0' && can_call(0,$me)) + $result = DB_query("UPDATE Hand SET point_call='0' WHERE hash='$me' "); /* output extra division in case this game is part of a session */ if($session) { - echo "
\n". - "This game is part of session $session: \n"; + echo "
\n"; + echo "
Rules (+icons fur rules) \n"; + echo "
\n"; + echo " 10ofhearts : {$RULES['dullen']}
\n"; + echo " schweinchen: {$RULES['schweinchen']}
\n"; + echo " call: {$RULES['call']}
\n"; + echo "
\n
\n"; + echo "
Score \n"; + $score = generate_score_table($session); + echo format_score_table_html($score,$myid); + echo "
\n"; $hashes = DB_get_hashes_by_session($session,$myid); $i = 1; foreach($hashes as $hash) { - if($hash == $me) - echo "$i \n"; - else - echo "$i \n"; - $i++; + if($hash == $me) + $j=$i; + $i++; + $lasthash=$hash; } + $i--; + echo "This is game number $j of $i in session $session."; echo "
\n"; } @@ -134,7 +165,11 @@ display_table(); switch($mystatus) { case 'start': - if( !myisset("in") ) + /* don't ask if user has autosetup set to yest */ + $skip = 0; + if($PREF['autosetup']=='yes') $skip = 1; + + if( !myisset('in') && !$skip) { /* asks the player, if he wants to join the game */ output_check_want_to_play($me); @@ -143,7 +178,7 @@ switch($mystatus) else { /* check the result, if player wants to join, got next stage, else cancel game */ - if($_REQUEST["in"] == "no") + if(!$skip && $_REQUEST['in'] == 'no' ) { /* cancel the game */ $message = "Hello, \n\n". @@ -153,7 +188,7 @@ switch($mystatus) foreach($userids as $user) { $To = DB_get_email('userid',$user); - mymail($To,$EmailName."game ".DB_format_gameid($gameid)." canceled",$message); + mymail($To,"$EmailName game ".DB_format_gameid($gameid)." canceled",$message); } /* delete everything from the dB */ @@ -181,6 +216,7 @@ switch($mystatus) /* whos turn is it? */ DB_set_player_by_gameid($gameid,$user); $ok = 0; + break; } }; if($ok) @@ -211,38 +247,38 @@ switch($mystatus) case 'init': /* here we ask the player if he is sick */ $mycards = DB_get_hand($me); - sort($mycards); - - /* output sickness of other playes, in case the already selected and are sitting in front of the current player */ - echo "\n\n"; /* end div trick, end li trick , end tricks*/ + /* end displaying sickness */ - if(!myisset("solo","wedding","poverty","nines") ) - { output_check_for_sickness($me,$mycards); echo "
Your cards are:
\n"; foreach($mycards as $card) - display_card($card,$PREF["cardset"]); + display_card($card,$PREF['cardset']); echo "
\n"; break; @@ -251,19 +287,19 @@ switch($mystatus) { /* check if someone selected more than one sickness */ $Nsickness = 0; - if($_REQUEST["solo"]!="No") $Nsickness++; - if($_REQUEST["wedding"] == "yes") $Nsickness++; - if($_REQUEST["poverty"] == "yes") $Nsickness++; - if($_REQUEST["nines"] == "yes") $Nsickness++; + if($_REQUEST['solo']!='No') $Nsickness++; + if($_REQUEST['wedding'] == 'yes') $Nsickness++; + if($_REQUEST['poverty'] == 'yes') $Nsickness++; + if($_REQUEST['nines'] == 'yes') $Nsickness++; if($Nsickness>1) { echo "

You selected more than one sickness, please go back ". - "and answer the question again.

"; + "and answer the question again.

"; echo "
Your cards are:
\n"; foreach($mycards as $card) - display_card($card,$PREF["cardset"]); + display_card($card,$PREF['cardset']); echo "
\n"; break; @@ -277,44 +313,44 @@ switch($mystatus) $gametype = DB_get_gametype_by_gameid($gameid); $startplayer = DB_get_startplayer_by_gameid($gameid); /* need this to check which solo goes first */ - if( $_REQUEST["solo"]!="No" ) + if( $_REQUEST['solo']!='No' ) { /* user wants to play a solo */ /* store the info in the user's hand info */ - DB_set_solo_by_hash($me,$_REQUEST["solo"]); - DB_set_sickness_by_hash($me,"solo"); + DB_set_solo_by_hash($me,$_REQUEST['solo']); + DB_set_sickness_by_hash($me,'solo'); - echo "
Seems like you want to play a ".$_REQUEST["solo"]." solo. Got it.
\n"; + echo "
Seems like you want to play a {$_REQUEST['solo']} solo. Got it.
\n"; - if($gametype == "solo" && $startplayer<$mypos) + if($gametype == 'solo' && $startplayer<$mypos) {}/* do nothing, since someone else already is playing solo */ else { /* this solo comes first * store info in game table */ - DB_set_gametype_by_gameid($gameid,"solo"); + DB_set_gametype_by_gameid($gameid,'solo'); DB_set_startplayer_by_gameid($gameid,$mypos); - DB_set_solo_by_gameid($gameid,$_REQUEST["solo"]); + DB_set_solo_by_gameid($gameid,$_REQUEST['solo']); }; } - else if($_REQUEST["wedding"] == "yes") + else if($_REQUEST['wedding'] == 'yes') { - /* TODO: add silent solo somewhere*/ + /* silent solo is set further down */ echo "Ok, you don't want to play a silent solo...wedding was chosen.
\n"; - DB_set_sickness_by_hash($me,"wedding"); + DB_set_sickness_by_hash($me,'wedding'); } - else if($_REQUEST["poverty"] == "yes") + else if($_REQUEST['poverty'] == 'yes') { echo "Don't think you can win with just a few trump...? ok, poverty chosen
\n"; - DB_set_sickness_by_hash($me,"poverty"); + DB_set_sickness_by_hash($me,'poverty'); } - else if($_REQUEST["nines"] == "yes") + else if($_REQUEST['nines'] == 'yes') { echo "What? You just don't want to play a game because you have a few nines? Well, if no one". " is playing solo, this game will be canceled.
\n"; - DB_set_sickness_by_hash($me,"nines"); + DB_set_sickness_by_hash($me,'nines'); } echo "

\n"; @@ -329,35 +365,31 @@ switch($mystatus) * this can therefore only be handled once all players finished the last stage */ - /* only need to redisplay the cards when the user reloads the page and lands directly here */ - if($mystatus=='check') - { - $mycards = DB_get_hand($me); - sort($mycards); + $mycards = DB_get_hand($me); + $mycards = mysort($mycards,$gametype); - /* output sickness of other playes, in case the already selected and are sitting in front of the current player */ - echo "\n\n"; /* end div trick, end li trick , end tricks*/ + /* end displaying sickness */ echo "
\n"; echo "

Checking if someone else selected solo, nines, wedding or poverty.

"; @@ -372,6 +404,7 @@ switch($mystatus) { $ok = 0; DB_set_player_by_gameid($gameid,$user); + break; } }; @@ -391,7 +424,7 @@ switch($mystatus) /* show cards */ echo "
Your cards are:
\n"; foreach($mycards as $card) - display_card($card,$PREF["cardset"]); + display_card($card,$PREF['cardset']); echo "
\n"; } break; @@ -430,7 +463,7 @@ switch($mystatus) } /* now check which sickness comes first and set the gametype to it */ - if($gametype == "solo") + if($gametype == 'solo') { /* do nothing */ } @@ -448,7 +481,7 @@ switch($mystatus) foreach($userids as $user) { $To = DB_get_email('userid',$user); - mymail($To,$EmailName."game ".DB_format_gameid($gameid)." canceled",$message); + mymail($To,"$EmailName game ".DB_format_gameid($gameid)." canceled",$message); } /* delete everything from the dB */ @@ -456,19 +489,17 @@ switch($mystatus) echo "The game has been canceled because ".DB_get_name('userid',$nines). " has five or more nines and nobody is playing solo.\n"; - output_footer(); - DB_close(); - exit(); + return; } else if($poverty==1) /* one person has poverty */ { - DB_set_gametype_by_gameid($gameid,"poverty"); - $gametype = "poverty"; + DB_set_gametype_by_gameid($gameid,'poverty'); + $gametype = 'poverty'; $who = DB_get_sickness_by_gameid($gameid); if(!$who) { $firstsick = DB_get_sickness_by_pos_and_gameid(1,$gameid); - if($firstsick == "poverty") + if($firstsick == 'poverty') DB_set_sickness_by_gameid($gameid,2); /* who needs to be asked first */ else DB_set_sickness_by_gameid($gameid,1); /* who needs to be asked first */ @@ -476,16 +507,16 @@ switch($mystatus) } else if($poverty==2) /* two people have poverty */ { - DB_set_gametype_by_gameid($gameid,"dpoverty"); - $gametype = "dpoverty"; + DB_set_gametype_by_gameid($gameid,'dpoverty'); + $gametype = 'dpoverty'; $who = DB_get_sickness_by_gameid($gameid); if(!$who) { $firstsick = DB_get_sickness_by_pos_and_gameid(1,$gameid); - if($firstsick == "poverty") + if($firstsick == 'poverty') { $seconsick = DB_get_sickness_by_pos_and_gameid(1,$gameid); - if($secondsick == "poverty") + if($secondsick == 'poverty') DB_set_sickness_by_gameid($gameid,30); /* who needs to be asked first */ else DB_set_sickness_by_gameid($gameid,20); /* who needs to be asked first */ @@ -496,9 +527,9 @@ switch($mystatus) } else if($wedding> 0) { - DB_set_gametype_by_gameid($gameid,"wedding"); + DB_set_gametype_by_gameid($gameid,'wedding'); DB_set_sickness_by_gameid($gameid,'-1'); /* wedding not resolved yet */ - $gametype = "wedding"; + $gametype = 'wedding'; }; /* now the gametype is set correctly in the database */ echo "

Got it :)

"; @@ -511,41 +542,41 @@ switch($mystatus) switch($gametype) { - case "solo": + case 'solo': /* are we the solo player? set us to re, else set us to contra */ $pos = DB_get_pos_by_hash($userhash); if($pos == $startplayer) - DB_set_party_by_hash($userhash,"re"); + DB_set_party_by_hash($userhash,'re'); else - DB_set_party_by_hash($userhash,"contra"); + DB_set_party_by_hash($userhash,'contra'); DB_set_hand_status_by_hash($userhash,'play'); break; - case "wedding": + case 'wedding': /* set person with the wedding to re, do the rest during the game */ $usersick = DB_get_sickness_by_userid_and_gameid($userid,$gameid); - if($usersick == "wedding") - DB_set_party_by_hash($userhash,"re"); + if($usersick == 'wedding') + DB_set_party_by_hash($userhash,'re'); else - DB_set_party_by_hash($userhash,"contra"); + DB_set_party_by_hash($userhash,'contra'); DB_set_hand_status_by_hash($userhash,'play'); break; - case "normal": + case 'normal': $hand = DB_get_all_hand($userhash); if(in_array('3',$hand)||in_array('4',$hand)) - DB_set_party_by_hash($userhash,"re"); + DB_set_party_by_hash($userhash,'re'); else - DB_set_party_by_hash($userhash,"contra"); + DB_set_party_by_hash($userhash,'contra'); DB_set_hand_status_by_hash($userhash,'play'); break; - case "poverty": - case "dpoverty": + case 'poverty': + case 'dpoverty': /* set person with poverty to play status */ $usersick = DB_get_sickness_by_userid_and_gameid($userid,$gameid); - if($usersick == "poverty") + if($usersick == 'poverty') DB_set_hand_status_by_hash($userhash,'play'); /* set status of first player to be asked to poverty */ @@ -570,14 +601,14 @@ switch($mystatus) { /* normal game type and player has both queens -> silent solo */ /* keep startplayer, just set gametype to silent solo */ - DB_set_gametype_by_gameid($gameid,"solo"); + DB_set_gametype_by_gameid($gameid,'solo'); DB_set_solo_by_gameid($gameid,'silent'); } } } /* send out email to first player or poverty person*/ - if($gametype!="poverty" && $gametype!="dpoverty") + if($gametype!='poverty' && $gametype!='dpoverty') { $startplayer = DB_get_startplayer_by_gameid($gameid); $email = DB_get_email('position-gameid',$startplayer,$gameid); @@ -587,7 +618,7 @@ switch($mystatus) if($hash!=$me) { - if(DB_get_email_pref_by_hash($hash)!="emailaddict") + if(DB_get_email_pref_by_hash($hash)!='emailaddict') { /* email startplayer */ $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n". @@ -596,7 +627,7 @@ switch($mystatus) } } else - echo " Please, start the game.
\n"; + echo " Please, start the game.
\n"; } else { @@ -606,14 +637,14 @@ switch($mystatus) $whoid = DB_get_userid('gameid-position',$gameid,$who); if($whoid==$myid) - echo " Please, start the game.
\n"; + echo " Please, start the game.
\n"; else { $email = DB_get_email('position-gameid',$who,$gameid); $whohash = DB_get_hash_from_game_and_pos($gameid,$who); DB_set_player_by_gameid($gameid,$whoid); - if(DB_get_email_pref_by_hash($hash)!="emailaddict") + if(DB_get_email_pref_by_hash($hash)!='emailaddict') { /* email player for poverty */ $message = "Poverty: It's your turn now in game ".DB_format_gameid($gameid).".\n". @@ -632,6 +663,7 @@ switch($mystatus) * poverty: set re/contra * dpoverty: first time: set re, send email to second player * second time: set contra + * poverty: set status of other players to 'play' * set status to play in case 0 trump * no -> set status to play, * ask next player or cancle the game if no more players @@ -649,7 +681,7 @@ switch($mystatus) /* the following is part B) of whats needs to be done) /* check if user wants to give cards back */ - if(myisset("exchange")) + if(myisset('exchange')) { $exchange = $_REQUEST['exchange']; $partnerhash = DB_get_partner_hash_by_hash($me); @@ -663,6 +695,7 @@ switch($mystatus) " WHERE hand_id='$myhand' AND card_id=".DB_quote_smart($exchange)); }; } + /* update hand */ $mycards = DB_get_hand($me); $mycards = mysort($mycards,$gametype); @@ -672,10 +705,10 @@ switch($mystatus) { echo "
you need to get rid of a few cards
\n"; - $type="exchange"; + $type='exchange'; echo "
Your cards are:
\n"; foreach($mycards as $card) - display_link_card($card,$PREF["cardset"],$type); + display_link_card($card,$PREF['cardset'],$type); echo " \n"; echo "
\n"; } @@ -683,11 +716,30 @@ switch($mystatus) { /* user is done, ready to play */ DB_set_hand_status_by_hash($me,'play'); - /* TODO if resolved; email start player, set startplayer */ + + /* email start player */ + $startplayer = DB_get_startplayer_by_gameid($gameid); + $email = DB_get_email('position-gameid',$startplayer,$gameid); + $hash = DB_get_hash_from_game_and_pos($gameid,$startplayer); + $who = DB_get_userid('email',$email); + DB_set_player_by_gameid($gameid,$who); + + if($hash!=$me) + { + if(DB_get_email_pref_by_hash($hash)!='emailaddict') + { + /* email startplayer */ + $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n". + "Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$hash."\n\n" ; + mymail($email,$EmailName."ready, set, go... (game ".DB_format_gameid($gameid).") ",$message); + } + } + else + echo " Please, start the game.
\n"; } /* the following is part A) of what needs to be done */ - if(!myisset("trump")) + if(!myisset('trump')) { if(!$myparty) { @@ -700,7 +752,7 @@ switch($mystatus) $userhash = DB_get_hash_from_gameid_and_userid($gameid,$user); $userparty = DB_get_party_by_hash($userhash); - if($usersick=="poverty" && !$userparty) + if($usersick=='poverty' && !$userparty) { $hash = DB_get_hash_from_gameid_and_userid($gameid,$user); $cards = DB_get_hand($hash); @@ -709,15 +761,15 @@ switch($mystatus) foreach($cards as $card) if($card<27) $nrtrump++; echo "Player $name has $nrtrump trump. Do you want to take them?". - "yes
\n"; + "Yes
\n"; } } - echo "No,way I take those trump...
\n"; + echo "No way
\n"; echo "
\n"; echo "
Your cards are:
\n"; foreach($mycards as $card) - display_card($card,$PREF["cardset"]); + display_card($card,$PREF['cardset']); echo "
\n"; } break; @@ -726,7 +778,7 @@ switch($mystatus) { $trump = $_REQUEST['trump']; - if($trump=="no") + if($trump=='no') { /* user doesn't want to take trump */ DB_set_hand_status_by_hash($me,'play'); @@ -737,14 +789,14 @@ switch($mystatus) /* don't ask people who have poverty */ $next=1; - if($firstsick=="poverty") + if($firstsick=='poverty') { - if($secondsick=="poverty") + if($secondsick=='poverty') $next=3; else $next=2; } - if($gametype=="dpoverty") + if($gametype=='dpoverty') { $next=999; /* need to cancel for sure, since both would need to take the trump */ } @@ -766,9 +818,7 @@ switch($mystatus) DB_cancel_game($me); echo "

Game ".DB_format_gameid($gameid)." has been canceled.

"; - output_footer(); - DB_close(); - exit(); + return; } else { @@ -781,7 +831,7 @@ switch($mystatus) DB_set_hand_status_by_hash($userhash,'poverty'); $message = "Someone has poverty, it's your turn to decide, if you want to take the trump. Please visit:". - " ".$HOST.$INDEX."?action=game&me=".$userhash."\n\n" ; + " ".$HOST.$INDEX."?action=game&me=".$userhash."\n\n" ; mymail($To,$EmailName." poverty (game ".DB_format_gameid($gameid).")",$message); } } @@ -790,13 +840,14 @@ switch($mystatus) /* player wants to take trump, change cards */ /* user wants to take trump */ - $trump = $_REQUEST["trump"]; + $trump = $_REQUEST['trump']; $userhand = DB_get_handid('gameid-userid',$gameid,$trump); $userhash = DB_get_hash_from_gameid_and_userid($gameid,$trump); /* copy trump from player A to B */ $result = DB_query("UPDATE Hand_Card SET hand_id='$myhand' WHERE hand_id='$userhand' AND card_id<'27'" ); + /* reload cards */ $mycards = DB_get_hand($me); /* set re/contra */ @@ -807,18 +858,19 @@ switch($mystatus) { $hash = DB_get_hash_from_gameid_and_userid($gameid,$user); if($hash==$userhash||$hash==$me) - DB_set_party_by_hash($hash,"re"); + { + DB_set_party_by_hash($hash,'re'); + } else - DB_set_party_by_hash($hash,"contra"); + { + DB_set_party_by_hash($hash,'contra'); + DB_set_hand_status_by_hash($hash,'play'); /* the contra party is ready to play */ + } } - /* check if we are done, if so, send everyone into the 'play' phase */ + /* check if we are done (in case of no trump handed over), if so, go to 'play' phase right away*/ if(count($mycards)==12) { - foreach($userids as $user) - { - $hash = DB_get_hash_from_gameid_and_userid($gameid,$user); - DB_set_hand_status_by_hash($hash,'play'); - } + DB_set_hand_status_by_hash($me,'play'); } } else /*dpoverty*/ @@ -848,8 +900,8 @@ switch($mystatus) $secondsick = (string) DB_get_sickness_by_pos_and_gameid($mypos+2,$gameid); $next=1; - if($firstsick=="poverty") - if($secondsick=="poverty") + if($firstsick=='poverty') + if($secondsick=='poverty') $next=3; else $next=2; @@ -871,7 +923,7 @@ switch($mystatus) } } - echo "
Please, continue here.
\n"; + echo "
Please, continue here.
\n"; } } echo "
"; @@ -899,6 +951,7 @@ switch($mystatus) { $ok = 0; DB_set_player_by_gameid($gameid,$user); + break; } } if($ok) @@ -913,7 +966,7 @@ switch($mystatus) $who = DB_get_userid('email',$email); DB_set_player_by_gameid($gameid,$who); - if($hash!=$me && DB_get_email_pref_by_hash($hash)!="emailaddict") + if($hash!=$me && DB_get_email_pref_by_hash($hash)!='emailaddict') { /* email startplayer) */ $message = "It's your turn now in game ".DB_format_gameid($gameid).".\n". @@ -923,23 +976,23 @@ switch($mystatus) } } /* figure out what kind of game we are playing, - * set the global variables $CARDS["trump"],$CARDS["diamonds"],$CARDS["hearts"], - * $CARDS["clubs"],$CARDS["spades"],$CARDS["foxes"] + * set the global variables $CARDS['trump'],$CARDS['diamonds'],$CARDS['hearts'], + * $CARDS['clubs'],$CARDS['spades'],$CARDS['foxes'] * accordingly */ $gametype = DB_get_gametype_by_gameid($gameid); $GT = $gametype; - if($gametype=="solo") + if($gametype=='solo') { $gametype = DB_get_solo_by_gameid($gameid); if($gametype=='silent') $GT = 'normal'; else - $GT = $gametype." ".$GT; + $GT = $gametype.' '.$GT; } else - $gametype = "normal"; + $gametype = 'normal'; set_gametype($gametype); /* this sets the $CARDS variable */ @@ -957,7 +1010,7 @@ switch($mystatus) echo "
Your cards are:
\n"; foreach($mycards as $card) - display_card($card,$PREF["cardset"]); + display_card($card,$PREF['cardset']); echo "
\n"; break; /* not sure this works... the idea is that you can @@ -969,26 +1022,16 @@ switch($mystatus) $gameend = time() - strtotime($r[0]); /* handle comments in case player didn't play a card, allow comments a week after the end of the game */ - if( (!myisset("card") && $mystatus=='play') || ($mystatus=='gameover' && ($gameend < 60*60*24*7)) ) - if(myisset("comment")) + if( (!myisset('card') && $mystatus=='play') || ($mystatus=='gameover' && ($gameend < 60*60*24*7)) ) + if(myisset('comment')) { - $comment = $_REQUEST["comment"]; + $comment = $_REQUEST['comment']; $playid = DB_get_current_playid($gameid); - if($comment != "") + if($comment != '') DB_insert_comment($comment,$playid,$myid); }; - /* handle notes in case player didn't play a card, allow notes only during a game */ - if( (!myisset("card") && $mystatus=='play') ) - if(myisset("note")) - { - $note = $_REQUEST["note"]; - - if($note != "") - DB_insert_note($note,$gameid,$myid); - }; - /* get everything relevant to display the tricks */ $result = DB_query("SELECT Hand_Card.card_id as card,". " Hand.position as position,". @@ -1007,13 +1050,13 @@ switch($mystatus) "WHERE Trick.game_id='".$gameid."' ". "GROUP BY Trick.id, sequence ". "ORDER BY Trick.id, sequence ASC"); - $trickNR = 1; + $trickNR = 0; $lasttrick = DB_get_max_trickid($gameid); $play = array(); /* needed to calculate winner later */ $seq = 1; $pos = DB_get_startplayer_by_gameid($gameid)-1; - $firstcard = ""; /* first card in a trick */ + $firstcard = ''; /* first card in a trick */ echo "\n\n"; /* end ul tricks*/ - - echo "
Personal notes:
\n"; - $notes = DB_get_notes_by_userid_and_gameid($myid,$gameid); - foreach($notes as $note) - echo "$note
\n"; - echo "Insert note:\n"; - echo "
\n"; - - $mycards = DB_get_hand($me); - $mycards = mysort($mycards,$gametype); - echo "
\n"; - - if($myturn && !myisset("card") && $mystatus=='play' ) - { - echo "Hello ".$myname.", it's your turn!
\n"; - echo "Your cards are:
\n"; - - /* do we have to follow suite? */ - $followsuit = 0; - if(have_suit($mycards,$firstcard)) - $followsuit = 1; - - foreach($mycards as $card) - { - if($followsuit && !same_type($card,$firstcard)) - display_card($card,$PREF["cardset"]); - else - display_link_card($card,$PREF["cardset"]); - } - } - else if($mystatus=='play' ) - { - echo "Your cards are:
\n"; - foreach($mycards as $card) - display_card($card,$PREF["cardset"]); - } - 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,$PREF["cardset"]); - - $userids = DB_get_all_userid_by_gameid($gameid); - foreach($userids as $user) - { - $userhash = DB_get_hash_from_gameid_and_userid($gameid,$user); - - if($userhash!=$me) - { - echo "
"; - - $name = DB_get_name('userid',$user); - $oldcards = DB_get_all_hand($userhash); - $oldcards = mysort($oldcards,$gametype); - echo "$name's cards were:
\n"; - foreach($oldcards as $card) - display_card($card,$PREF["cardset"]); - } - }; - } - echo "
\n"; - - /* if the game is over do some extra stuff, therefore exit the swtich statement if we are still playing*/ - if($mystatus=='play') - break; + echo "
  • prev
  • \n"; + echo "
  • next
  • \n"; + echo "\n"; /* end ul tricks*/ - /* 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 - { - $result = DB_query("SELECT Hand.party, IFNULL(SUM(Card.points),0) FROM Hand". - " LEFT JOIN Trick ON Trick.winner=Hand.position AND Trick.game_id=Hand.game_id". - " LEFT JOIN User ON User.id=Hand.user_id". - " LEFT JOIN Play ON Trick.id=Play.trick_id". - " LEFT JOIN Hand_Card ON Hand_Card.id=Play.hand_card_id". - " LEFT JOIN Card ON Card.id=Hand_Card.card_id". - " WHERE Hand.game_id='$gameid'". - " GROUP BY Hand.party" ); - echo "
    Totals:
    \n"; - while( $r = DB_fetch_array($result)) - echo " ".$r[0]." ".$r[1]."
    \n"; - - $queryresult = DB_query("SELECT timediff(mod_date,create_date) ". - " FROM Game WHERE id='$gameid'"); - $r = DB_fetch_array($queryresult); - echo "

    This game took ".$r[0]." hours.

    "; - - echo "
    \n Points Re:
    \n"; - $queryresult = DB_query("SELECT score FROM Score ". - " WHERE game_id=$gameid AND party='re'". - " "); - while($r = DB_fetch_array($queryresult) ) - echo " ".$r[0]."
    \n"; - echo "
    \n"; - - echo "
    \n Points Contra:
    \n"; - $queryresult = DB_query("SELECT score FROM Score ". - " WHERE game_id=$gameid AND party='contra'". - " "); - while($r = DB_fetch_array($queryresult) ) - echo " ".$r[0]."
    \n"; - echo "
    \n"; - - echo "
    \n"; - - - } - break; - default: - myerror("error in testing the status"); - } - /* output left menu */ - display_user_menu(); + $mycards = DB_get_hand($me); + $mycards = mysort($mycards,$gametype); + echo "
    \n"; - /* output right menu */ + if($myturn && !myisset('card') && $mystatus=='play' ) + { + echo "Hello ".$myname.", it's your turn!
    \n"; + echo "Your cards are:
    \n"; - /* display rule set for this game */ - echo "
    \n"; + /* do we have to follow suite? */ + $followsuit = 0; + if(have_suit($mycards,$firstcard)) + $followsuit = 1; - if($gamestatus != 'pre') - echo " Gametype: $GT
    \n"; + foreach($mycards as $card) + { + if( ($followsuit && !same_type($card,$firstcard)) || + ( (int)($card)==19 && ($RULES['schweinchen']=='second'||$RULES['schweinchen']=='secondaftercall') + && $GAME['schweinchen-who']==$me && !$GAME['schweinchen-first'] ) + ) + display_card($card,$PREF['cardset']); + else + display_link_card($card,$PREF['cardset']); + } + } + else if($mystatus=='play' ) + { + echo "Your cards are:
    \n"; + foreach($mycards as $card) + display_card($card,$PREF['cardset']); + } + 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,$PREF['cardset']); - echo "Rules:
    \n"; - echo "10ofhearts : ".$RULES["dullen"] ."
    \n"; - echo "schweinchen: ".$RULES["schweinchen"] ."
    \n"; - echo "call: ".$RULES["call"] ."
    \n"; + $userids = DB_get_all_userid_by_gameid($gameid); + foreach($userids as $user) + { + $userhash = DB_get_hash_from_gameid_and_userid($gameid,$user); - echo "
    \n"; - if($gamestatus == 'play' ) - output_form_calls($me); + if($userhash!=$me) + { + echo "
    "; + + $name = DB_get_name('userid',$user); + $oldcards = DB_get_all_hand($userhash); + $oldcards = mysort($oldcards,$gametype); + echo "$name's cards were:
    \n"; + foreach($oldcards as $card) + display_card($card,$PREF['cardset']); + } + }; + } + echo "
    \n"; - /* get time from the last action of the game */ - $r = DB_query_array("SELECT mod_date from Game WHERE id='$gameid' " ); - $gameend = time() - strtotime($r[0]); + /* if the game is over do some extra stuff, therefore exit the swtich statement if we are still playing*/ + if($mystatus=='play') + break; - if($gamestatus == 'play' || $gameend < 60*60*24*7) + /* 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 "
    \nA short comment:\n"; - echo "
    "; + echo "The game is over for you.. other people still need to play though"; } + else + { + $result = DB_query("SELECT Hand.party, IFNULL(SUM(Card.points),0) FROM Hand". + " LEFT JOIN Trick ON Trick.winner=Hand.position AND Trick.game_id=Hand.game_id". + " LEFT JOIN User ON User.id=Hand.user_id". + " LEFT JOIN Play ON Trick.id=Play.trick_id". + " LEFT JOIN Hand_Card ON Hand_Card.id=Play.hand_card_id". + " LEFT JOIN Card ON Card.id=Hand_Card.card_id". + " WHERE Hand.game_id='$gameid'". + " GROUP BY Hand.party" ); + echo "
    Totals:
    \n"; + while( $r = DB_fetch_array($result)) + echo " ".$r[0]." ".$r[1]."
    \n"; + + $queryresult = DB_query("SELECT timediff(mod_date,create_date) ". + " FROM Game WHERE id='$gameid'"); + $r = DB_fetch_array($queryresult); + echo "

    This game took ".$r[0]." hours.

    "; + + echo "
    \n Points Re:
    \n"; + $queryresult = DB_query("SELECT score FROM Score ". + " WHERE game_id=$gameid AND party='re'". + " "); + while($r = DB_fetch_array($queryresult) ) + echo " ".$r[0]."
    \n"; + echo "
    \n"; - echo "\n
    \n"; + echo "
    \n Points Contra:
    \n"; + $queryresult = DB_query("SELECT score FROM Score ". + " WHERE game_id=$gameid AND party='contra'". + " "); + while($r = DB_fetch_array($queryresult) ) + echo " ".$r[0]."
    \n"; + echo "
    \n"; - $session = DB_get_session_by_gameid($gameid); - $score = generate_score_table($session); + echo "
    \n"; - echo $score; - echo "
    \n"; + } + break; + default: + myerror("error in testing the status"); + } +/* output left menu */ +display_user_menu(); - echo "
    \n"; +/* output right menu */ - if($mystatus=='gameover' && DB_get_game_status_by_gameid($gameid)=='gameover' ) - { +/* display rule set for this game */ +echo "
    \n"; - $session = DB_get_session_by_gameid($gameid); - $result = DB_query("SELECT id,create_date FROM Game". - " WHERE session=$session". - " ORDER BY create_date DESC". - " LIMIT 1"); - $r = -1; - if($result) - $r = DB_fetch_array($result); +if($gamestatus == 'play' ) + output_form_calls($me); - if(!$session || $gameid==$r[0]) - { - /* suggest a new game with the same people in it, just rotated once (unless last game was solo) */ - $names = DB_get_all_names_by_gameid($gameid); - $type = DB_get_gametype_by_gameid($gameid); +/* get time from the last action of the game */ +$r = DB_query_array("SELECT mod_date from Game WHERE id='$gameid' " ); +$gameend = time() - strtotime($r[0]); - if($type=="solo") - { - $solo = DB_get_solo_by_gameid($gameid); +if($gamestatus == 'play' || $gameend < 60*60*24*7) + { + echo "
    \nA short comment:\n"; + } - if($solo!='silent') /* repeat game with same first player */ - output_ask_for_new_game($names[0],$names[1],$names[2],$names[3],$gameid); - else /* rotate normally */ - output_ask_for_new_game($names[1],$names[2],$names[3],$names[0],$gameid); - } +echo "\n"; + +echo "
    \n"; + +echo "\n"; + +if($mystatus=='gameover' && DB_get_game_status_by_gameid($gameid)=='gameover' ) + { + $session = DB_get_session_by_gameid($gameid); + $result = DB_query("SELECT id,create_date FROM Game". + " WHERE session=$session". + " ORDER BY create_date DESC". + " LIMIT 1"); + $r = -1; + if($result) + $r = DB_fetch_array($result); + + if(!$session || $gameid==$r[0]) + { + /* suggest a new game with the same people in it, just rotated once (unless last game was solo) */ + $names = DB_get_all_names_by_gameid($gameid); + $type = DB_get_gametype_by_gameid($gameid); + + if($type=='solo') + { + $solo = DB_get_solo_by_gameid($gameid); + + if($solo!='silent') /* repeat game with same first player */ + output_ask_for_new_game($names[0],$names[1],$names[2],$names[3],$gameid); else /* rotate normally */ output_ask_for_new_game($names[1],$names[2],$names[3],$names[0],$gameid); } + else /* rotate normally */ + output_ask_for_new_game($names[1],$names[2],$names[3],$names[0],$gameid); } - - - output_footer(); - DB_close(); - exit(); + } ?> \ No newline at end of file