X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=index.php;h=247241c589d07cc764801b8ba657a1bc47d293ac;hp=05dc42f0cc655f716ecac06b230223ddbde3930d;hb=824d4e44a2242bd6f35aec40a744e40fee71d5b5;hpb=ff0bce79b7a8d040afc336fa3cde2bff97630c07 diff --git a/index.php b/index.php index 05dc42f..247241c 100644 --- a/index.php +++ b/index.php @@ -11,6 +11,172 @@ To: $To
Subject: $subject
$message
"; + else + mail($To,$Subject,$message); + return; +} + +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 "ace of diamonds"; + case 47: + case 48: + return "nine of diamonds"; + 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
"; + return 0; + } +} function display_card($card) { @@ -53,6 +219,7 @@ function save_status() 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"); } @@ -86,7 +253,7 @@ if( isset($_REQUEST["PlayerA"]) && isset($_REQUEST["EmailA"]) && isset($_REQUEST["EmailB"]) && isset($_REQUEST["EmailC"]) && - isset($_REQUEST["EmailD"]) ) + isset($_REQUEST["EmailD"]) && sizeof($lines<2)) { $PlayerA = $_REQUEST["PlayerA"]; $PlayerB = $_REQUEST["PlayerB"]; @@ -97,13 +264,27 @@ if( isset($_REQUEST["PlayerA"]) && $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); + /* send out email, check for error with email */ - echo "send out emails to everyone, asking if they want to join"; - echo "use link
"; - echo " player 1
"; - echo " player 2
"; - echo " player 3
"; - echo " player 4
"; + + $message = "\n". + "you are invited to play a game of DoKo.\n". + "The whole round would consist of the following players:\n". + "$PlayerA\n". + "$PlayerB\n". + "$PlayerC\n". + "$PlayerD\n\n". + "If you want to join this game, please follow this link:\n\n". + " http://doko.nubati.net/index.php?a="; + + mymail($EmailA,"Invite for a game of DoKo","Hello $PlayerA,\n".$message.$hashA); + mymail($EmailB,"Invite for a game of DoKo","Hello $PlayerB,\n".$message.$hashB); + mymail($EmailC,"Invite for a game of DoKo","Hello $PlayerC,\n".$message.$hashC); + mymail($EmailD,"Invite for a game of DoKo","Hello $PlayerD,\n".$message.$hashD); /* read in random.txt */ if(file_exists("random.txt")) @@ -117,25 +298,25 @@ if( isset($_REQUEST["PlayerA"]) && $output = fopen("status.txt","w"); if ($output) { - fwrite($output, "hash1:".$PlayerA.":".$EmailA."::" ); + fwrite($output, "$hashA:$PlayerA:$EmailA:::" ); for($i=0;$i<11;$i++) fwrite($output,"$randomNR[$i];" ); fwrite($output,"$randomNR[11]:" ); $i++; fwrite($output,"\n"); - fwrite($output, "hash2:$PlayerB:$EmailB::" ); + fwrite($output, "$hashB:$PlayerB:$EmailB:::" ); for(;$i<23;$i++) fwrite($output,"$randomNR[$i];" ); fwrite($output,"$randomNR[23]:" ); $i++; fwrite($output,"\n"); - fwrite($output, "hash3:$PlayerC:$EmailC::" ); + fwrite($output, "$hashC:$PlayerC:$EmailC:::" ); for(;$i<35;$i++) fwrite($output,"$randomNR[$i];" ); fwrite($output,"$randomNR[35]:" ); $i++; fwrite($output,"\n"); - fwrite($output, "hash4:$PlayerD:$EmailD::"); + fwrite($output, "$hashD:$PlayerD:$EmailD:::"); for(;$i<47;$i++) fwrite($output,"$randomNR[$i];" ); fwrite($output,"$randomNR[47]:" ); @@ -151,7 +332,7 @@ if( isset($_REQUEST["PlayerA"]) && if(sizeof($lines)<2) { ?> -

no game in progress, please input 4 names and email addresses

+

no game in progress, please input 4 names and email addresses, please make sure that the addresses are correct!

Name: Email:
@@ -180,7 +361,8 @@ if(sizeof($lines)<2) $player[$tmp[0]]["name"] = $tmp[1]; $player[$tmp[0]]["email"] = $tmp[2]; $player[$tmp[0]]["option"] = $tmp[3]; - $player[$tmp[0]]["cards"] = $tmp[4]; + $player[$tmp[0]]["points"] = $tmp[4]; + $player[$tmp[0]]["cards"] = $tmp[5]; if(ereg("s",$tmp[3])) $game["init"]++; $tmp = explode( ":",$lines[1]); @@ -189,8 +371,9 @@ if(sizeof($lines)<2) $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]]["cards"] = $tmp[4]; + $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"]++; $tmp = explode( ":",$lines[2]); @@ -200,7 +383,8 @@ if(sizeof($lines)<2) $player[$tmp[0]]["name"] = $tmp[1]; $player[$tmp[0]]["email"] = $tmp[2]; $player[$tmp[0]]["option"] = $tmp[3]; - $player[$tmp[0]]["cards"] = $tmp[4]; + $player[$tmp[0]]["points"] = $tmp[4]; + $player[$tmp[0]]["cards"] = $tmp[5]; if(ereg("s",$tmp[3])) $game["init"]++; $tmp = explode( ":",$lines[3]); @@ -210,7 +394,8 @@ if(sizeof($lines)<2) $player[$tmp[0]]["name"] = $tmp[1]; $player[$tmp[0]]["email"] = $tmp[2]; $player[$tmp[0]]["option"] = $tmp[3]; - $player[$tmp[0]]["cards"] = $tmp[4]; + $player[$tmp[0]]["points"] = $tmp[4]; + $player[$tmp[0]]["cards"] = $tmp[5]; if(ereg("s",$tmp[3])) $game["init"]++; /* save the game history */ @@ -282,23 +467,39 @@ if(sizeof($lines)<2) } else { /* show the hand */ - if($_REQUEST["update"]=="card") $player[$b]["option"].="c"; - if($_REQUEST["update"]=="turn") $player[$b]["option"].="t"; - - $player[$b]["option"].="i"; - - save_status(); - - $allcards = $player[$b]["cards"]; - $mycards = explode(";",$allcards); - - sort($mycards); - echo "your cards are
"; - foreach($mycards as $card) + if($_REQUEST["in"]=="no") { - display_card($card); + for($i=0;$i<4;$i++) + { + echo "Hello ".$player[$hash[$i]]["name"].",\n"; + echo "\n"; + echo "the game has been cancled due to the request of one of the players.\n"; + } + $output = fopen("status.txt","w"); + if($output) + fclose($output); + else + echo "problem opening file"; } - echo "
\n"; + else + { + if($_REQUEST["update"]=="card") $player[$b]["option"].="c"; + if($_REQUEST["update"]=="turn") $player[$b]["option"].="t"; + + $player[$b]["option"].="i"; + + save_status(); + + $allcards = $player[$b]["cards"]; + $mycards = explode(";",$allcards); + + sort($mycards); + echo "your cards are
"; + foreach($mycards as $card) + { + display_card($card); + } + echo "
\n"; ?> @@ -315,10 +516,11 @@ if(sizeof($lines)<2) no
\n"; - echo "\n"; - - echo "
\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + } } } if(isset($_REQUEST["c"])) @@ -338,8 +540,9 @@ if(sizeof($lines)<2) { echo "handle krankheit
"; - echo "email this out: you're in. once everyone has filled out the form,"; - echo "the game will start and you'll get an eamil about it"; + $message = "you're in. once everyone has filled out the form,". + "the game will start and you'll get an eamil on your turn\n"; + mymail($player[$c]["email"],"[DoKo] the game will start soon",$message); $player[$c]["option"].="s"; @@ -390,28 +593,19 @@ if(sizeof($lines)<2) if($hash[$next]==$me) { $card=$_REQUEST["card"]; - echo "EMAIL: you played $card "; $mycards = explode(";",$player[$me]["cards"]); if(in_array($card,$mycards)) { $tmp=array(); - echo "
"; foreach($mycards as $m) - { - if($m!=$card) - { - $tmp[]=$m; - echo "adding card $m
"; - } - } + if($m!=$card) + $tmp[]=$m; $tmp2=""; for($i=0;$i"; } $tmp2.=$tmp[$i]; - echo "adding card $tmp2 at $i *
"; $player[$me]["cards"]=$tmp2; if($last<0) @@ -425,8 +619,25 @@ if(sizeof($lines)<2) $history[sizeof($history)-1]=join(":",$tmp); } save_status(); - + + echo " you played "; display_card($card); + /* send out email to players who want/need to get informed */ + for($i=0;$i<4;$i++) + { + $mynext=$next+1; if($mynext>3)$mynext-=4; + if((ereg("c",$player[$hash[$i]]["option"]) || $i==$mynext) && $hash[$i]!=$me) + { + $message = " Hello ".$player[$hash[$i]]["name"].",\n\n"; + + if($i==$mynext) + $message .= "it's your turn now.\n"; + $message .= $player[$me]["name"]. "has played the following card ".card_to_name($card)."\n"; + + mymail($player[$hash[$i]]["email"],"[DoKo] a card has been played",$message); + echo " next player
"; + } + } } else echo "seems like you don't have that card
"; @@ -438,7 +649,19 @@ if(sizeof($lines)<2) { $win=$_REQUEST["win"]; $history[]=$win.":\n"; - echo "juhu someone won:$win
"; + /* count points of the last trick */ + $points=0; + echo "
".$history[sizeof($history)-2]."is the last trick played
"; + $tmp = explode(":",$history[sizeof($history)-2]); + for($i=0;$i<4;$i++) + { + $tmp2 = explode("->",$tmp[$i]); + $c = $tmp2[1]; + $points += card_value($c); + echo "adding card value ".card_value($c)."
"; + } + $player[$hash[$win]]["points"]+=$points; + echo "
".$player[$hash[$win]]["name"]." won: $points Points
"; save_status(); } @@ -446,19 +669,16 @@ if(sizeof($lines)<2) $tmp = explode(":",$history[sizeof($history)-1]); - echo sizeof($tmp)." tmp ;;".strlen($tmp[0])." len tmp0
"; - if(sizeof($tmp)==5) { ?>
- - player1 - player2 - player3 - player4 - +"; + echo ""; +?>
@@ -470,12 +690,20 @@ if(sizeof($lines)<2) { $next=$tmp[0]; echo "found the start of a new trick at $next
"; + if(strlen(trim($player[$me]["cards"]))==0) + { + echo "
game over, count points
"; + for($i=0;$i>4;$i++) + { + echo $player[$hash[$i]]["name"]." got ".$player[$hash[$i]]["points"]."
"; + } + } } - if($hash[$next]==$me) + if($hash[$next]==$me && strlen(trim($player[$me]["cards"]))>0 ) { echo "ITS YOUR TURN
"; - $allcards = $player[$me]["cards"]; + $allcards = trim($player[$me]["cards"]); $mycards = explode(";",$allcards); sort($mycards); @@ -492,17 +720,8 @@ if(sizeof($lines)<2) } } - } /* is this the last player that needs to accept? */ - /* yes, figure out who starts, send out email to first player */ - /* no, email the rest to cancel game */ - -/* player wants to make a move? */ - /* check if it is this players turn it is (if it's the players turn, convert cards into links) */ - /* if it is the last card played*/ - /* add checkbox for who one the trick */ - /* email next player */ - /* last card played? */ - /* count score for each player */ + } + ?>