• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

php Zahlen raten

inkognito88

New member
Und schon das nächste Prob.
Folgende Situation:
Es wird versucht eine Zahl zwischen 1 und 100 zu erraten, die man sich vorher ausgedacht hat. Durch die Frage: "Ist Ihre Zahl größer als..." soll diese Zahl herausgefunden werden.

Das Skript läuft soweit ganz gut, nur das Problem ist, sobald die gesuchte Zahl einem Grenzwert entspricht, z.B. 50, 25, 13..., komme ich auf die falsche Lösung. ich habe mir jetzt den kopf zerbrochen und kann im mom keinen klaren gedanken mehr fassen.
Wäre nett wenn ihr mir auf die Sprünge helfen könntet!

Danke schon mal!
 
Und schon das nächste Prob.
Folgende Situation:
Es wird versucht eine Zahl zwischen 1 und 100 zu erraten, die man sich vorher ausgedacht hat. Durch die Frage: "Ist Ihre Zahl größer als..." soll diese Zahl herausgefunden werden.

Das Skript läuft soweit ganz gut, nur das Problem ist, sobald die gesuchte Zahl einem Grenzwert entspricht, z.B. 50, 25, 13..., komme ich auf die falsche Lösung. ich habe mir jetzt den kopf zerbrochen und kann im mom keinen klaren gedanken mehr fassen.
Wäre nett wenn ihr mir auf die Sprünge helfen könntet!

Danke schon mal!

zahlenraetsel.php:
PHP:
<?php
session_start();

if (isset($_REQUEST['start']))
	{
	$_SESSION["a"] = 1;
	$_SESSION["b"] = 100;
	}

if ($_SESSION['b'] - $_SESSION['a'] == 1)
	{
	echo "Dies ist Ihre Zahl: ".$_SESSION['frage'];
	}
else
	{
	if (isset($_REQUEST['ja']))
		{
	
		$_SESSION["a"]  = $_SESSION['frage'];
		}
	elseif (isset($_REQUEST['nein']))
		{
		$_SESSION["b"] = $_SESSION['frage'];
		}


	$diff = $_SESSION["b"] - $_SESSION["a"] ;
	$_SESSION['frage'] = intval ($diff/2) + $_SESSION["a"] ;
	echo "Ist Ihre Zahl größer als ".$_SESSION['frage'];
}
?>
<html>
<head>
	<title>Zahlenraten</title>
</head>
<body>
	<form name="antwort" action="zahlenraetsel.php">
		<input type="submit" name="ja" value="Ja">
		<input type="submit" name="nein" value="Nein">
	</form>
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
dir fehlt eine Option... und zwar "dies ist bereits dir richtige Zahl!"
wenn ich mich richtig erinnere, ist das Spiel beendet sobald die richtige Zahl erraten ist, wenn der Nutzer also ne 50 hat, dann ist eben der erste Versuch schon die Lösung -> Ende

Ich hoffe du hast den Code eben nur schnell zusammengeschrieben... wenn nicht bekommst von mir ne 6 auf Programmierstil.

1. $_REQUEST ist nicht soo toll.... bitte nutze $_POST und $_GET
2. dementsprechend auch im Formular die Übertragungsart angeben
3. du machst Ausgaben außerhalb deines html-Bereichs
4. .....

übel :p
 
wer sagt denn so was? ich würde eher sagen, dass es Variablen-Manipulation noch einfacher macht...

z.B. könnte man einfach zahlenraetsel.php?ja=1&nein=1 machen

dann denkt dein script, dass sowohl schalter 1 als auch schalter 2 gedrückt wurde... durch method="post" wäre das um einiges komplizierter
 
Ich weiß ja auch nicht, ich hab nur noch bis ende nächster woche praktikum und danach setz ich mich mal privat hin und schleuse mir das ein, ohne das der mir dauernd über die schulter schielt, geht ja auch viel besser.

Muss nur halt bis dorthin noch sowas zusammen kriegen.
 
Hab ne Lösung gefunden:

<?php
session_start();

if (isset($_REQUEST['start']))
{
$_SESSION["a"] = 1;
$_SESSION["b"] = 100;
}

if (isset($_REQUEST['ja']))
{
$_SESSION["a"] = $_SESSION['frage']+1;
}
elseif (isset($_REQUEST['nein']))
{
$_SESSION["b"] = $_SESSION['frage'];
}

echo $_SESSION['a'].', '.$_SESSION['b'].'<hr>';

if ($_SESSION['b'] - $_SESSION['a'] == 1)
{
if (isset($_REQUEST['ja']))
{
echo "\r\n Dies ist Ihre Zahl: ".$_SESSION["b"];
}
elseif (isset($_REQUEST['nein']))
{
echo "\r\n Dies ist Ihre Zahl: ".$_SESSION["a"];
}

}
else
{
$diff = $_SESSION["b"] - $_SESSION["a"] ;
$_SESSION['frage'] = intval ($diff/2) + $_SESSION["a"] ;
echo "Ist Ihre Zahl größer als ".$_SESSION['frage'];
}
?>
<html>
<head>
<title>Zahlenraten</title>
</head>
<body>
<form name="antwort" action="zahlenraetsel.php">
<input type="submit" name="ja" value="Ja">
<input type="submit" name="nein" value="Nein">
</form>

</body>
</html>

Danke für die Hilfe :d
 
Zurück
Oben