Score bijhouden
Voor school ben ik bezig met een opdracht. Het is een spel waarbij een speler verschillende spullen van de ene naar de andere plek kan overbrengen. Ik maak ook gebruik van Geolocation en Google Maps.
Mijn vraag ligt bij PHP. Op een scherm kan de gebruiker kiezen uit vier handelswaren die hij kan vervoeren naar een andere plek: goud, opium, suiker en zout. Aan elk product zit een aantal punten verbonden. Goud is bijvoorbeeld 50 en zout 20.
Nou is het de bedoeling dat als de gebruiker bijvoorbeeld voor goud kiest, het puntenaantal 50 (de waarde van goud) boven in de volgende pagina's blijft staan. Als de route eenmaal veilig uitgelopen is naar de eindbestemming en de gebruiker opnieuw bij het menu met de vier handelswaren komt, is het de bedoeling dat als de gebruiker bijvoorbeeld voor zout kiest (20 punten) dit opgeteld wordt bij de 50 van goud. Een totaal van 70 punten dus. Tussendoor worden er ook vragen gesteld. Als de gebruiker een vraag fout heeft, begint hij weer helemaal opnieuw.
In principe is het dus punten doorgeven door pagina's. Wanneer de gebruiker bij het menu komt met de vier handelswaren en er een product wordt gekozen, moeten die punten van het product bij de huidige score opgeteld worden.
Is dit enkel op te lossen met variabelen? Ik ben nog extreem nieuw met PHP.
Je kunt dit met sessies doen
Ik heb nu dit:
start.php
Quote:
Kies een product om te vervoeren
<div id="menu">
<ul>
<li><a href="peper.php" title="Peper">Peper</a></li>
<li><a href="nootmuskaat.php" title="Nootmuskaat">Nootmuskaat</a></li>
<li><a href="goud.php" title="Goud">Goud</a></li>
<li><a href="zijde.php" title="Zijde">Zijde</a></li>
</ul>
</div>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
// Start de sessie
session_start();
// Variabelen in de sessie
$_SESSION['Peper']='50';
$_SESSION['Nootmuskaat']='45';
$_SESSION['Goud']='35';
$_SESSION['Zijde']='10';
?>
// Start de sessie
session_start();
// Variabelen in de sessie
$_SESSION['Peper']='50';
$_SESSION['Nootmuskaat']='45';
$_SESSION['Goud']='35';
$_SESSION['Zijde']='10';
?>
Kies een product om te vervoeren
<div id="menu">
<ul>
<li><a href="peper.php" title="Peper">Peper</a></li>
<li><a href="nootmuskaat.php" title="Nootmuskaat">Nootmuskaat</a></li>
<li><a href="goud.php" title="Goud">Goud</a></li>
<li><a href="zijde.php" title="Zijde">Zijde</a></li>
</ul>
</div>
Dit is de pagina goud.php
Quote:
<div id="next">
<a href="start.php" title="Next">Next</a>
</div>
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
session_start();
echo "<p>";
//Echo het aantal punten van het gekozen handelswaar
echo "Aantal punten:";
echo $_SESSION['Goud'];
?>
session_start();
echo "<p>";
//Echo het aantal punten van het gekozen handelswaar
echo "Aantal punten:";
echo $_SESSION['Goud'];
?>
<div id="next">
<a href="start.php" title="Next">Next</a>
</div>
Als je op de start.php voor goud kiest kom je op goud.php.Vanuit goud.php kan je op "Next" drukken en vervolgens kom je weer bij start.php. Vanuit daar kan je weer een product kiezen. Nu is het de bedoeling dat het aantal punten bij elkaar opgeteld worden. Steeds als je een nieuwe product kiest moeten er punten bij komen.
Gewijzigd op 27/04/2012 18:31:07 door Maikel Nachter
Om punten te kunnen optellen, moet je ook een sessie variabele hebben die de totale score in zich heeft. Op die manier kan je dan scores bij elkaar op gaan tellen, en indien iemand een vraag fout heeft, kan je de variabele met de totale score weer op 0 zetten.
Oke. Die variabele kan ik gewoon onder de anderen (handelswaren) aangeven?
Vervolgens het totaal verhogen met hetgeen men gekozen heeft.
Hartelijk bedankt!
Het optellen kan ook korter.
Dus even kijken met isset() of hij er is. Zo nee: zet op 0. Zo ja: doe niets.
Als ik nu steeds op refresh komt, komen er ook punten bij, probleem kennen jullie waarschijnlijk wel.
Hoe ziet je script er op het moment uit?
Startpagina:
Quote:
<p>
De startpagina met startknop
</p>
<div id="Next">
<a href="Map.php" title="Next">Next</a>
</div>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
// Start de sessie
session_start();
// Variabelen in de sessie
$_SESSION['Peper']='50';
$_SESSION['Nootmuskaat']='45';
$_SESSION['Goud']='35';
$_SESSION['Zijde']='10';
$_SESSION['Totaal']='0';
?>
// Start de sessie
session_start();
// Variabelen in de sessie
$_SESSION['Peper']='50';
$_SESSION['Nootmuskaat']='45';
$_SESSION['Goud']='35';
$_SESSION['Zijde']='10';
$_SESSION['Totaal']='0';
?>
<p>
De startpagina met startknop
</p>
<div id="Next">
<a href="Map.php" title="Next">Next</a>
</div>
Kaart overzicht met verschillende locaties op kaart
Quote:
<p>
Overzicht met alle punten op de kaart
</p>
<div id="next">
<a href="Menu.php" title="Next">Next</a>
</div>
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
session_start();
echo "<p>";
//Echo het aantal punten van het gekozen handelswaar
echo "Aantal punten:";
echo $_SESSION['Totaal'];
?>
session_start();
echo "<p>";
//Echo het aantal punten van het gekozen handelswaar
echo "Aantal punten:";
echo $_SESSION['Totaal'];
?>
<p>
Overzicht met alle punten op de kaart
</p>
<div id="next">
<a href="Menu.php" title="Next">Next</a>
</div>
Pagina bij een locatie
Quote:
<p>
Menu bij een punt
</p>
<p>
Kies een product om te vervoeren
</p>
<div id="menu">
<ul>
<li><a href="Peper.php" title="Peper">Peper</a></li>
<li><a href="Nootmuskaat.php" title="Nootmuskaat">Nootmuskaat</a></li>
<li><a href="Goud.php" title="Goud">Goud</a></li>
<li><a href="Zijde.php" title="Zijde">Zijde</a></li>
</ul>
</div>
<p>
Menu bij een punt
</p>
<p>
Kies een product om te vervoeren
</p>
<div id="menu">
<ul>
<li><a href="Peper.php" title="Peper">Peper</a></li>
<li><a href="Nootmuskaat.php" title="Nootmuskaat">Nootmuskaat</a></li>
<li><a href="Goud.php" title="Goud">Goud</a></li>
<li><a href="Zijde.php" title="Zijde">Zijde</a></li>
</ul>
</div>
Pagina keuze Goud
Quote:
<div id="next">
<a href="Goud_1.php" title="Next">Next</a>
</div>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
echo "<p>";
// Score vermenigvuldigen met gekozen handelswaar
$_SESSION['Totaal']=$_SESSION['Totaal']+$_SESSION['Goud'];
//Echo het aantal punten van het gekozen handelswaar
echo "Aantal punten:";
echo $_SESSION['Totaal'];
?>
session_start();
echo "<p>";
// Score vermenigvuldigen met gekozen handelswaar
$_SESSION['Totaal']=$_SESSION['Totaal']+$_SESSION['Goud'];
//Echo het aantal punten van het gekozen handelswaar
echo "Aantal punten:";
echo $_SESSION['Totaal'];
?>
<div id="next">
<a href="Goud_1.php" title="Next">Next</a>
</div>