\n";
@@ -938,7 +1043,7 @@ switch($mystatus)
}
/* output tricks */
- while($r = mysql_fetch_array($result,MYSQL_NUM))
+ while($r = DB_fetch_array($result))
{
$pos = $r[1];
$seq = $r[2];
@@ -947,8 +1052,11 @@ switch($mystatus)
$user = $r[6];
/* check if first schweinchen has been played */
- if( $GAME["schweinchen"] && ($r[0] == 19 || $r[0] == 20) )
- $GAME["schweinchen"]++;
+ if( $GAME['schweinchen-who'] && ($r[0] == 19 || $r[0] == 20) )
+ if(!$GAME['schweinchen-first'])
+ $GAME['schweinchen-first'] = 1; /* playing the first fox */
+ else
+ $GAME['schweinchen-second'] = 1; /* this must be the second fox */
/* save card to be able to find the winner of the trick later */
$play[$seq] = array("card"=>$r[0],"pos"=>$pos);
@@ -1022,9 +1130,8 @@ switch($mystatus)
/* 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 */
@@ -1034,19 +1141,19 @@ switch($mystatus)
/* 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' ");
+ $result = DB_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' ");
+ $result = DB_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' ");
+ $result = DB_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' ");
+ $result = DB_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' ");
+ $result = DB_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,20 +1163,23 @@ 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( ($GAME['schweinchen-second']==1 && $RULES['schweinchen']=='second') || $RULES['schweinchen']=='both')
+ {
+ 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 */
@@ -1115,19 +1225,19 @@ switch($mystatus)
$winner = get_winner($play,$gametype); /* returns the position */
/* check if someone caught a fox */
- /* first check if we should account for solos at all,
+ /* 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")
{
$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
$ok = 1; /* for all other games (not solos) foxes are ok too */
-
+
if($ok==1)
foreach($play as $played)
{
@@ -1142,11 +1252,11 @@ 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)*/
/* same as for foxes, karlchen doesn't always make sense
* check what kind of game it is and set karlchen accordingly */
@@ -1159,7 +1269,7 @@ switch($mystatus)
if($solo == "trumpless" || $solo == "jack" || $solo == "queen" )
$ok = 0; /* no Karlchen in these solos */
}
-
+
if($ok)
foreach($play as $played)
if ( $played['card']==11 || $played['card']==12 )
@@ -1169,8 +1279,8 @@ 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,'karlchen')");
+ DB_query("INSERT INTO Score".
+ " VALUES( NULL,NULL,$gameid,'$party1',$uid1,NULL,'karlchen')");
}
/* check for doppelopf (>40 points)*/
$points = 0;
@@ -1183,12 +1293,12 @@ 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')");
}
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";
@@ -1210,6 +1320,8 @@ switch($mystatus)
$comment = $_REQUEST["comment"];
if($comment != "")
DB_insert_comment($comment,$playid,$myid);
+ if($commentSchweinchen)
+ $comment = $commentSchweinchen . $comment;
};
/* check for note */
@@ -1275,31 +1387,31 @@ switch($mystatus)
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")
@@ -1347,12 +1459,19 @@ switch($mystatus)
$winning_party = NULL;
if($call_re == NULL && $call_contra==NULL)
- if($re>120)
- $winning_party="re";
- else
- $winning_party="contra";
+ {
+ /* nobody made a call, so it's easy to figure out who won */
+ if($re>120)
+ $winning_party="re";
+ else
+ $winning_party="contra";
+ }
else
{
+ /* if one party makes a call, they only win, iff they make enough points
+ * if only one party made a call, the other one wins,
+ * if the first one didn't make it
+ */
if($call_re)
{
$offset = 120 - $call_re;
@@ -1361,7 +1480,7 @@ switch($mystatus)
if($re > 120+$offset)
$winning_party="re";
- else if ( $call_contra == NULL )
+ else if ($call_contra == NULL )
$winning_party="contra";
}
@@ -1373,7 +1492,7 @@ switch($mystatus)
if($contra > 120+$offset)
$winning_party="contra";
- else if ( $call_contra == NULL )
+ else if ($call_re == NULL )
$winning_party="re";
}
}
@@ -1385,38 +1504,38 @@ switch($mystatus)
{
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)
{
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")
{
- 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 */
@@ -1429,15 +1548,15 @@ 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")
@@ -1449,15 +1568,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')");
}
}
@@ -1466,19 +1585,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 --;
@@ -1514,7 +1633,7 @@ switch($mystatus)
$score = implode("\n",$score);
$score = $header.$score;
-
+
$message .= "Score Table:\n";
$message .= $score;
@@ -1561,15 +1680,15 @@ switch($mystatus)
/* add pic for re/contra
"
\n";*/
- $result = mysql_query("SELECT User.fullname, IFNULL(SUM(Card.points),0), Hand.party,Hand.position 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" );
- while( $r = mysql_fetch_array($result,MYSQL_NUM))
+ $result = DB_query("SELECT User.fullname, IFNULL(SUM(Card.points),0), Hand.party,Hand.position 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" );
+ while( $r = DB_fetch_array($result))
echo "
\n".
"
".$r[2]." ".$r[1]."
\n".
"
\n";
@@ -1586,7 +1705,7 @@ switch($mystatus)
echo "$note
\n";
echo "Insert note:
\n";
echo "
\n";
-
+
$mycards = DB_get_hand($me);
$mycards = mysort($mycards,$gametype);
echo "