Version: 1.0
Type: Full Script
Category: Games
License: GNU General Public License
Description: Like a famous analytical guessing game, you have to guess the coloured pins hidden behind the panel. Simple really - I wrote it to teach myself PHP.
<?php
session_start();
if (!isset($_SESSION['gamerand']))
{ $_SESSION['gamerand'] = array(); }
if (!isset($_SESSION['guesstable']))
{ $_SESSION['guesstable'] = array(); }
if (!isset($_SESSION['answertable']))
{ $_SESSION['answertable'] = array(); }
if (!isset($_SESSION['won']))
{ $_SESSION['won'] = 0 ; }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Mind Game 1</title>
<meta http-equiv="content-type"
content="text/html; charset=iso-8859-1" />
</head>
<body>
<H3>The Mind Game.</H3>
This game is devised around the idea of a popular analytical game that's been around for years.
<BR>
Simply put, there are 4 hidden coloured buttons behind the panel.
<BR>
There are 8 colours to choose from, you get 12 attempts to guess the correct colours and positions.
<BR>
You are awarded a red tick for each correct colour and correct place, and a black tick for each
correct colour.
<BR>
Simple Really!
<HR>
<?php
$colour_table = array(
'blue_button.jpg',
'red_button.jpg',
'green_button.jpg',
'yellow_button.jpg',
'white_button.jpg',
'black_button.jpg',
'purple_button.jpg',
'orange_button.jpg');
$lost = 0;
// if new, populate gamerand array with 4 random colours in places
if ( count($_SESSION['gamerand']) == 0)
{
for ($i=0; $i<4; $i++)
{
$j = rand(0,7); // 56/7 choices - more randomised?
// $j = int($j/7);
$_SESSION['gamerand'][] = $colour_table[$j];
}
}
// get results back from last guess
// --------------------------------
if (isset($_POST['colour1']))
{
$index = count($_SESSION['guesstable']);
$_SESSION['guesstable'][$index] = array();
$_SESSION['answertable'][$index] = array();
$_SESSION['guesstable'][$index][0] = $_POST['colour1'];
$_SESSION['guesstable'][$index][1] = $_POST['colour2'];
$_SESSION['guesstable'][$index][2] = $_POST['colour3'];
$_SESSION['guesstable'][$index][3] = $_POST['colour4'];
}
// assign ticks for correct results
// --------------------------------
$tick_red = 0;
$tick_white = 0;
$tick_ctr = 0;
$guess_mark = array(0,0,0,0); //to not assign ticks twice
$match_mark = array(0,0,0,0);
for ($i=0; $i<4; $i++) // red ticks first
{
if ($_SESSION['guesstable'][$index][$i] == $_SESSION['gamerand'][$i] )
{ $tick_red++;
$guess_mark[$i] = 1;
$match_mark[$i] = 1;
}
}
for ($i=0; $i<4; $i++) // now white ticks
{
for ($j=0; $j<4; $j++)
{
if ($guess_mark[$i] == 0 && $j != $i)
{
if ($_SESSION['guesstable'][$index][$i] == $_SESSION['gamerand'][$j]
&& $match_mark[$j] != 1)
{ $tick_white++;
$guess_mark[$i] = 1;
$match_mark[$j] = 1;
}
}
}
}
if ($tick_red > 0)
{
for ($i=0; $i<$tick_red; $i++)
{ $_SESSION['answertable'][$index][$i] = "red"; }
}
if ($tick_white > 0)
{
for ($i=$tick_red; $i<($tick_red+$tick_white); $i++)
{ $_SESSION['answertable'][$index][$i] = "white"; }
}
if ($tick_red == 4)
{ $_SESSION['won'] = 1; }
// start table for game
if ($_SESSION['won'] == 1)
{
echo "<table border=1 width=500 height=60> \n";
echo "<TR><TD align=center width=300> \n";
echo "You won! the colours are: <BR><BR> \n";
echo "     \n";
echo "<IMG SRC=/images/" . $_SESSION['gamerand'][0] . " />       \n"
. "<IMG SRC=/images/" . $_SESSION['gamerand'][1] . " />       \n"
. "<IMG SRC=/images/" . $_SESSION['gamerand'][2] . " />       \n"
. "<IMG SRC=/images/" . $_SESSION['gamerand'][3] . " /> \n" ;
echo "</TD> \n";
$lost = 1;
echo "<TD align=center valign=center> \n";
echo "<form action=" . $_SERVER['PHP_SELF'] . " method=post> \n";
echo "<INPUT type=submit value=\"Play Again\" name=playagain\> \n";
echo "</FORM> \n";
}
elseif (count($_SESSION['guesstable']) == 12)
{
echo "<table border=1 width=500 height=60> \n";
echo "<TR><TD align=center width=300> \n";
echo "You lost!! The colours are: <BR><BR> \n";
echo "     \n";
echo "<IMG SRC=/images/" . $_SESSION['gamerand'][0] . " />       \n"
. "<IMG SRC=/images/" . $_SESSION['gamerand'][1] . " />       \n"
. "<IMG SRC=/images/" . $_SESSION['gamerand'][2] . " />       \n"
. "<IMG SRC=/images/" . $_SESSION['gamerand'][3] . " /> \n" ;
echo "</TD>";
$lost = 1;
echo "<TD align=center valign=center>";
echo "<form action=" . $_SERVER['PHP_SELF'] . " method=post>";
echo "<INPUT type=submit value=\"Play Again\" name=playagain\> \n";
echo "</FORM>";
}
else
{
echo "<table border=1 bgcolor=black width=500 height=60><TR><TD align=center valign=center> \n";
echo "<span style=\"color:white; font-style:bold;\">"
. "Guess the Four hidden coloured buttons behind this panel \n"
;
// echo "<IMG SRC=/images/" . $_SESSION['gamerand'][0] . " />    \n"
// . "<IMG SRC=/images/" . $_SESSION['gamerand'][1] . " />    \n"
// . "<IMG SRC=/images/" . $_SESSION['gamerand'][2] . " />    \n"
// . "<IMG SRC=/images/" . $_SESSION['gamerand'][3] . " /> \n" ;
echo '</span> \n';
}
echo "</TD></TR></TABLE> \n";
// table of choices
echo "<TABLE border=1 width=500> \n";
// set up form for selecting the colours
// -------------------------------------
if (count($_SESSION['guesstable']) < 12 && $lost == 0)
{
echo "<TR><TD width=300> \n";
echo "<TABLE valign=center align=center><TR> \n";
echo "<form action=" . $_SERVER['PHP_SELF'] . " method=post> \n";
echo "<TD valign=center>";
for ($i=0; $i<count($colour_table); $i++)
{ $check_value = "";
if ($_SESSION['guesstable'][$index][0] == $colour_table[$i])
{ $check_value = "checked=checked"; }
echo "<INPUT TYPE=RADIO NAME=colour1 VALUE=\"$colour_table[$i]\" $check_value >"
. "<IMG SRC=/images/" . $colour_table[$i] . "><BR> \n";
}
echo "</TD>";
echo "<TD valign=center>";
for ($i=0; $i<count($colour_table); $i++)
{ $check_value = "";
if ($_SESSION['guesstable'][$index][1] == $colour_table[$i])
{ $check_value = "checked=checked"; }
echo "<INPUT TYPE=RADIO NAME=colour2 VALUE=\"$colour_table[$i]\" $check_value >"
. "<IMG SRC=/images/" . $colour_table[$i] . "><BR> \n";
}
echo "</TD>";
echo "<TD valign=center>";
for ($i=0; $i<count($colour_table); $i++)
{ $check_value = "";
if ($_SESSION['guesstable'][$index][2] == $colour_table[$i])
{ $check_value = "checked=checked"; }
echo "<INPUT TYPE=RADIO NAME=colour3 VALUE=\"$colour_table[$i]\" $check_value >"
. "<IMG SRC=/images/" . $colour_table[$i] . "><BR> \n";
}
echo "</TD>";
echo "<TD valign=center>";
for ($i=0; $i<count($colour_table); $i++)
{ $check_value = "";
if ($_SESSION['guesstable'][$index][3] == $colour_table[$i])
{ $check_value = "checked=checked"; }
echo "<INPUT TYPE=RADIO NAME=colour4 VALUE=\"$colour_table[$i]\" $check_value >"
. "<IMG SRC=/images/" . $colour_table[$i] . "><BR> \n";
}
echo "</TD> \n";
echo "</TD></TR></TABLE> \n";
echo "</TD> \n";
echo "<TD valign=center align=center> \n";
echo "<INPUT type=submit value=\"Enter your guess\" name=submit \> \n";
echo "</TD> \n";
echo "</TR> \n";
echo "</form \n>";
}
// display previous results
// ------------------------
if (count($_SESSION['guesstable']) > 0)
{
$ctr = count($_SESSION['guesstable']) - 1;
for ($i=$ctr; $i>= 0; $i--)
{
echo "\n <TR><TD width=300 align=center> \n";
echo "      \n";
echo "<IMG SRC=/images/" . $_SESSION['guesstable'][$i][0] . " />       \n"
. "<IMG SRC=/images/" . $_SESSION['guesstable'][$i][1] . " />       \n"
. "<IMG SRC=/images/" . $_SESSION['guesstable'][$i][2] . " />       \n"
. "<IMG SRC=/images/" . $_SESSION['guesstable'][$i][3] . " /> \n";
echo "</TD><TD> \n";
$attempt = $i + 1;
echo "($attempt)  ";
for ($j=0;$j<4; $j++)
{
if ($_SESSION['answertable'][$i][$j] == "red")
{ echo "<IMG SRC=\"/images/red_tick.jpg\"> \n"; }
elseif ($_SESSION['answertable'][$i][$j] == "white")
{ echo "<IMG SRC=\"/images/black_tick.jpg\"> \n"; }
}
echo "</TD></TR> \n";
}
}
echo "</table> \n\n";
if ($_SESSION['won'] == 1 || count($_SESSION['guesstable']) == 12)
{
$_SESSION = array();
session_destroy();
}
?>
<HR>
<body></html>