Browse Source

Merge branch 'senne-all-hit' of rubendebaets/submarine into master

master
senneDM 4 years ago
parent
commit
97164db8fb
1 changed files with 47 additions and 9 deletions
  1. 47
    9
      index.php

+ 47
- 9
index.php View File

@@ -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

Loading…
Cancel
Save