X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=e-DoKo.git;a=blobdiff_plain;f=index.php;h=2eb0cf75f6b0cea529b7adcda9f30e54806a4ec7;hp=cf877cdac66c26998a1169edc7eeba13f5a26415;hb=f9ebada8e82bef69014f86b14b92534a266164bc;hpb=0e0b8bf81eff8eb4c726135b888aad69637f242b diff --git a/index.php b/index.php index cf877cd..2eb0cf7 100644 --- a/index.php +++ b/index.php @@ -3,29 +3,312 @@ "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
-
",$message);
+ echo " 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! aehm... at the moment please just answer everything with no, still need to implement this
To: $To
Subject: $Subject
$message
";
+ }
+ 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"] = -1;
+ $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"]++;
+ if(ereg("P",$tmp[3])) $game["poverty"] = $i;
+ if(ereg("N",$tmp[3])) $game["nines"] = $i;
+ if(ereg("W",$tmp[3])) $game["wedding"] = $i;
+ if(ereg("[OSQJCAH]",$tmp[3]) && ($game["solo-who"]<0) )
+ {
+ $game["solo-who"] = $i;
+ $game["startplayer"] = $i;
+ }
+
+ }
+ /* save the game history */
+ for($i=4;$i
";
- echo " player 1
";
- echo " player 2
";
- echo " player 3
";
- echo " player 4
";
+
+ $message = "\n".
+ "you are invited to play a game of DoKo (that is to debug the program ;).\n".
+ "Place comments and bug reports here:\n".
+ "http://wiki.nubati.net/index.php?title=EmailDoko\n\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".
+ " ".$host."?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"))
@@ -116,25 +439,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]:" );
@@ -150,19 +473,19 @@ if( isset($_REQUEST["PlayerA"]) &&
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++)
+ {
+ $message = "Hello ".$player[$hash[$i]]["name"].",\n\n".
+ "the game has been canceled due to the request of one of the players.\n";
+ mymail($player[$hash[$i]]["email"],"[DoKo-Debug] the game has been canceled",$message);
+ }
+ $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";
?>
+
";
@@ -331,104 +659,329 @@ if(sizeof($lines)<2)
}
else if($game["init"]<4)
{
- 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";
+ if( $_REQUEST["solo"]!="No")
+ {
+ switch($_REQUEST["solo"])
+ {
+ case "No trump":
+ $player[$c]["option"].="O";
+ break;
+ case "Normal solo":
+ $player[$c]["option"].="S";
+ break;
+ case "Queen solo":
+ $player[$c]["option"].="Q";
+ break;
+ case "Jack solo":
+ $player[$c]["option"].="J";
+ break;
+ case "Club solo":
+ $player[$c]["option"].="C";
+ break;
+ case "Spade solo":
+ $player[$c]["option"].="A";
+ break;
+ case "Hear solo":
+ $player[$c]["option"].="H";
+ break;
+ }
+ }
+ else if($_REQUEST["wedding"] == "yes")
+ {
+ echo "wedding was chosen
";
+ $player[$c]["option"].="W";
+ }
+ else if($_REQUEST["poverty"] == "yes")
+ {
+ echo "poverty was chosen
";
+ $player[$c]["option"].="P";
+ }
+ else if($_REQUEST["nines"] == "yes")
+ {
+ echo "nines was chosen
";
+ $player[$c]["option"].="N";
+ }
- $player[$c]["option"].="s";
+ $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-debug] the game will start soon",$message);
+ $player[$c]["option"].="s";
save_status();
+ if(file_exists("status.txt"))
+ $lines = file("status.txt");
+ else
+ die("no file");
+ parse_status();
+
+ if($game["init"]==4)
+ {
+ $message = "The game can start now, it's your turn, please use this link to play a card:\n".
+ $host."?me=".$hash[$game["startplayer"]]."\n";
+ mymail($player[$hash[$game["startplayer"]]]["email"],"[DoKo-debug] let's go",$message);
+ }
+
}
}
if($game["init"]==4)
{
+ /* check for sickness*/
+ /***** someone has 5 nines and no one is playing solo=> cance5Al game */
+ if($game["nines"]>=0 && $game["solo-who"]<0)
+ {
+ $message = $player[$hash[$game["poverty"]]]["nines"]." has more than 4 nines. Game aborted!\n";
+ for($i=0;$i<4;$i++)
+ {
+ mymail($player[$hash[$i]]["email"],"[DoKo-debug] the game has been canceled",$message);
+ }
+ $output = fopen("status.txt","w");
+ if($output)
+ fclose($output);
+ else
+ echo "problem opening file";
+ }
+
+ /* who is requesting this*/
if(!isset($_REQUEST["me"]))
- echo "a game is in progress, but you are not playing";
+ {
+ if(!isset($_REQUEST["recovery"]))
+ {
+ echo "a game is in progress, but you are not playing.
";
+ echo "In case you are playing, but lost your email or can't access the game anymore, please input your email here:
";
+ ?>
+
+=0)
+ {
+ $message = "Please try this link: ".$host."?me=".$hash[$ok]."\n".
+ "\n if this doesn't work, contact the admin.\n";
+ mymail($recovery,"[DoKo-Debug] recovery ",$message);
+ echo "email has been sent.";
+ }
+ else
+ {
+ echo "can't find this email address, sorry.";
+ };
+ } /* end recovery */
+ }
else
- {
+ { /* $me is set */
$me = $_REQUEST["me"];
+
+ echo "game in progress and you are in it
";
+ if($game["solo-who"]>=0)
+ echo $player[$hash[$game["solo-who"]]]["name"]." is playing a ".$game["solo-what"]." solo!
";
+ else if($game["wedding"]>=0)
+ echo $player[$hash[$game["wedding"]]]["name"]." is playing a wedding!
";
+
+ /* show history */
+ foreach($history as $play)
+ {
+ echo "
";
+
+ $trick = explode(":",$play);
+
+ $last=-2;
+ /* found old trick, display it */
+ for($i=0;$i
";
- echo "check,if card correct remove card from deck
";
+ if($hash[$next]==$me)
+ {
+ $card = $_REQUEST["card"];
+ $mycards = explode(";",$player[$me]["cards"]);
+
+ /* do we have that card */
+ if(in_array($card,$mycards))
+ {
+ /* delete card from array */
+ $tmp = array();
+ foreach($mycards as $m)
+ if($m != $card)
+ $tmp[]=$m;
+
+ $tmp2="";
+ for($i=0;$i
";
+ }
+ }
+ }
+ else
+ echo "seems like you don't have that card
";
+
+ }
+ } /* end if card is set */
+ else if(isset($_REQUEST["win"]) && strlen($history[sizeof($history)-1])>3)
+ {
+ $win=$_REQUEST["win"];
+ $history[]=$win.":\n";
+ /* count points of the last trick */
+ $points=0;
- $tmp = explode(":",$history[sizeof($history)-1]);
- $tmp[sizeof($tmp)-1] = "".$player[$me]["number"]."->".$card.":";
- $history[sizeof($history)-1]=join(":",$tmp);
-
+ $tmp = explode(":",$history[sizeof($history)-2]);
+ for($i=0;$i<4;$i++)
+ {
+ $tmp2 = explode("->",$tmp[$i]);
+ $c = $tmp2[1];
+ $points += card_value($c);
+ }
+ $player[$hash[$win]]["points"]+=$points;
+ echo "
".$player[$hash[$win]]["name"]." won: $points Points
";
+
save_status();
- }
- echo "game in progress and you are in it
";
- foreach($history as $play)
+ }; /* end if win is set */
+ echo "
";
+
+ $tmp = explode(":",$history[sizeof($history)-1]);
+
+ /* check last history entry: end of a trick? ask who won it */
+ if(sizeof($tmp)==5)
{
- $trick = explode(":",$play);
+ ?>
+