-/*
- * config
- */
-
-$host = "http://doko.nubati.net/index.php";
-$wiki = "http://wiki.nubati.net/index.php?title=EmailDoko";
-$debug = 0;
-
-/*
- * end config
- */
-
-
-/* helper function */
-function mymail($To,$Subject,$message)
-{
- global $debug;
-
- if($debug)
- {
- $message = str_replace("\n","<br />",$message);
- echo "<br />To: $To<br />Subject: $Subject <br />$message<br />\n";
- }
- else
- mail($To,$Subject,$message);
- return;
-}
-
-function parse_status()
-{
- global $game,$history,$player,$hash,$lines;
-
- $game["init"] = 0;
- $game["solo-who"] = -1;
- $game["solo-what"] = "todo";
- $game["wedding"] = -1;
- $game["poverty"] = "";
- $game["nines"] = -1;
- $game["startplayer"] = 0;
-
- for($i=0;$i<4;$i++)
- {
- $tmp = explode( ":",$lines[$i]);
- $hash[$i] = $tmp[0];
- $player[$tmp[0]]["number"] = $i;
- $player[$tmp[0]]["hash"] = $tmp[0];
- $player[$tmp[0]]["name"] = $tmp[1];
- $player[$tmp[0]]["email"] = $tmp[2];
- $player[$tmp[0]]["option"] = $tmp[3];
- $player[$tmp[0]]["points"] = $tmp[4];
- $player[$tmp[0]]["cards"] = $tmp[5];
- if(ereg("s",$tmp[3])) $game["init"]++; /* how many players are ready? */
- if(ereg("P",$tmp[3])) $game["poverty"].= $i; /* players with poverty, could be two, so use a string */
- if(ereg("N",$tmp[3])) $game["nines"] = $i; /* the player with too many nines, only one possible */
- if(ereg("W",$tmp[3])) $game["wedding"] = $i; /* the player with the wedding, also only one possible */
- if(ereg("([OSQJCAH])",$tmp[3],$match) && ($game["solo-who"]<0) )
- {
- $game["solo-who"] = $i;
- $game["startplayer"] = $i;
- switch($match[1])
- {
- case "O":
- $game["solo-what"] = "No Trump";
- case "S":
- $game["solo-what"] = "Trump";
- case "Q":
- $game["solo-what"] = "Queen";
- case "J":
- $game["solo-what"] = "Jack";
- case "C":
- $game["solo-what"] = "Club";
- case "A":
- $game["solo-what"] = "Spade";
- case "H":
- $game["solo-what"] = "Heart";
- }
- }
-
- }
- /* save the game history */
- for($i=4;$i<sizeof($lines);$i++)
- {
- if(!ereg("^[[:space:]]*$",trim($lines[$i])))
- {
- $history[] = $lines[$i];
- }
- }
-
- if(sizeof($history)==0 || (sizeof($history)==1 && strlen($history[0])==3 ))
- $history[0] = $game["startplayer"].":";
-
- return;
-}
-
-function count_nines($cards)
-{
- $card = explode(";",$cards);
-
- $nines =0;
-
- foreach($card as $c)
- {
- if($c == "25" || $c == "26") $nines++;
- else if($c == "33" || $c == "34") $nines++;
- else if($c == "41" || $c == "42") $nines++;
- else if($c == "47" || $c == "48") $nines++;
- }
-
- return $nines;
-}
-
-function check_wedding($cards)
-{
- $card = explode(";",$cards);
-
- $count =0;
-
- if( in_array("3",$card) && in_array("2",$card) )
- $count=1;
-
- return $count;
-}
-
-function count_trump($cards)
-{
- $card = explode(";",$cards);
-
- $trump =0;
-
- /* count each trump */
- foreach($card as $c)
- {
- if( (int)($c) <27) $trump++;
- }
-
- /* subtract one, in case player has both foxes */
- if( in_array("19",$card) && in_array("20",$card) )
- $trump--;
-
- return $trump;
-}
-
-
-
-function card_to_name($card)
-{
- switch($card)
- {
- case 1:
- case 2:
- return "ten of hearts";
- case 3:
- case 4:
- return "queen of clubs";
- case 5:
- case 6:
- return "queen of spades";
- case 7:
- case 8:
- return "queen of hearts";
- case 9:
- case 10:
- return "queen of diamonds";
- case 11:
- case 12:
- return "jack of clubs";
- case 13:
- case 14:
- return "jack of spades";
- case 15:
- case 16:
- return "jack of hearts";
- case 17:
- case 18:
- return "jack of diamonds";
- case 19:
- case 20:
- return "ace of diamonds";
- case 21:
- case 22:
- return "ten of diamonds";
- case 23:
- case 24:
- return "king of diamonds";
- case 25:
- case 26:
- return "nine of diamonds";;
- case 27:
- case 28:
- return "ace of clubs";
- case 29:
- case 30:
- return "ten of clubs";
- case 31:
- case 32:
- return "king of clubs";
- case 33:
- case 34:
- return "nine of clubs";
- case 35:
- case 36:
- return "ace of spades";
- case 37:
- case 38:
- return "ten of spades";
- case 39:
- case 40:
- return "king of spades";
- case 41:
- case 42:
- return "nine of spades";
- case 43:
- case 44:
- return "ace of hearts";
- case 45:
- case 46:
- return "king of hearts";
- case 47:
- case 48:
- return "nine of hearts";
- default:
- return "something went wrong, please contact the admin";
- }
-}
-
-function card_value($card)
-{
- switch($card-1)
- {
- case 0:
- case 1:
- return 10;
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- case 9:
- return 3;
- case 10:
- case 11:
- case 12:
- case 13:
- case 14:
- case 15:
- case 16:
- case 17:
- return 2;
- case 18:
- case 19:
- return 11;
- case 20:
- case 21:
- return 10;
- case 22:
- case 23:
- return 4;
- case 24:
- case 25:
- return 0;
- case 26:
- case 27:
- return 11;
- case 28:
- case 29:
- return 10;
- case 30:
- case 31:
- return 4;
- case 32:
- case 33:
- return 0;
- case 34:
- case 35:
- return 11;
- case 36:
- case 37:
- return 10;
- case 38:
- case 39:
- return 4;
- case 40:
- case 41:
- return 0;
- case 42:
- case 43:
- return 11;
- case 44:
- case 45:
- return 4;
- case 46:
- case 47:
- return 0;
- default:
- echo "something went wrong, please contact the admin <br>";
- return 0;
- }
-}
-
-function display_card($card)
-{
- if( $card/2 - (int)($card/2) == 0.5)
- echo "<img src=\"cards/".$card.".png\" alt=\"".card_to_name($card)."\" />\n";
- else
- echo "<img src=\"cards/".($card-1).".png\" alt=\"".card_to_name($card-1)."\" />\n";
- return;
-}
-
-function display_link_card($card,$me)
-{
- if( $card/2 - (int)($card/2) == 0.5)
- echo "<a href=\"index.php?me=$me&card=$card\"><img src=\"cards/".$card.".png\" alt=\"".card_to_name($card)."\" /></a>\n";
- else
- echo "<a href=\"index.php?me=$me&card=$card\"><img src=\"cards/".($card-1).".png\" alt=\"".card_to_name($card-1)."\" /></a>\n";
- return;
-}
-
-function save_status()
-{
- global $player,$game,$hash,$history;
-
- $output = fopen("status.txt","w");
- if ($output)
- {
- foreach($hash as $key)
- {
- /* sorting the options, not sure why I do that actually */
- $tmp="";
- if( ereg("i",$player[$key]["option"]) )
- $tmp.="i";
- if( ereg("s",$player[$key]["option"]) )
- $tmp.="s";
- if( ereg("t",$player[$key]["option"]) )
- $tmp.="t";
- if( ereg("c",$player[$key]["option"]) )
- $tmp.="c";
- if( ereg("N",$player[$key]["option"]) )
- $tmp.="N";
- if( ereg("W",$player[$key]["option"]) )
- $tmp.="W";
- if( ereg("P",$player[$key]["option"]) )
- $tmp.="P";
- if( ereg("O",$player[$key]["option"]) )
- $tmp.="O";
- if( ereg("S",$player[$key]["option"]) )
- $tmp.="S";
- if( ereg("Q",$player[$key]["option"]) )
- $tmp.="Q";
- if( ereg("J",$player[$key]["option"]) )
- $tmp.="J";
- if( ereg("C",$player[$key]["option"]) )
- $tmp.="C";
- if( ereg("A",$player[$key]["option"]) )
- $tmp.="A";
- if( ereg("H",$player[$key]["option"]) )
- $tmp.="H";
- $player[$key]["option"]=$tmp;
-
- /* saving the player stats */
- fwrite($output,"".$player[$key]["hash"].":" );
- fwrite($output,"".$player[$key]["name"].":" );
- fwrite($output,"".$player[$key]["email"].":" );
- fwrite($output,"".$player[$key]["option"].":" );
- fwrite($output,"".$player[$key]["points"].":" );
- fwrite($output,"".$player[$key]["cards"] .":");
- fwrite($output,"\n");
- }
- fwrite($output,"\n");
- foreach($history as $line)
- fwrite($output,$line);
-
- fwrite($output,"\n");
- fclose($output);
- }
- else
- echo "can't open file for writing, please inform the admin.";
-
- return;
-}
-
-echo "<p>If you find bugs, please list them in the <a href=\"".$wiki."\">wiki</a>.</p>\n";
-
-echo "<p> Names that are underlined have a comment, which you can access by hovering over the name with your mouse ;)</p>\n";
-
-$history=array();
-
-/* check for status file and read it, if possible */
-
-if(file_exists("status.txt"))
- $lines = file("status.txt");
- else
- die("no file");
-
-/* check if we want to start a new game */
-if( isset($_REQUEST["PlayerA"]) &&
- isset($_REQUEST["PlayerB"]) &&
- isset($_REQUEST["PlayerC"]) &&
- isset($_REQUEST["PlayerD"]) &&
- isset($_REQUEST["EmailA"]) &&
- isset($_REQUEST["EmailB"]) &&
- isset($_REQUEST["EmailC"]) &&
- isset($_REQUEST["EmailD"]) && sizeof($lines<2))
- {
- $PlayerA = $_REQUEST["PlayerA"];
- $PlayerB = $_REQUEST["PlayerB"];
- $PlayerC = $_REQUEST["PlayerC"];
- $PlayerD = $_REQUEST["PlayerD"];
- $EmailA = $_REQUEST["EmailA"] ;
- $EmailB = $_REQUEST["EmailB"] ;
- $EmailC = $_REQUEST["EmailC"] ;
- $EmailD = $_REQUEST["EmailD"] ;
-
- $hashA = md5("AGameOfDoko".$PlayerA.$EmailA);
- $hashB = md5("AGameOfDoko".$PlayerB.$EmailB);
- $hashC = md5("AGameOfDoko".$PlayerC.$EmailC);
- $hashD = md5("AGameOfDoko".$PlayerD.$EmailD);