|
|
@@ -19,6 +19,8 @@ session_start(); |
|
|
|
// Spel opzetten, de grootte van het speelveld is 100 op 1 |
|
|
|
$fieldSizeX = 100; |
|
|
|
$fieldSizeY = 1; |
|
|
|
$subSize = floor($fieldSizeX / 3); |
|
|
|
|
|
|
|
|
|
|
|
// Als de sessie de key "subPosition" NIET bevat, |
|
|
|
// dan moeten we een nieuw spel starten |
|
|
@@ -29,19 +31,26 @@ session_start(); |
|
|
|
$positionsFired = array(); |
|
|
|
|
|
|
|
// Onderstaande lijn is in feite overbodig. Waarom? |
|
|
|
// deze is op de vorige lijn nog maar net aangemaakt dus deze is altijd leeg |
|
|
|
$_SESSION['positionsFired'] = $positionsFired; |
|
|
|
$ammo = floor($fieldSizeX / 3); |
|
|
|
$ammo = floor($fieldSizeX / 2); |
|
|
|
// stockeer ammo in de sessie |
|
|
|
$_SESSION['ammo'] = $ammo; |
|
|
|
$hits = array(); |
|
|
|
$_SESSION['hits'] = $hits; |
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
// vraag de variabelen op uit de sessie |
|
|
|
$subPosition = $_SESSION["subPosition"]; |
|
|
|
$positionsFired = $_SESSION["positionsFired"]; |
|
|
|
$ammo = $_SESSION['ammo']; |
|
|
|
$hits = $_SESSION['hits']; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$subLength = 1; |
|
|
|
$subHead = $subPosition - (ceil($subSize/2)-1); |
|
|
|
$subTail = $subPosition + floor($subSize/2); |
|
|
|
|
|
|
|
$won = false; |
|
|
|
$lost = false; |
|
|
@@ -53,6 +62,13 @@ session_start(); |
|
|
|
$ammo = $ammo - 1; |
|
|
|
} |
|
|
|
|
|
|
|
// Raak? Goed bezig! |
|
|
|
if ($shot >= $subHead && $shot <= $subTail && !in_array($shot,$hits)) { |
|
|
|
array_push($hits,$shot); |
|
|
|
} |
|
|
|
//hou de nieuwe $hits bij in de sessie |
|
|
|
$_SESSION['hits'] = $hits; |
|
|
|
|
|
|
|
echo "ammo left:" . $ammo . '<br/>'; |
|
|
|
// hou de nieuwe ammo bij in de sessie |
|
|
|
$_SESSION['ammo'] = $ammo; |
|
|
@@ -60,8 +76,27 @@ session_start(); |
|
|
|
array_push($positionsFired, $shot); |
|
|
|
$_SESSION['positionsFired'] = $positionsFired; |
|
|
|
|
|
|
|
// Raak? Gewonnen! |
|
|
|
if ($subPosition == $shot) { |
|
|
|
|
|
|
|
|
|
|
|
//alles geraakt? gewonnen! |
|
|
|
//kop van de duikboot valt onder "|" |
|
|
|
if ($subHead == 0 && count($hits) == $subSize -1 ){ |
|
|
|
$won = true; |
|
|
|
} |
|
|
|
// kop van de duikboot valt links buiten het veld |
|
|
|
elseif($subHead < 0 && count($hits) == $subSize - ($subHead*-1)-1){ |
|
|
|
$won = true; |
|
|
|
} |
|
|
|
//staart van de duikboot valt onder "|" |
|
|
|
elseif($subTail == $fieldSizeX +1 && count($hits) == $subSize -1){ |
|
|
|
$won = true; |
|
|
|
} |
|
|
|
// staart van de duikboot valt rechts buiten het veld |
|
|
|
elseif($subTail > $fieldSizeX + 1 && count($hits) == $subSize - ($subTail - ($fieldSizeX +1))-1){ |
|
|
|
$won = true; |
|
|
|
} |
|
|
|
// indien alles normaal verloopt |
|
|
|
elseif(count($hits) == $subSize){ |
|
|
|
$won = true; |
|
|
|
} |
|
|
|
// Geen ammo meer en ook niet gewonnen (laatste schot kan raak zijn)? Verloren! |
|
|
@@ -88,14 +123,15 @@ session_start(); |
|
|
|
// Voor elke kolom, van 1 tot de lengte van het X |
|
|
|
for ($x = 1; $x <= $fieldSizeX; ++$x) { |
|
|
|
// Als gewonnen, teken de duikboot. |
|
|
|
if ($won && $x == $subPosition - 1) { //Begin met de < voor de duikbootpositie. |
|
|
|
if ($won && $x == $subHead - 1) { //Begin met de < voor de duikbootpositie. |
|
|
|
echo '<'; |
|
|
|
|
|
|
|
} elseif ($won && $x == $subPosition + 1) { // en de laatste positie |
|
|
|
} elseif ($won && $x == $subTail + 1) { // en de laatste positie |
|
|
|
echo '>'; |
|
|
|
} else { |
|
|
|
} |
|
|
|
else { |
|
|
|
if (in_array($x, $positionsFired)) { //Teken de schoten |
|
|
|
if ($x == $subPosition) { // Duikboot geraakt? |
|
|
|
if ($x >= $subHead && $x <= $subTail) { // Duikboot geraakt? |
|
|
|
echo "#"; |
|
|
|
} else { // gemist schot |
|
|
|
echo "x"; |
|
|
@@ -121,8 +157,10 @@ session_start(); |
|
|
|
session_unset(); |
|
|
|
session_destroy(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
?> |
|
|
|
</pre> |
|
|
|
</body> |
|
|
|
|
|
|
|
</html |
|
|
|
</html |