\n".
"
\n";
}
else if($trick==$lasttrick)
{
/* start of a last trick? */
- echo "
Trick $trickNR\n".
+ echo " "._('Trick')." $trickNR\n".
" \n".
"
\n";
};
@@ -979,18 +1354,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 */
}
}
@@ -1000,7 +1375,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
{
@@ -1015,16 +1390,16 @@ 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 */
/* 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 played='false' and ".
+ $r = DB_query_array("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];
if($handcardid) /* everything ok, play card */
@@ -1032,21 +1407,9 @@ 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 = mysql_query("UPDATE Hand SET point_call='120' WHERE hash='$me' ");
- if(myisset("call") && $_REQUEST["call"] == "90" && can_call(90,$me))
- $result = mysql_query("UPDATE Hand SET point_call='90' WHERE hash='$me' ");
- if(myisset("call") && $_REQUEST["call"] == "60" && can_call(60,$me))
- $result = mysql_query("UPDATE Hand SET point_call='60' WHERE hash='$me' ");
- if(myisset("call") && $_REQUEST["call"] == "30" && can_call(30,$me))
- $result = mysql_query("UPDATE Hand SET point_call='30' WHERE hash='$me' ");
- if(myisset("call") && $_REQUEST["call"] == "0" && 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));
+ DB_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);
@@ -1056,24 +1419,31 @@ switch($mystatus)
$playid = DB_play_card($trickid,$handcardid,$sequence);
- /* check special output for schweinchen in case:
- * schweinchen is in the rules, a fox has been played and the gametype is correct
+ /* 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"] &&
- ($card == 19 || $card == 20) &&
- ($gametype == "normal" || $gametype == "silent"|| $gametype=="trump"))
+ if( $GAME['schweinchen-who'] && ($card == 19 || $card == 20) )
{
- $GAME["schweinchen"]++; // count how many have been played including this one
- if($GAME["schweinchen"]==3 && $RULES["schweinchen"]=="second" )
- DB_insert_comment("Schweinchen! ",$playid,$myid);
- if($RULES["schweinchen"]=="both" )
- DB_insert_comment("Schweinchen! ",$playid,$myid);
+ if(!$GAME['schweinchen-first'])
+ $GAME['schweinchen-first'] = 1; /* playing the first fox */
+ else
+ $GAME['schweinchen-second'] = 1; /* this must be the second fox */
+
+ 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! ';
+ }
if ($debug)
- echo "schweinchen = ".$GAME["schweinchen"]." ---
";
+ 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);
@@ -1084,7 +1454,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 */
@@ -1098,7 +1468,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)
{
@@ -1114,15 +1484,18 @@ 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")
+ if($solo == 'trump' || $solo == 'silent')
$ok = 1; /* for trump solos and silent solos, foxes are ok */
}
else
@@ -1142,37 +1515,46 @@ switch($mystatus)
$party2 = DB_get_party_by_gameid_and_userid($gameid,$uid2);
if($party1 != $party2)
- mysql_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'$party1',$uid1,$uid2,'fox')");
+ DB_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'$party1',$uid1,$uid2,'fox')");
}
}
- /* 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)
+ ***********************************/
- mysql_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'$party1',$uid1,NULL,'karlchen')");
- }
- /* check for doppelopf (>40 points)*/
$points = 0;
foreach($play as $played)
{
@@ -1183,12 +1565,16 @@ switch($mystatus)
$uid1 = DB_get_userid('gameid-position',$gameid,$winner);
$party1 = DB_get_party_by_gameid_and_userid($gameid,$uid1);
- mysql_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'$party1',$uid1,NULL,'doko')");
+ DB_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'$party1',$uid1,NULL,'doko')");
}
+ /*
+ * set winner (for this trick)
+ */
+
if($winner>0)
- mysql_query("UPDATE Trick SET winner='$winner' WHERE id='$trickid'");
+ DB_query("UPDATE Trick SET winner='$winner' WHERE id='$trickid'");
else
echo "ERROR during scoring";
@@ -1205,26 +1591,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);
- };
-
- /* check for note */
- if(myisset("note"))
- {
- $note = $_REQUEST["note"];
- if($note != "")
- DB_insert_note($note,$gameid,$myid);
+ if($commentSchweinchen)
+ $comment = $commentSchweinchen . $comment;
};
/* display played card */
$pos = DB_get_pos_by_hash($me);
if($sequence==1)
{
- echo "
Trick ".($tricknr)."\n".
+ echo " "._('Trick').' '.($tricknr)."\n".
" \n".
"
\n";
}
@@ -1232,11 +1612,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)
{
@@ -1256,55 +1638,57 @@ 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".
"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' )
+ {
+ $subject = 'A card has been played in game '.DB_format_gameid($gameid);
+ mymail($who,$subject,$message);
+ }
}
else /* send out final email */
{
/* individual score */
- $result = mysql_query("SELECT User.fullname, IFNULL(SUM(Card.points),0), Hand.party 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 User.fullname" );
+ $result = DB_query("SELECT User.fullname, IFNULL(SUM(Card.points),0), Hand.party 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 User.fullname" );
$message = "The game is over. Thanks for playing :)\n";
$message .= "Final score:\n";
- while( $r = mysql_fetch_array($result,MYSQL_NUM))
+ while( $r = DB_fetch_array($result) )
$message .= " ".$r[0]."(".$r[2].") ".$r[1]."\n";
- $result = mysql_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" );
+ $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" );
$message .= "\nTotals:\n";
$re = 0;
$contra = 0;
- while( $r = mysql_fetch_array($result,MYSQL_NUM))
+ while( $r = DB_fetch_array($result) )
{
$message .= " ".$r[0]." ".$r[1]."\n";
- if($r[0] == "re")
+ if($r[0] == 're')
$re = $r[1];
- else if($r[0] == "contra")
+ else if($r[0] == 'contra')
$contra = $r[1];
}
@@ -1326,18 +1710,18 @@ switch($mystatus)
{
$call = (int) $call;
- if($party=="re")
+ if($party=='re')
{
if($call_re==NULL)
$call_re = $call;
else if( $call < $call_re)
$call_re = $call;
}
- else if($party=="contra")
+ else if($party=='contra')
{
if($call_contra==NULL)
$call_contra = $call;
- else if( $call < $call_re)
+ else if( $call < $call_contra)
$call_contra = $call;
}
}
@@ -1350,9 +1734,9 @@ switch($mystatus)
{
/* 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
{
@@ -1367,9 +1751,9 @@ switch($mystatus)
$offset--; /* since we use a > in the next equation */
if($re > 120+$offset)
- $winning_party="re";
+ $winning_party='re';
else if ($call_contra == NULL )
- $winning_party="contra";
+ $winning_party='contra';
}
if($call_contra)
@@ -1379,55 +1763,55 @@ switch($mystatus)
$offset--; /* since we use a > in the next equation */
if($contra > 120+$offset)
- $winning_party="contra";
+ $winning_party='contra';
else if ($call_re == NULL )
- $winning_party="re";
+ $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!=NULL)
{
for( $p=$call_contra;$p<=120; $p+=30 )
{
- mysql_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'against$p')");
+ DB_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'against$p')");
}
for( $p=$call_contra; $p<120; $p+=30)
{
if( $re >= $p )
- mysql_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'made$p')");
+ DB_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'made$p')");
}
}
- if($winning_party!="re" and $call_re!=NULL)
+ if($winning_party!='re' and $call_re!=NULL)
{
for( $p=$call_re;$p<=120; $p+=30 )
{
- mysql_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'against$p')");
+ DB_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'against$p')");
}
for( $p=$call_re; $p<120; $p+=30)
{
if( $contra>=$p )
- mysql_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'made$p')");
+ DB_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'made$p')");
}
}
/* point in case contra won */
- if($winning_party=="contra")
+ if($winning_party=='contra')
{
- mysql_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'againstqueens')");
+ 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)
{
@@ -1436,18 +1820,18 @@ switch($mystatus)
$offset = 1;
if($re>$p-$offset)
- mysql_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'".(240-$p)."')");
+ DB_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'".(240-$p)."')");
}
/* re called something and won */
foreach(array(0,30,60,90,120) as $p)
{
if($call_re!=NULL && $call_re<$p+1)
- mysql_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'re',NULL,NULL,'call$p')");
+ 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)
{
@@ -1456,15 +1840,15 @@ switch($mystatus)
$offset = 1;
if($contra>$p-$offset)
- mysql_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'".(240-$p)."')");
+ DB_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'".(240-$p)."')");
}
/* re called something and won */
foreach(array(0,30,60,90,120) as $p)
{
if($call_contra!=NULL && $call_contra<$p+1)
- mysql_query("INSERT INTO Score".
- " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'call$p')");
+ DB_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'contra',NULL,NULL,'call$p')");
}
}
@@ -1473,19 +1857,19 @@ switch($mystatus)
$message .= "\n";
$Tpoint = 0;
$message .= " Points Re: \n";
- $queryresult = mysql_query("SELECT score FROM Score ".
- " WHERE game_id=$gameid AND party='re'".
- " ");
- while($r = mysql_fetch_array($queryresult,MYSQL_NUM) )
+ $queryresult = DB_query("SELECT score FROM Score ".
+ " WHERE game_id=$gameid AND party='re'".
+ " ");
+ while($r = DB_fetch_array($queryresult) )
{
$message .= " ".$r[0]."\n";
$Tpoint ++;
}
$message .= " Points Contra: \n";
- $queryresult = mysql_query("SELECT score FROM Score ".
- " WHERE game_id=$gameid AND party='contra'".
- " ");
- while($r = mysql_fetch_array($queryresult,MYSQL_NUM) )
+ $queryresult = DB_query("SELECT score FROM Score ".
+ " WHERE game_id=$gameid AND party='contra'".
+ " ");
+ while($r = DB_fetch_array($queryresult) )
{
$message .= " ".$r[0]."\n";
$Tpoint --;
@@ -1495,283 +1879,305 @@ switch($mystatus)
$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";
- }
+ $message .= "\n\n (you can use reply all on this email to reach all the players.)\n\n";
+ $subject = ' Game over (game '.DB_format_gameid($gameid).') ';
+ mymail($userids,$subject,$message);
+ }
+ }
+ else
+ {
+ echo "can't find that card?!
\n";
+ }
+ }
+ else if(myisset('card') && !$myturn )
+ {
+ echo _("please wait until it's your turn!")."
\n";
+ }
- if($seq!=4 && $trickNR>1)
- echo " \n