PHP - Gættespil
-
- Begynder
- Indlæg:23
- Tilmeldt:24. apr 2014, 10:03
Hej NemProgrammering
Er selv på begynder-stadiet i programmering og sidder lige nu og leger med et lille gættespil i php, hvor man skal gætte et tal mellem 1-100. Jeg skal til at starte med lave et fast tal i koden, derefter skal der være et par kriterier,
såsom: hvis gættet er + - 50 eller mere fra det valgte tal, skal den udskrive: meget langt forbi.
Derefter hvis gættet er mellem 19 og 49 fra det valgte tal, skal den udskrive: Du er ikke helt ved siden af.
Ellers: Tampen brænder!
Har siddet og læst mig helt væk men kan ikke rigtig finde ud af at få lavet de kriterier ordentligt, har dog fundet ud af at der nok skal bruges abs() funktionen, men er ikke helt sikker på hvordan
Har prøvet mange ting, men kan kun få det til at virke hvis jeg bruger 1 som det valgte tal.
Vedlægger min kode her: (Ikke døm mig hvis den er helt hen i skoven (: )
Første side: <form action="side4.php" method="get">
Gæt et tal mellem 1 og 100 <input type="text" name="tal" />
<input type ="submit" /> </form>
Anden side:
<?php
$R = 66;
if ($_GET['tal'] == $R)
{
echo "Flot - rigtigt gættet!";
}
elseif ($_GET['tal'] <"1" || $_GET['tal'] >"100")
{
echo "Uden for den angivne interval på 1-100";
}
elseif (abs($_GET['tal'] > 50))
{
echo "Meget langt forbi";
}
elseif (abs($_GET['tal'] > "19" && "49"))
{
echo "Du er ikke helt ved siden af";
}
else
{
echo "Tampen brænder!";
}
?>
Er selv på begynder-stadiet i programmering og sidder lige nu og leger med et lille gættespil i php, hvor man skal gætte et tal mellem 1-100. Jeg skal til at starte med lave et fast tal i koden, derefter skal der være et par kriterier,
såsom: hvis gættet er + - 50 eller mere fra det valgte tal, skal den udskrive: meget langt forbi.
Derefter hvis gættet er mellem 19 og 49 fra det valgte tal, skal den udskrive: Du er ikke helt ved siden af.
Ellers: Tampen brænder!
Har siddet og læst mig helt væk men kan ikke rigtig finde ud af at få lavet de kriterier ordentligt, har dog fundet ud af at der nok skal bruges abs() funktionen, men er ikke helt sikker på hvordan
Har prøvet mange ting, men kan kun få det til at virke hvis jeg bruger 1 som det valgte tal.
Vedlægger min kode her: (Ikke døm mig hvis den er helt hen i skoven (: )
Første side: <form action="side4.php" method="get">
Gæt et tal mellem 1 og 100 <input type="text" name="tal" />
<input type ="submit" /> </form>
Anden side:
<?php
$R = 66;
if ($_GET['tal'] == $R)
{
echo "Flot - rigtigt gættet!";
}
elseif ($_GET['tal'] <"1" || $_GET['tal'] >"100")
{
echo "Uden for den angivne interval på 1-100";
}
elseif (abs($_GET['tal'] > 50))
{
echo "Meget langt forbi";
}
elseif (abs($_GET['tal'] > "19" && "49"))
{
echo "Du er ikke helt ved siden af";
}
else
{
echo "Tampen brænder!";
}
?>
-
- Begynder
- Indlæg:23
- Tilmeldt:24. apr 2014, 10:03
Re: PHP - Gættespil
Har dog fået det til at virke nu, men nu bakser jeg med at få indkorporeret en session i min kode, som skal køre indtil jeg har gættet 10 gange eller gættet det rigtige tal
Re: PHP - Gættespil
Hej Julle,
Super du fik det til at virke Vil du dele din løsning, så andre kan få glæde af den?
Super du fik det til at virke Vil du dele din løsning, så andre kan få glæde af den?
-
- Begynder
- Indlæg:23
- Tilmeldt:24. apr 2014, 10:03
Re: PHP - Gættespil
Det kan du tro jeg vil, det bliver lige på mandag når jeg kommer op til den computer det ligger på
Kan du evt. Hjælpe med mit problem med at få inkorporeret en Session i det, som jeg skrev i den tidligere kommentar?
Kan du evt. Hjælpe med mit problem med at få inkorporeret en Session i det, som jeg skrev i den tidligere kommentar?
Re: PHP - Gættespil
Hej Julle,
Hvis du ønsker at lære noget om sessions, er den her artikel rigtig god:
http://www.w3schools.com/php/php_sessions.asp
Men kort sagt:
1. Start en session
2. Lav en cookie variabel der gemmes i den nuværende session
3. Arbejd arbejd
4. Luk session
Men den artikel har både eksempler på brugen og lidt teori oveni, så den er rigtig god og kan sikkert hjælpe dig igang
Hvis du ønsker at lære noget om sessions, er den her artikel rigtig god:
http://www.w3schools.com/php/php_sessions.asp
Men kort sagt:
1. Start en session
2. Lav en cookie variabel der gemmes i den nuværende session
3. Arbejd arbejd
4. Luk session
Men den artikel har både eksempler på brugen og lidt teori oveni, så den er rigtig god og kan sikkert hjælpe dig igang
-
- Begynder
- Indlæg:23
- Tilmeldt:24. apr 2014, 10:03
Re: PHP - Gættespil
Jeg er bare lidt i tvivl om hvilken side min Session skal skrives på?
Den skal vel skrives på den første side, og så trækkes ud på side2?
Og jeg synes ikke der bliver forklaret hvordan man gemmer en værdi 10 gange f.eks - så jeg får 10 gæt før den skifter værdi igen
Tro mig, jeg bruger meget w3schools, men lige med det, synes jeg ikke det bliver forklaret
Håber i kan hjælpe med det også
Den skal vel skrives på den første side, og så trækkes ud på side2?
Og jeg synes ikke der bliver forklaret hvordan man gemmer en værdi 10 gange f.eks - så jeg får 10 gæt før den skifter værdi igen
Tro mig, jeg bruger meget w3schools, men lige med det, synes jeg ikke det bliver forklaret
Håber i kan hjælpe med det også
Re: PHP - Gættespil
Er lidt i tvivl om hvad du mener, men sådan som jeg har forstået det, så vil du have 10 gæt før den ligesom "resetter"?
I det tilfælde, kan du lave en session variable (cookie), som der gemmer antallet af gæt. Når den så overstiger 10, så kan du reset spil.
eksempel:
Nu har du en session variabel kaldet "guesses" som indeholder antallet af gæt du har foretaget. Hver gang du foretager et gæt, forøger du den med 1:
Nu kan du så teste om man har gættet 10 gange:
Håber det var noget i den stil du ledte efter Men kort sagt så bare lav en session og gem det i en variabel. Siden du laver dette på skal bare være der hvor du starter spillet, og så hver gang der foretages et gæt så inkrementér den variabel og test for max
HUSK altid at du skal kalde session_start() inden du kan arbejde med det.
Håber det hjælper, ellers giv lyd
mvh
/JBJ
Hvis jeg hjalp dig, kunne du måske hjælpe mig ved at besøge mig på www.jbjcode.com
I det tilfælde, kan du lave en session variable (cookie), som der gemmer antallet af gæt. Når den så overstiger 10, så kan du reset spil.
eksempel:
Kode: Vælg alt
<?php
session_start();
// lav session data
$_SESSION['guesses']=0;
?>
Kode: Vælg alt
$_SESSION['guesses']++;
Kode: Vælg alt
if ( $_SESSION['guesses'] >= 10 ) {
// Reset
}
HUSK altid at du skal kalde session_start() inden du kan arbejde med det.
Håber det hjælper, ellers giv lyd
mvh
/JBJ
Hvis jeg hjalp dig, kunne du måske hjælpe mig ved at besøge mig på www.jbjcode.com
-
- Begynder
- Indlæg:23
- Tilmeldt:24. apr 2014, 10:03
Re: PHP - Gættespil
Mange tak Seerex
Det hjalp meget, ja!
Jeg prøver mig frem med det, skal nok melde tilbage i tråden her senere, eller hvis jeg skal bruge mere hjælp
Vil med glæde besøge din hp
Det hjalp meget, ja!
Jeg prøver mig frem med det, skal nok melde tilbage i tråden her senere, eller hvis jeg skal bruge mere hjælp
Vil med glæde besøge din hp
-
- Begynder
- Indlæg:23
- Tilmeldt:24. apr 2014, 10:03
Re: PHP - Gættespil
Jeg tænkte på om der egentlig ikke også skulle oprettes en Session, der generer et nyt tal efter der er gættet 10 gange?
Eller er det bare en rand() der skal sættes ind?
I så fald, hvor skal den sættes ind i forhold til min session?
Er lidt i tvivl om hvor evt. rand og session skal sættes ind, så her kommer min kode indtil videre
Sådan her ser det ud lige nu:(Ved godt det ikke er rigtigt endnu)
Side1:
<?php
Session_start();
$_SESSION['guesses'] =0;
<?
<form action="side4.php" method="get">
Gæt et tal mellem 1 og 100 <input type="text" name="tal" />
<input type ="submit" />
</form>
Side2:
<?php
session_start();
$_SESSION['guesses']++;
$_SESSION['antal']=65;
if ($_GET['tal'] == $_SESSION['antal']){
echo "Flot - rigtigt gættet!";}
elseif ($_GET['tal'] <"1" || $_GET['tal'] >"100"){
echo "Uden for den angivne interval på 1-100";}
elseif (abs($_SESSION['antal'] - $_GET['tal']) > 50){
echo "Meget langt forbi";}
elseif (abs($_SESSION['antal'] - $_GET['tal']) > 19 && 49){
echo "Du er ikke helt ved siden af";}
else {
echo "Tampen brænder!";}
if ($_SESSION['guesses'] >= 10){
unset($_SESSION['guesses']);}
?>
Eller er det bare en rand() der skal sættes ind?
I så fald, hvor skal den sættes ind i forhold til min session?
Er lidt i tvivl om hvor evt. rand og session skal sættes ind, så her kommer min kode indtil videre
Sådan her ser det ud lige nu:(Ved godt det ikke er rigtigt endnu)
Side1:
<?php
Session_start();
$_SESSION['guesses'] =0;
<?
<form action="side4.php" method="get">
Gæt et tal mellem 1 og 100 <input type="text" name="tal" />
<input type ="submit" />
</form>
Side2:
<?php
session_start();
$_SESSION['guesses']++;
$_SESSION['antal']=65;
if ($_GET['tal'] == $_SESSION['antal']){
echo "Flot - rigtigt gættet!";}
elseif ($_GET['tal'] <"1" || $_GET['tal'] >"100"){
echo "Uden for den angivne interval på 1-100";}
elseif (abs($_SESSION['antal'] - $_GET['tal']) > 50){
echo "Meget langt forbi";}
elseif (abs($_SESSION['antal'] - $_GET['tal']) > 19 && 49){
echo "Du er ikke helt ved siden af";}
else {
echo "Tampen brænder!";}
if ($_SESSION['guesses'] >= 10){
unset($_SESSION['guesses']);}
?>
Senest rettet af JulleKrolle 30. apr 2014, 10:39, rettet i alt 2 gange.
Re: PHP - Gættespil
Du kunne måske gemme din random tal i en session variabel også? Så har du 2 session variabler:
"Guesses"
"RandomNumber"
Så når guesses er på 10, så nulstiller du guesses (sætter til 0 eller 1) og laver en ny tildeling til randomNumber med et random tal ved at kalde random funktionen.
Det var nok sådan jeg ville gøre det Så du skal ikke "lave en ny session" men du skal bare have en ekstra session variable, i den nuværende session
"Guesses"
"RandomNumber"
Så når guesses er på 10, så nulstiller du guesses (sætter til 0 eller 1) og laver en ny tildeling til randomNumber med et random tal ved at kalde random funktionen.
Det var nok sådan jeg ville gøre det Så du skal ikke "lave en ny session" men du skal bare have en ekstra session variable, i den nuværende session
-
- Begynder
- Indlæg:23
- Tilmeldt:24. apr 2014, 10:03
Re: PHP - Gættespil
Det hjalp en del, ja
Nu får jeg bare en fejlmeddelelse ved hvert 10. gæt hvor der står: Undefined index: guesses
Og det ser ud til at jeg får et random nummer ved hvert gæt
Min kode ser sådan her ud nu:
<?php
session_start();
$_SESSION['guesses']++;
$_SESSION['RandomNumber']=rand(1,100);
if ($_GET['tal'] == $_SESSION['RandomNumber']){
echo "Flot - rigtigt gættet!";}
elseif ($_GET['tal'] <"1" || $_GET['tal'] >"100"){
echo "Uden for den angivne interval på 1-100";}
elseif (abs($_SESSION['RandomNumber'] - $_GET['tal']) > 50){
echo "Meget langt forbi";}
elseif (abs($_SESSION['RandomNumber'] - $_GET['tal']) > 19 && 49){
echo "Du er ikke helt ved siden af";}
else {
echo "Tampen brænder!";}
if ($_SESSION['guesses'] >= 10){
unset($_SESSION['guesses']);}
?>
Og min første side ser således ud: (der mangler vidst en variabel til RandomNumber)
<?php
Session_start();
$_SESSION['guesses'] =0;
<?
Nu får jeg bare en fejlmeddelelse ved hvert 10. gæt hvor der står: Undefined index: guesses
Og det ser ud til at jeg får et random nummer ved hvert gæt
Min kode ser sådan her ud nu:
<?php
session_start();
$_SESSION['guesses']++;
$_SESSION['RandomNumber']=rand(1,100);
if ($_GET['tal'] == $_SESSION['RandomNumber']){
echo "Flot - rigtigt gættet!";}
elseif ($_GET['tal'] <"1" || $_GET['tal'] >"100"){
echo "Uden for den angivne interval på 1-100";}
elseif (abs($_SESSION['RandomNumber'] - $_GET['tal']) > 50){
echo "Meget langt forbi";}
elseif (abs($_SESSION['RandomNumber'] - $_GET['tal']) > 19 && 49){
echo "Du er ikke helt ved siden af";}
else {
echo "Tampen brænder!";}
if ($_SESSION['guesses'] >= 10){
unset($_SESSION['guesses']);}
?>
Og min første side ser således ud: (der mangler vidst en variabel til RandomNumber)
<?php
Session_start();
$_SESSION['guesses'] =0;
<?
Re: PHP - Gættespil
Hmm nu sidder jeg ikke lige ved en computer som jeg kan teste ved, men umiddelbart så:
Prøv at ændre den sidste if til:
Så tror jeg det fjerner fejlen ved 10 gæt måske?
Og du får et nyt random number hver gang, fordi du jo tildeler et random number hver eneste gang siden loader:
$_SESSION['RandomNumber']=rand(1,100);
Står jo helt i toppen, så hver gang den side loades så sætter du nu random number. Du skal sætte den i samme if-sætning som den der endten siger det er rigtig gættet og så tildele ny efter det, eller når man har gættet 10 gange så kan den indsættes i den forovennævnte if-sætning.
Prøv at ændre den sidste if til:
Kode: Vælg alt
if ($_SESSION['guesses'] >= 10) {
$_SESSION['guesses'] = 0;
}
Og du får et nyt random number hver gang, fordi du jo tildeler et random number hver eneste gang siden loader:
$_SESSION['RandomNumber']=rand(1,100);
Står jo helt i toppen, så hver gang den side loades så sætter du nu random number. Du skal sætte den i samme if-sætning som den der endten siger det er rigtig gættet og så tildele ny efter det, eller når man har gættet 10 gange så kan den indsættes i den forovennævnte if-sætning.
-
- Begynder
- Indlæg:23
- Tilmeldt:24. apr 2014, 10:03
Re: PHP - Gættespil
Nu kommer der ikke nogle fejlmeddelelser, men det virker stadig som om at den genererer et nyt tal hele tiden
Og hvis det er muligt, så skulle den nemlig også generere nyt tal når man har gættet rigtigt, så den skal også sættes ind i den første if, men så siger den: unexpected ELSEIF :s
Det er ændret til:
<?php
session_start();
$_SESSION['guesses']++;
if ($_GET['tal'] == $_SESSION['RandomNumber']){
echo "Flot - rigtigt gættet!";}
elseif ($_GET['tal'] <"1" || $_GET['tal'] >"100"){
echo "Uden for den angivne interval på 1-100";}
elseif (abs($_SESSION['RandomNumber'] - $_GET['tal']) > 50){
echo "Meget langt forbi";}
elseif (abs($_SESSION['RandomNumber'] - $_GET['tal']) > 19 && 49){
echo "Du er ikke helt ved siden af";}
else {
echo "Tampen brænder!";}
if ($_SESSION['guesses'] >= 10){
$_SESSION['guesses']=0;}{
$_SESSION['RandomNumber']=rand(1,100);}
?>
Og første side er stadig:
<?php
Session_start();
$_SESSION['guesses'] = 0;
<?
<form action="side4.php" method="get">
Gæt et tal mellem 1 og 100 <input type="text" name="tal" />
<input type ="submit" />
</form>
Og hvis det er muligt, så skulle den nemlig også generere nyt tal når man har gættet rigtigt, så den skal også sættes ind i den første if, men så siger den: unexpected ELSEIF :s
Det er ændret til:
<?php
session_start();
$_SESSION['guesses']++;
if ($_GET['tal'] == $_SESSION['RandomNumber']){
echo "Flot - rigtigt gættet!";}
elseif ($_GET['tal'] <"1" || $_GET['tal'] >"100"){
echo "Uden for den angivne interval på 1-100";}
elseif (abs($_SESSION['RandomNumber'] - $_GET['tal']) > 50){
echo "Meget langt forbi";}
elseif (abs($_SESSION['RandomNumber'] - $_GET['tal']) > 19 && 49){
echo "Du er ikke helt ved siden af";}
else {
echo "Tampen brænder!";}
if ($_SESSION['guesses'] >= 10){
$_SESSION['guesses']=0;}{
$_SESSION['RandomNumber']=rand(1,100);}
?>
Og første side er stadig:
<?php
Session_start();
$_SESSION['guesses'] = 0;
<?
<form action="side4.php" method="get">
Gæt et tal mellem 1 og 100 <input type="text" name="tal" />
<input type ="submit" />
</form>
Re: PHP - Gættespil
else if er i 2 ord prøv at ændre det
-
- Begynder
- Indlæg:23
- Tilmeldt:24. apr 2014, 10:03
Re: PHP - Gættespil
Nu siger den istedet:
Parse error: syntax error, unexpected T_ELSE in C:\wamp\www\Julian\Mini Projekter\Side4.php on line 9
Altså ELSE istedetfor ELSEIF
Parse error: syntax error, unexpected T_ELSE in C:\wamp\www\Julian\Mini Projekter\Side4.php on line 9
Altså ELSE istedetfor ELSEIF
-
- Begynder
- Indlæg:23
- Tilmeldt:24. apr 2014, 10:03
Re: PHP - Gættespil
Så fik jeg det til at virke!
Der var lige et par {} for meget i mine if koder
Det færdige resultat blev:
Side1:
Side2:
Der var lige et par {} for meget i mine if koder
Det færdige resultat blev:
Side1:
Kode: Vælg alt
<form action="side4.php" method="get">
Gæt et tal mellem 1 og 100 <input type="text" name="tal" />
<input type ="submit" />
</form>
<?php
Session_start();
$_SESSION['guesses'] = 0;
<?
Kode: Vælg alt
<?php
session_start();
$_SESSION['guesses']++;
if ($_GET['tal'] == $_SESSION['RandomNumber']){
$_SESSION['RandomNumber']=rand(1,100);
echo "Flot - rigtigt gættet!";}
elseif ($_GET['tal'] <"1" || $_GET['tal'] >"100"){
echo "Uden for den angivne interval på 1-100";}
elseif (abs($_SESSION['RandomNumber'] - $_GET['tal']) > 50){
echo "Meget langt forbi";}
elseif (abs($_SESSION['RandomNumber'] - $_GET['tal']) > 19 && 49){
echo "Du er ikke helt ved siden af";}
else {
echo "Tampen brænder!";}
if ($_SESSION['guesses'] >= 10){
$_SESSION['guesses']=0;
$_SESSION['RandomNumber']=rand(1,100);}
?>
Re: PHP - Gættespil
Ah ok det var super, jeg havde ikke lige kigget det grundigt igennem Men godt du fandt ud af det!
Og lige et piece of advice, skriv "else if" alligevel, set er som regel sådan man gør, da det er mere læsevenligt
Og lige et piece of advice, skriv "else if" alligevel, set er som regel sådan man gør, da det er mere læsevenligt