\n".
"
\n";
}
else if($trick==$lasttrick)
{
/* start of a last trick? */
- echo "
Trick $trickNR\n".
+ echo " "._('Trick')." $trickNR\n".
" \n".
"
\n";
};
@@ -1121,18 +1314,18 @@ switch($mystatus)
echo "
\n";
/* display comments */
- if($comment!="")
+ if($comment!='')
echo " \n";
- echo " ";
- display_card($r[0],$PREF["cardset"]);
+ echo ' ';
+ display_card($r[0],$PREF['cardset']);
echo "
\n"; /* end div card */
/* end of trick? */
if($seq==4)
{
- $trickNR++;
+ $winner = get_winner($play,$gametype); /* returns the position */
echo "
\n \n"; /* end div trick, end li trick */
}
}
@@ -1142,7 +1335,7 @@ switch($mystatus)
{
$winner = get_winner($play,$gametype); /* returns the position */
$next = $winner;
- $firstcard = ""; /* new trick, no first card */
+ $firstcard = ''; /* new trick, no first card */
}
else
{
@@ -1157,11 +1350,11 @@ switch($mystatus)
$myturn = 0;
/* do we want to play a card? */
- if(myisset("card") && $myturn)
+ if(myisset('card') && $myturn)
{
- $card = $_REQUEST["card"];
+ $card = $_REQUEST['card'];
$handid = DB_get_handid('hash',$me);
- $commentSchweinchen =""; /* used to add a comment when Schweinchen is being played */
+ $commentSchweinchen =''; /* used to add a comment when Schweinchen is being played */
/* 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*/
@@ -1174,18 +1367,6 @@ switch($mystatus)
/* 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("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' ");
-
/* mark card as played */
DB_query("UPDATE Hand_Card SET played='true' WHERE hand_id='$handid' AND card_id=".
DB_quote_smart($card));
@@ -1201,24 +1382,28 @@ switch($mystatus)
/* check special output for schweinchen in case in case a fox is being played
* check for correct rules, etc. has already been done
*/
- if( $GAME["schweinchen-who"] && ($card == 19 || $card == 20) )
+ if( $GAME['schweinchen-who'] && ($card == 19 || $card == 20) )
{
if(!$GAME['schweinchen-first'])
$GAME['schweinchen-first'] = 1; /* playing the first fox */
else
$GAME['schweinchen-second'] = 1; /* this must be the second fox */
- if( ($GAME['schweinchen-second']==1 && $RULES['schweinchen']=='second') || $RULES['schweinchen']=='both')
+ if( $RULES['schweinchen']=='both' ||
+ ($RULES['schweinchen']=='second' && $GAME['schweinchen-second']==1 )||
+ ($RULES['schweinchen']=='secondaftercall' && $GAME['schweinchen-second']==1 &&
+ (DB_get_call_by_hash($GAME['schweinchen-who']) || DB_get_partner_call_by_hash($GAME['schweinchen-who']) ))
+ )
{
- DB_insert_comment("Schweinchen! ",$playid,$myid);
- $commentSchweinchen = "Schweinchen! ";
+ DB_insert_comment('Schweinchen! ',$playid,$myid);
+ $commentSchweinchen = 'Schweinchen! ';
}
if ($debug)
- echo "schweinchen = ".$GAME["schweinchen-who"]." ---
";
+ echo 'schweinchen = '.$GAME['schweinchen-who'].' ---
';
}
/* if sequence == 4 check who one in case of wedding */
- if($sequence == 4 && $GT == "wedding")
+ if($sequence == 4 && $GT == 'wedding')
{
/* is wedding resolve */
$resolved = DB_get_sickness_by_gameid($gameid);
@@ -1229,7 +1414,7 @@ switch($mystatus)
foreach($userids as $user)
{
$usersick = DB_get_sickness_by_userid_and_gameid($user,$gameid);
- if($usersick == "wedding")
+ if($usersick == 'wedding')
$whosick = $user;
}
/* who won the trick */
@@ -1243,7 +1428,7 @@ switch($mystatus)
$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");
+ DB_set_party_by_hash($whash,'re');
}
if($tricknr == 3 && $winnerid==$whosick)
{
@@ -1259,12 +1444,15 @@ switch($mystatus)
$play = DB_get_cards_by_trick($trickid);
$winner = get_winner($play,$gametype); /* returns the position */
- /* check if someone caught a fox */
+ /*
+ * check if someone caught a fox
+ *******************************/
+
/* first check if we should account for solos at all,
* since it doesn't make sense in some games
*/
$ok = 0; /* fox shouldn't be counted */
- if(DB_get_gametype_by_gameid($gameid)=="solo")
+ if(DB_get_gametype_by_gameid($gameid)=='solo')
{
$solo = DB_get_solo_by_gameid($gameid);
if($solo == 'trump' || $solo == 'silent')
@@ -1292,32 +1480,41 @@ switch($mystatus)
}
}
- /* check for karlchen (jack of clubs in the last trick)*/
+ /*
+ * check for karlchen (jack of clubs in the last trick)
+ ******************************************************/
+
/* same as for foxes, karlchen doesn't always make sense
* check what kind of game it is and set karlchen accordingly */
- $ok = 1; /* default: karlchen should be accounted for */
- if($tricknr != 12 )
- $ok = 0; /* Karlchen works only in the last trick */
- if($ok && DB_get_gametype_by_gameid($gameid)=="solo" )
+
+ if($tricknr == 12 ) /* Karlchen works only in the last trick */
{
- $solo = DB_get_solo_by_gameid($gameid);
- if($solo == "trumpless" || $solo == "jack" || $solo == "queen" )
- $ok = 0; /* no Karlchen in these solos */
- }
+ /* check for solo */
+ $solo = 'none';
+ if(DB_get_gametype_by_gameid($gameid)=='solo' )
+ $solo = DB_get_solo_by_gameid($gameid);
- if($ok)
- foreach($play as $played)
- if ( $played['card']==11 || $played['card']==12 )
- if ($played['pos'] == $winner )
- {
- /* possible caught a fox, check party */
- $uid1 = DB_get_userid('gameid-position',$gameid,$winner);
- $party1 = DB_get_party_by_gameid_and_userid($gameid,$uid1);
+ /* no Karlchen in these solos */
+ if($solo != 'trumpless' && $solo != 'jack' && $solo != 'queen' )
+ {
+ foreach($play as $played)
+ if ( $played['card']==11 || $played['card']==12 )
+ if ($played['pos'] == $winner )
+ {
+ /* save Karlchen */
+ $uid1 = DB_get_userid('gameid-position',$gameid,$winner);
+ $party1 = DB_get_party_by_gameid_and_userid($gameid,$uid1);
+
+ DB_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'$party1',$uid1,NULL,'karlchen')");
+ };
+ };
+ }; /* end scoring Karlchen */
+
+ /*
+ * check for doppelopf (>40 points)
+ ***********************************/
- DB_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'$party1',$uid1,NULL,'karlchen')");
- }
- /* check for doppelopf (>40 points)*/
$points = 0;
foreach($play as $played)
{
@@ -1332,10 +1529,14 @@ switch($mystatus)
" VALUES( NULL,NULL,$gameid,'$party1',$uid1,NULL,'doko')");
}
+ /*
+ * set winner (for this trick)
+ */
+
if($winner>0)
DB_query("UPDATE Trick SET winner='$winner' WHERE id='$trickid'");
else
- echo "ERROR during scoring";
+ $messages[] = "ERROR during scoring";
if($debug)
echo "DEBUG: position $winner won the trick
";
@@ -1350,28 +1551,20 @@ switch($mystatus)
if($next==5) $next=1;
/* check for coment */
- if(myisset("comment"))
+ if(myisset('comment'))
{
- $comment = $_REQUEST["comment"];
- if($comment != "")
+ $comment = $_REQUEST['comment'];
+ if($comment != '')
DB_insert_comment($comment,$playid,$myid);
if($commentSchweinchen)
$comment = $commentSchweinchen . $comment;
};
- /* check for note */
- if(myisset("note"))
- {
- $note = $_REQUEST["note"];
- if($note != "")
- DB_insert_note($note,$gameid,$myid);
- };
-
/* display played card */
$pos = DB_get_pos_by_hash($me);
if($sequence==1)
{
- echo "
Trick ".($tricknr)."\n".
+ echo " "._('Trick').' '.($tricknr)."\n".
" \n".
"
\n";
}
@@ -1379,11 +1572,13 @@ switch($mystatus)
echo "
\n ";
/* display comments */
- display_card($card,$PREF["cardset"]);
- if($comment!="")
+ display_card($card,$PREF['cardset']);
+ if($comment!='')
echo "\n \n";
echo "
\n";
+ echo "
\n \n"; /* end div trick, end li trick */
+
/*check if we still have cards left, else set status to gameover */
if(sizeof(DB_get_hand($me))==0)
{
@@ -1403,21 +1598,22 @@ switch($mystatus)
$done=0;
if($done)
- DB_set_game_status_by_gameid($gameid,"gameover");
+ DB_set_game_status_by_gameid($gameid,'gameover');
/* email next player, if game is still running */
if(DB_get_game_status_by_gameid($gameid)=='play')
{
$next_hash = DB_get_hash_from_game_and_pos($gameid,$next);
- $email = DB_get_email('hash',$next_hash);
- $who = DB_get_userid('email',$email);
+ $who = DB_get_userid('hash',$next_hash);
DB_set_player_by_gameid($gameid,$who);
- $message = "A card has been played in game ".DB_format_gameid($gameid).".\n\n".
+ $email_message = "A card has been played in game ".DB_format_gameid($gameid).".\n\n".
"It's your turn now.\n".
"Use this link to play a card: ".$HOST.$INDEX."?action=game&me=".$next_hash."\n\n" ;
- if( DB_get_email_pref_by_uid($who)!="emailaddict" )
- mymail($email,$EmailName."a card has been played in game ".DB_format_gameid($gameid),$message);
+ if( DB_get_email_pref_by_uid($who)!='emailaddict' )
+ {
+ mymail($who,$gameid, GAME_YOUR_TURN, $email_message);
+ }
}
else /* send out final email */
{
@@ -1430,10 +1626,10 @@ switch($mystatus)
" LEFT JOIN Card ON Card.id=Hand_Card.card_id".
" WHERE Hand.game_id='$gameid'".
" GROUP BY User.fullname" );
- $message = "The game is over. Thanks for playing :)\n";
- $message .= "Final score:\n";
+ $email_message = "The game is over. Thanks for playing :)\n";
+ $email_message .= "Final score:\n";
while( $r = DB_fetch_array($result) )
- $message .= " ".$r[0]."(".$r[2].") ".$r[1]."\n";
+ $email_message .= " ".$r[0]."(".$r[2].") ".$r[1]."\n";
$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".
@@ -1443,15 +1639,15 @@ switch($mystatus)
" LEFT JOIN Card ON Card.id=Hand_Card.card_id".
" WHERE Hand.game_id='$gameid'".
" GROUP BY Hand.party" );
- $message .= "\nTotals:\n";
+ $email_message .= "\nTotals:\n";
$re = 0;
$contra = 0;
while( $r = DB_fetch_array($result) )
{
- $message .= " ".$r[0]." ".$r[1]."\n";
- if($r[0] == "re")
+ $email_message .= " ".$r[0]." ".$r[1]."\n";
+ if($r[0] == 're')
$re = $r[1];
- else if($r[0] == "contra")
+ else if($r[0] == 'contra')
$contra = $r[1];
}
@@ -1461,8 +1657,8 @@ switch($mystatus)
*/
/* get calls from re/contra */
- $call_re = NULL;
- $call_contra = NULL;
+ $call_re = -1;
+ $call_contra = -1;
foreach($userids as $user)
{
$hash = DB_get_hash_from_gameid_and_userid($gameid,$user);
@@ -1473,18 +1669,18 @@ switch($mystatus)
{
$call = (int) $call;
- if($party=="re")
+ if($party=='re')
{
- if($call_re==NULL)
+ if($call_re== -1)
$call_re = $call;
else if( $call < $call_re)
$call_re = $call;
}
- else if($party=="contra")
+ else if($party=='contra')
{
- if($call_contra==NULL)
+ if($call_contra== -1)
$call_contra = $call;
- else if( $call < $call_re)
+ else if( $call < $call_contra)
$call_contra = $call;
}
}
@@ -1493,13 +1689,13 @@ switch($mystatus)
/* figure out who one */
$winning_party = NULL;
- if($call_re == NULL && $call_contra==NULL)
+ if($call_re == -1 && $call_contra == -1)
{
/* nobody made a call, so it's easy to figure out who won */
if($re>120)
- $winning_party="re";
+ $winning_party='re';
else
- $winning_party="contra";
+ $winning_party='contra';
}
else
{
@@ -1507,35 +1703,35 @@ switch($mystatus)
* if only one party made a call, the other one wins,
* if the first one didn't make it
*/
- if($call_re)
+ if($call_re != -1)
{
$offset = 120 - $call_re;
if($call_re == 0)
$offset--; /* since we use a > in the next equation */
if($re > 120+$offset)
- $winning_party="re";
- else if ($call_contra == NULL )
- $winning_party="contra";
+ $winning_party='re';
+ else if ($call_contra == -1 )
+ $winning_party='contra';
}
- if($call_contra)
+ if($call_contra != -1)
{
$offset = 120 - $call_contra;
if($call_contra == 0)
$offset--; /* since we use a > in the next equation */
if($contra > 120+$offset)
- $winning_party="contra";
- else if ($call_re == NULL )
- $winning_party="re";
+ $winning_party='contra';
+ else if ($call_re == -1 )
+ $winning_party='re';
}
}
/* one point for each call of the other party in case the other party didn't win
* and one point each in case the party made more than points than one of the calls
*/
- if($winning_party!="contra" && $call_contra!=NULL)
+ if($winning_party!='contra' && $call_contra!= -1)
{
for( $p=$call_contra;$p<=120; $p+=30 )
{
@@ -1550,7 +1746,7 @@ switch($mystatus)
" VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'made$p')");
}
}
- if($winning_party!="re" and $call_re!=NULL)
+ if($winning_party!='re' and $call_re!= -1)
{
for( $p=$call_re;$p<=120; $p+=30 )
{
@@ -1567,19 +1763,19 @@ switch($mystatus)
}
/* point in case contra won */
- if($winning_party=="contra")
+ if($winning_party=='contra')
{
DB_query("INSERT INTO Score".
" VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'againstqueens')");
}
/* one point each for winning and each 30 points + calls */
- if($winning_party=="re")
+ if($winning_party=='re')
{
foreach(array(120,150,180,210,240) as $p)
{
$offset = 0;
- if($p==240 || $call_contra!=NULL)
+ if($p==240 || $call_contra != -1)
$offset = 1;
if($re>$p-$offset)
@@ -1589,17 +1785,17 @@ switch($mystatus)
/* re called something and won */
foreach(array(0,30,60,90,120) as $p)
{
- if($call_re!=NULL && $call_re<$p+1)
+ if($call_re!= -1 && $call_re<$p+1)
DB_query("INSERT INTO Score".
" VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'call$p')");
}
}
- else if( $winning_party=="contra")
+ else if( $winning_party=='contra')
{
foreach(array(120,150,180,210,240) as $p)
{
$offset = 0;
- if($p==240 || $call_re!=NULL)
+ if($p==240 || $call_re != -1)
$offset = 1;
if($contra>$p-$offset)
@@ -1609,7 +1805,7 @@ switch($mystatus)
/* re called something and won */
foreach(array(0,30,60,90,120) as $p)
{
- if($call_contra!=NULL && $call_contra<$p+1)
+ if($call_contra != -1 && $call_contra<$p+1)
DB_query("INSERT INTO Score".
" VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'call$p')");
}
@@ -1617,317 +1813,425 @@ switch($mystatus)
/* add score points to email */
- $message .= "\n";
+ $email_message .= "\n";
$Tpoint = 0;
- $message .= " Points Re: \n";
+ $email_message .= " Points Re: \n";
$queryresult = DB_query("SELECT score FROM Score ".
" WHERE game_id=$gameid AND party='re'".
" ");
while($r = DB_fetch_array($queryresult) )
{
- $message .= " ".$r[0]."\n";
+ $email_message .= " ".$r[0]."\n";
$Tpoint ++;
}
- $message .= " Points Contra: \n";
+ $email_message .= " Points Contra: \n";
$queryresult = DB_query("SELECT score FROM Score ".
" WHERE game_id=$gameid AND party='contra'".
" ");
while($r = DB_fetch_array($queryresult) )
{
- $message .= " ".$r[0]."\n";
+ $email_message .= " ".$r[0]."\n";
$Tpoint --;
}
- $message .= " Total Points (from the Re point of view): $Tpoint\n";
- $message .= "\n";
+ $email_message .= " Total Points (from the Re point of view): $Tpoint\n";
+ $email_message .= "\n";
$session = DB_get_session_by_gameid($gameid);
$score = generate_score_table($session);
- /* convert html to ascii */
- $score = str_replace("
\n
\n \n","",$score);
- $score = str_replace("
\n","",$score);
- $score = str_replace("\n","",$score);
- $score = str_replace(array("
","
","
"," | "),array("","\n","","|"),$score);
- $score = explode("\n",$score);
-
- $header = array_slice($score,0,1);
- $header = explode("|",$header[0]);
- for($i=0;$i
5) $header.= " ... \n";
-
- if(sizeof($score)>5) $score = array_slice($score,-5,5);
- for($i=0;$i\n";
- }
- }
- else if(myisset("card") && !$myturn )
- {
- echo "please wait until it's your turn!
\n";
- }
-
- if($seq!=4 && $trickNR>1)
- echo " \n