X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=functions.php;h=2f2e07d6ee9713893b1dce079101682ed63cd4b1;hp=c835f89897906c6f188690f70bacb022bcc5bf1f;hb=0c5b3eeca3006f61dd326a86e8989c52694d581b;hpb=a28cbfa660f2ff982f1cdcee41c09cec772d84af diff --git a/functions.php b/functions.php index c835f89..2f2e07d 100644 --- a/functions.php +++ b/functions.php @@ -58,6 +58,9 @@ function mymail($To,$Subject,$message,$header="") if($debug) { + /* display email on screen, + * change txt -> html + */ $message = str_replace("\n","
\n",$message); $message = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "\\0", $message); @@ -157,11 +160,12 @@ function compare_cards($a,$b,$game) if( $b/2 - (int)($b/2) != 0.5) $b--; - /* some special cases */ + /* check for schweinchen and ten of hearts*/ switch($game) { case "normal": case "silent": + case "trump": if($RULES["schweinchen"]=="both" && $GAME["schweinchen"]) { if($a == 19 || $a == 20 ) @@ -176,13 +180,17 @@ function compare_cards($a,$b,$game) if($b == 19 || $b == 20 ) return 0; }; - case "trump": case "heart": case "spade": case "club": + /* check for ten of hearts rule */ if($RULES["dullen"]=="secondwins") if($a==1 && $b==1) /* both 10 of hearts */ return 0; /* second one wins.*/ + case "trumpless": + case "jack": + case "queen": + /* no special cases here */ } /* normal case */ @@ -309,28 +317,38 @@ function count_trump($cards) $trump = 0; - /* count each trump */ + /* count each trump, including the foxes */ foreach($cards as $c) if( (int)($c) <27) $trump++; - switch($RULES["schweinchen"]) - { - case "none": - break; - case "second": - case "secondaftercall": - /* add one, in case the player has both foxes (schweinchen) */ - if( in_array("19",$cards) && in_array("20",$cards) ) + /* normally foxes don't count as trump, so we substract them here + * in case someone has schweinchen, one or two of them should count as trump + * though, so we need to add one trump for those cases */ + + /* subtract foxes */ + if( in_array("19",$cards)) + $trump--; + if( in_array("20",$cards) ) + $trump--; + + /* handle case where player has schweinchen */ + if( in_array("19",$cards) && in_array("20",$cards) ) + switch($RULES["schweinchen"]) + { + case "both": + /* add two, in case the player has both foxes (schweinchen) */ $trump++; - case "both": - /* subtract foxes */ - if( in_array("19",$cards)) - $trump--; - if( in_array("20",$cards) ) - $trump--; - break; - } + $trump++; + break; + case "second": + case "secondaftercall": + /* add one, in case the player has both foxes (schweinchen) */ + $trump++; + break; + case "none": + break; + } return $trump; } @@ -640,7 +658,7 @@ function can_call($what,$hash) function display_table () { - global $gameid, $GT, $debug,$host; + global $gameid, $GT, $debug,$INDEX,$defaulttimezone; $result = mysql_query("SELECT User.fullname as name,". " Hand.position as position, ". @@ -668,16 +686,16 @@ function display_table () $call = $r[5]; $hash = $r[7]; $timezone = $r[8]; + date_default_timezone_set($defaulttimezone); + $lastlogin = strtotime($r[6]); date_default_timezone_set($timezone); $timenow = strtotime(date("Y-m-d H:i:s")); - $lastlogin = strtotime($r[6]); - echo "
\n"; if(!$debug) echo " $name \n"; else - echo " $name\n"; + echo " $name\n"; /* add hints for poverty, wedding, solo, etc */ if($GT=="poverty" && $party=="re") @@ -785,9 +803,9 @@ function display_table () function display_user_menu() { - global $wiki,$myid,$host; + global $WIKI,$myid,$INDEX,$STATS; echo "
\n". - " Go to my user page "; + " Go to my user page "; $result = mysql_query("SELECT Hand.hash,Hand.game_id,Game.player from Hand". " LEFT JOIN Game On Hand.game_id=Game.id". @@ -800,15 +818,15 @@ function display_user_menu() while( $r = mysql_fetch_array($result,MYSQL_NUM)) { - echo "game ".DB_format_gameid($r[1])."
\n"; + echo "game ".DB_format_gameid($r[1])."
\n"; } - echo "
Start a new game\n"; + echo "
Start a new game\n"; - echo "
Statistics\n"; + echo "
Statistics\n"; echo - "
Report bugs in the wiki\n"; + "
Report bugs in the wiki\n"; echo "
\n"; return; }