X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=include%2Ffunctions.php;h=bbffe00057617ae6c3f2e0e51b108b2ea765cbed;hp=28e5937c5a1259f5c9841fcf16f8aa1ef2967789;hb=e19f27d6e8d5dfa770037fec391ffc22ee7ca259;hpb=924f395a39eeccbcd54d540613e440cbedd6ba3d diff --git a/include/functions.php b/include/functions.php index 28e5937..bbffe00 100644 --- a/include/functions.php +++ b/include/functions.php @@ -171,14 +171,14 @@ function compare_cards($a,$b,$game) case "normal": case "silent": case "trump": - if($RULES["schweinchen"]=="both" && $GAME["schweinchen"]) + if($RULES['schweinchen']=='both' && $GAME['schweinchen-who']) { if($a == 19 || $a == 20 ) return 1; if($b == 19 || $b == 20 ) return 0; }; - if($RULES["schweinchen"]=="second" && $GAME["schweinchen"]==3) + if($RULES['schweinchen']=='second' && $GAME['schweinchen-second']) { if($a == 19 || $a == 20 ) return 1; @@ -367,17 +367,17 @@ function create_array_of_random_numbers($useridA,$useridB,$useridC,$useridD) if($debug) { $r[ 0]=1; $r[12]=47; $r[24]=13; $r[36]=37; - $r[ 1]=2; $r[13]=48; $r[25]=14; $r[37]=38; + $r[ 1]=2; $r[13]=23; $r[25]=14; $r[37]=38; $r[ 2]=3; $r[14]=27; $r[26]=15; $r[38]=39; $r[ 3]=4; $r[15]=16; $r[27]=28; $r[39]=40; $r[ 4]=5; $r[16]=17; $r[28]=29; $r[40]=41; $r[ 5]=18; $r[17]=6; $r[29]=30; $r[41]=42; - $r[ 6]=19; $r[18]=7; $r[30]=31; $r[42]=43; - $r[ 7]=20; $r[19]=8; $r[31]=32; $r[43]=44; - $r[ 8]=45; $r[20]=9; $r[32]=21; $r[44]=33; - $r[ 9]=46; $r[21]=10; $r[33]=22; $r[45]=34; - $r[10]=35; $r[22]=11; $r[34]=23; $r[46]=25; - $r[11]=36; $r[23]=12; $r[35]=24; $r[47]=26; + $r[ 6]=21; $r[18]=7; $r[30]=31; $r[42]=43; + $r[ 7]=22; $r[19]=8; $r[31]=32; $r[43]=44; + $r[ 8]=45; $r[20]=9; $r[32]=19; $r[44]=33; + $r[ 9]=46; $r[21]=10; $r[33]=20; $r[45]=24; + $r[10]=35; $r[22]=11; $r[34]=48; $r[46]=25; + $r[11]=36; $r[23]=12; $r[35]=34; $r[47]=26; } else { @@ -572,7 +572,7 @@ function sort_comp($a,$b) $ALL = array(); $ALL = array_merge($CARDS["trump"],$CARDS["diamonds"],$CARDS["clubs"], - $CARDS["hearts"],$CARDS["spades"],$CARDS["diamonds"]); + $CARDS["hearts"],$CARDS["spades"]); return pos_array($a,$ALL)-pos_array($b,$ALL); } @@ -664,24 +664,25 @@ function can_call($what,$hash) function display_table () { global $gameid, $GT, $debug,$INDEX,$defaulttimezone; - - $result = mysql_query("SELECT User.fullname as name,". - " Hand.position as position, ". - " User.id, ". - " Hand.party as party, ". - " Hand.sickness as sickness, ". - " Hand.point_call, ". - " User.last_login, ". - " Hand.hash, ". - " User.timezone ". - "FROM Hand ". - "LEFT JOIN User ON User.id=Hand.user_id ". - "WHERE Hand.game_id='".$gameid."' ". - "ORDER BY position ASC"); + global $RULES,$GAME,$gametype; + + $result = DB_query("SELECT User.fullname as name,". + " Hand.position as position, ". + " User.id, ". + " Hand.party as party, ". + " Hand.sickness as sickness, ". + " Hand.point_call, ". + " User.last_login, ". + " Hand.hash, ". + " User.timezone ". + "FROM Hand ". + "LEFT JOIN User ON User.id=Hand.user_id ". + "WHERE Hand.game_id='".$gameid."' ". + "ORDER BY position ASC"); echo "
\n". " \"table\"\n"; - while($r = mysql_fetch_array($result,MYSQL_NUM)) + while($r = DB_fetch_array($result)) { $name = $r[0]; $pos = $r[1]; @@ -703,6 +704,10 @@ function display_table () echo " $name\n"; /* add hints for poverty, wedding, solo, etc */ + if( $gametype != "solo") + if( $RULES["schweinchen"]=="both" && $GAME["schweinchen-who"]==$hash ) + echo " Schweinchen.
"; + if($GT=="poverty" && $party=="re") if($sickness=="poverty") { @@ -808,27 +813,29 @@ function display_table () function display_user_menu() { - global $WIKI,$myid,$INDEX,$STATS; + global $WIKI,$myid,$INDEX; echo "
\n". " 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". - " WHERE Hand.user_id='$myid'". - " AND Game.player='$myid'". - " AND Game.status<>'gameover'". - " ORDER BY Game.session" ); - if(mysql_num_rows($result)) + $result = DB_query("SELECT Hand.hash,Hand.game_id,Game.player from Hand". + " LEFT JOIN Game On Hand.game_id=Game.id". + " WHERE Hand.user_id='$myid'". + " AND Game.player='$myid'". + " AND Game.status<>'gameover'". + " ORDER BY Game.session" ); + if(DB_num_rows($result)) echo "
It's your turn in these games:
\n"; - while( $r = mysql_fetch_array($result,MYSQL_NUM)) + while( $r = DB_fetch_array($result)) { echo "game ".DB_format_gameid($r[1])."
\n"; } echo "
Start a new game\n"; - echo "
Statistics\n"; + echo "
Change settings\n"; + + echo "
Statistics\n"; echo "
Report bugs in the wiki\n"; @@ -838,7 +845,6 @@ function display_user_menu() function generate_score_table($session) { - /* get all ids */ $gameids = DB_get_gameids_of_finished_games_by_session($session); @@ -850,10 +856,10 @@ function generate_score_table($session) /* get player id, names... from the first game */ $player = array(); - $result = mysql_query("SELECT User.id, User.fullname from Hand". - " LEFT JOIN User On Hand.user_id=User.id". - " WHERE Hand.game_id=".$gameids[0]); - while( $r = mysql_fetch_array($result,MYSQL_NUM)) + $result = DB_query("SELECT User.id, User.fullname from Hand". + " LEFT JOIN User On Hand.user_id=User.id". + " WHERE Hand.game_id=".$gameids[0]); + while( $r = DB_fetch_array($result)) { $player[] = array( 'id' => $r[0], 'points' => 0 ); $output.= " ".substr($r[1],0,2)." \n"; @@ -892,4 +898,65 @@ function generate_score_table($session) return $output; } +function generate_global_score_table() +{ + /* get all ids */ + $gameids = DB_get_gameids_of_finished_games_by_session(0); + + if($gameids == NULL) + return ""; + + /* get player id, names... from the User table */ + $player = array(); + $result = DB_query("SELECT User.id, User.fullname FROM User"); + + while( $r = DB_fetch_array($result)) + $player[] = array( 'id' => $r[0], 'name'=> $r[1], 'points' => 0 ,'nr' => 0); + + /* get points and generate table */ + foreach($gameids as $gameid) + { + $re_score = DB_get_score_by_gameid($gameid); + /* TODO: this shouldn't loop over all players, just the 4 players that are in the game */ + foreach($player as $key=>$pl) + { + $party = DB_get_party_by_gameid_and_userid($gameid,$pl['id']); + if($party == "re") + if(DB_get_gametype_by_gameid($gameid)=="solo") + $player[$key]['points'] += 3*$re_score; + else + $player[$key]['points'] += $re_score; + else if ($party == "contra") + $player[$key]['points'] -= $re_score; + if($party) + $player[$key]['nr']+=1; + } + } + + echo "\n \n"; + function cmp($a,$b) + { + if($a['nr']==0 ) return 1; + if($b['nr']==0) return 1; + + $a=$a['points']/$a['nr']; + $b=$b['points']/$b['nr']; + + if ($a == $b) + return 0; + return ($a > $b) ? -1 : 1; + } + usort($player,"cmp"); + foreach($player as $pl) + { + if($pl['nr']>10) + echo " \n"; + } + echo "
",$pl['name'],"",round($pl['points']/$pl['nr'],3),"
\n"; + + return; +} + + + ?>