Welcome to E-Doko
";
return 0;
}
}
function display_card($card)
{
if( $card/2 - (int)($card/2) == 0.5)
echo "";
else
echo "";
return;
}
function display_link_card($card,$me)
{
if( $card/2 - (int)($card/2) == 0.5)
echo "";
else
echo "";
return;
}
function save_status()
{
global $player,$game,$hash,$history;
$output = fopen("status.txt","w");
if ($output)
{
foreach($hash as $key)
{
$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";
$player[$key]["option"]=$tmp;
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;
}
$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"]) )
{
$PlayerA = $_REQUEST["PlayerA"];
$PlayerB = $_REQUEST["PlayerB"];
$PlayerC = $_REQUEST["PlayerC"];
$PlayerD = $_REQUEST["PlayerD"];
$EmailA = $_REQUEST["EmailA"] ;
$EmailB = $_REQUEST["EmailB"] ;
$EmailC = $_REQUEST["EmailC"] ;
$EmailD = $_REQUEST["EmailD"] ;
/* send out email, check for error with email */
$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=hash";
mail($EmailA,"Invite for a game of DoKo","Hello $PlayerA,\n".$message."1");
mail($EmailB,"Invite for a game of DoKo","Hello $PlayerB,\n".$message."2");
mail($EmailC,"Invite for a game of DoKo","Hello $PlayerC,\n".$message."3");
mail($EmailD,"Invite for a game of DoKo","Hello $PlayerD,\n".$message."4");
/* read in random.txt */
if(file_exists("random.txt"))
$random = file("random.txt");
else
die("no random file");
$randomNR = explode( ":", $random[1] );
/* write initial status into file */
$output = fopen("status.txt","w");
if ($output)
{
fwrite($output, "hash1:$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:::" );
for(;$i<23;$i++)
fwrite($output,"$randomNR[$i];" );
fwrite($output,"$randomNR[23]:" ); $i++;
fwrite($output,"\n");
fwrite($output, "hash3:$PlayerC:$EmailC:::" );
for(;$i<35;$i++)
fwrite($output,"$randomNR[$i];" );
fwrite($output,"$randomNR[35]:" ); $i++;
fwrite($output,"\n");
fwrite($output, "hash4:$PlayerD:$EmailD:::");
for(;$i<47;$i++)
fwrite($output,"$randomNR[$i];" );
fwrite($output,"$randomNR[47]:" );
fwrite($output,"\n");
fclose($output);
}
else
echo "can't open file for writing";
};
/* test if a game is running, else output everything for a new game */
if(sizeof($lines)<2)
{
?>
no game in progress, please input 4 names and email addresses, please make sure that the addresses are correct!
\n";
}
}
/* ***
* * *
* ***
* * *
* ***
* yes? email him his hand, ask for solo, poverty, email every move or every card?
*/
if(isset($_REQUEST["b"]))
{
$b=$_REQUEST["b"];
if( ereg("s",$player[$b]["option"]) && $game["init"]<4)
{
echo "just wait for the game to start";
}
else if(!isset($_REQUEST["in"])|| !isset($_REQUEST["update"]) )
{
echo "go back to ";
echo " here and fill out the form
";
}
else
{ /* show the hand */
if($_REQUEST["in"]=="no")
{
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";
}
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";
?>
\n";
}
}
}
if(isset($_REQUEST["c"]))
{
$c=$_REQUEST["c"];
if(!isset($_REQUEST["solo"])|| !isset($_REQUEST["wedding"])|| !isset($_REQUEST["poverty"]) )
{
echo "go back to ";
echo " here and fill out the form
";
}
else if( ereg("s",$player[$c]["option"]) && $game["init"]<4 )
{
echo "just wait for the game to start";
}
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";
$player[$c]["option"].="s";
save_status();
}
}
if($game["init"]==4)
{
if(!isset($_REQUEST["me"]))
echo "a game is in progress, but you are not playing";
else
{
$me = $_REQUEST["me"];
echo "game in progress and you are in it
";
foreach($history as $play)
{
echo "
";
$trick = explode(":",$play);
$last=-2;
/* found old trick, display it */
for($i=0;$i",$card))
{
$tmp = explode("->",$card);
echo $player[$hash[$tmp[0]]]["name"]." played ";
display_card($tmp[1]);
$last=$tmp[0];
}
}
}
$next = $last + 1;
if ($next>=4)
$next -= 4 ;
if($last<0)
{
$next=$history[sizeof($history)-1][0];
}
if(isset($_REQUEST["card"]))
{
if($hash[$next]==$me)
{
$card=$_REQUEST["card"];
$mycards = explode(";",$player[$me]["cards"]);
if(in_array($card,$mycards))
{
$tmp=array();
foreach($mycards as $m)
if($m!=$card)
$tmp[]=$m;
$tmp2="";
for($i=0;$i".$card.":\n";
}
else
{
$tmp = explode(":",$history[sizeof($history)-1]);
$tmp[sizeof($tmp)-1] = "".$player[$me]["number"]."->".$card.":";
$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)
{
echo "
** $next** \n Hello ".$player[$hash[$i]]["name"].",\n";
echo "\n";
if($i==$mynext)
echo "it's your turn now.\n";
echo $player[$me]["name"]. "has played the following card ".card_to_name($card)."\n";
echo " player 1
";
echo " player 2
";
echo " player 3
";
echo " player 4
";
}
}
}
else
echo "seems like you don't have that card
";
}
}
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;
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();
}
echo "
";
$tmp = explode(":",$history[sizeof($history)-1]);
if(sizeof($tmp)==5)
{
?>
";
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 && strlen(trim($player[$me]["cards"]))>0 )
{
echo "ITS YOUR TURN
";
$allcards = trim($player[$me]["cards"]);
$mycards = explode(";",$allcards);
sort($mycards);
echo "your cards are
";
foreach($mycards as $card)
{
display_link_card($card,$me);
}
echo "
\n";
}
echo "
";
}
}
}
}
?>