Making a Higher/Lower Game but I'm Stuck...

Forum
Last Post
Threads / Messages

dlithehil

Member
Member
Joined
Jun 10, 2022
Messages
62
Points
8
Mysidian Dollar
499
I have this code, but it seems to randomize the number after each guess as opposed to keeping the same number (i.e. saying it's lower than 7 but when I guess 6 next, it says it's higher as if the number has changed).
It's also not counting down my attempts. It constantly says 2 attempts.

<?php

namespace View\Main;
use Controller\Main;
use Model\DomainModel\Member;
use Resource\Core\Registry;
use Resource\Core\View;
use Resource\GUI\Document\Comment;
use Resource\GUI\Component\Link;

class HiloView extends View{
public function index(){
$mysidia = Registry::get("mysidia");
$document = $this->document;
$thisMonth = date("m");
$today = date("d");
$number=$_POST['number_entered'];
$submitbutton=$_POST['submit'];
$randomnumber=rand(1,10);

$document->setTitle("Number Guessing Game??");

if (($mysidia->user->hiloday) != $today || ($mysidia->user->hilomonth) != $thismonth){
$guessesLeft=3;
$document->add(new Comment("
<form action='' method='POST'>
Guess a number between 1 and 10!
<input type='text' name='number_entered' value=''/><br><br>
Result:
"));
if ($submitbutton){
if (($number>0)&&($number<11)){
if (($number != $randomnumber)&&($guessesLeft == 0)){
$document->add(new Comment('Incorrect guess. The correct number was ', FALSE));
$document->add(new Comment($randomnumber, FALSE));
$document->add(new Comment('. <br>Don\'t worry, you still get some gold...'));
$mysidia->db->update("users", array("hiloday"=> $today), "username='{$mysidia->user->getUsername}'");
$mysidia->db->update("users", array("hilomonth"=>$thismonth), "username='{$mysidia->user->getUsername}'");
} elseif (($number != $randomnumber)&&($guessesLeft != 0)){
if ($number > $randomnumber){
$document->add(new Comment('Incorrect. My number is lower. Try again.'));
$guessesLeft -= 1;
$document->add(new Comment("You have ", FALSE));
$document->add(new Comment($guessesLeft, FALSE));
$document->add(new Comment (" guess(es) left."));
} else{
$document->add(new Comment("Incorrect. My number is higher. Try again."));
$guessesLeft-=1;
$document->add(new Comment("You have ", FALSE));
$document->add(new Comment($guessesLeft, FALSE));
$document->add(new Comment (" guess(es) left."));
}
} else{
$document->add(new Comment($randomnumber,FALSE));
$document-> add(new Comment(' is correct! You got it right. You get the grand prize!'));
$guessesLeft = 0;
$mysidia->db->update("users", array("hiloday"=> $today), "username='{$mysidia->user->getUsername}'");
$mysidia->db->update("users", array("hilomonth"=>$thismonth), "username='{$mysidia->user->getUsername}'");
}
}
}
$document->add(new Comment('
<br><br>
<input type="submit" name="submit" value="Guess"/><br><br>
</form>
'));
} else {
$document->add(new Comment("You've already played today. Come back tomorrow!"));
}
}
}
Since it's not counting down the attempts, it's not updating the database when they run out of attempts..... because they don't run out....... So I don't know if that part is working or not...
 
I have all except the number figured out. I even made a table in the database specifically for a random number....... It's still changing with each guess.

<?php

namespace View\Main;

use Controller\Main;
use Model\DomainModel\Member;
use Model\DomainModel\OwnedItem;
use Model\DomainModel\Item;
use Resource\Core\Registry;
use Resource\Core\View;
use Resource\GUI\Document\Comment;
use Resource\GUI\Component\Link;

class HiloView extends View
{
public function index()
{
$mysidia = Registry::get("mysidia");
$document = $this->document;
$thisMonth = date("m");
$today = date("d");
$number = $_POST['number_entered'];
$submitbutton = $_POST['submit'];
$randomnumber = $mysidia->random->randNo;
$guessesLeft = $mysidia->user->hiloguess;

$document->setTitle("Higher or Lower??");
$document->add(new Comment("WIP. Number will be random each guess instead of staying the same across all, but you'll still get a prize.... It's just a lot harder"));

if (($mysidia->random->randDay) != $today || ($mysidia->random->randMonth) != $thisMonth){
$randomnumber=rand(1,10);
$mysidia->db->update(
"random",
[
"randDay"=>$today,
"randMonth"=>$thisMonth,
"randNo"=>$randomnumber
],
"name='randomnum'"
);
}
if (($mysidia->user->hiloday) != $today || ($mysidia->user->hilomonth) != $thisMonth) {
$document->add(new Comment("
<form action='' method='POST'>
Guess a number between 1 and 10!
<input type='text' name='number_entered' value=''/><br><br>
Result:
"));

if (!empty($submitbutton) && !empty($number)) {
if (($number > 0) && ($number < 11)) {
if (($number != $randomnumber) && ($guessesLeft == 0)) {
$document->add(new Comment('Incorrect guess. The correct number was ', FALSE));
$document->add(new Comment($randomnumber, FALSE));
$document->add(new Comment('. <br>Don\'t worry, you still get some a gold medal...'));
$mysidia->db->update(
"users",
[
"hiloday" => $today,
"hilomonth" => $thisMonth,
],
"username='{$mysidia->user->getUsername()}'"
);
$ownedItem = new OwnedItem("Medal", $mysidia->user->getID());
$trueItem = new OwnedItem($ownedItem->getItemID(), $mysidia->user->getID());
$trueItem->add(1, $mysidia->user->getID());
} elseif (($number != $randomnumber) && ($guessesLeft != 0)) {
if ($number > $randomnumber) {
$document->add(new Comment('Incorrect. My number is lower. Try again.'));
} else {
$document->add(new Comment("Incorrect. My number is higher. Try again."));
}

$mysidia->db->update(
"users",
["hiloguess" => ($guessesLeft -= 1)],
"username='{$mysidia->user->getUsername()}'"
);

$document->add(new Comment("You have ", FALSE));
$document->add(new Comment($guessesLeft, FALSE));
$document->add(new Comment(" guess(es) left."));
} else {
$document->add(new Comment($randomnumber, FALSE));
$document->add(new Comment(' is correct! You got it right. You get the grand prize! Check your inventory!'));

$mysidia->db->update(
"users",
[
"hiloday" => $today,
"hilomonth" => $thisMonth,
],
"username='{$mysidia->user->getUsername()}'"
);
$ownedItem = new OwnedItem("Gem", $mysidia->user->getID());
$trueItem = new OwnedItem($ownedItem->getItemID(), $mysidia->user->getID());
$trueItem->add(1, $mysidia->user->getID());
}
}
}

$document->add(new Comment('
<br><br>
<input type="submit" name="submit" value="Guess"/><br><br>
</form>
'));
} else {
$document->add(new Comment("You've already played today. Come back tomorrow!"));
}
}
}
If you know where I'm goofing up, let me know please! I'm still playing around with it myself...
 

Similar threads

Users who are viewing this thread

  • Forum Contains New Posts
  • Forum Contains No New Posts

Forum statistics

Threads
4,277
Messages
33,119
Members
1,602
Latest member
BerrieMilk
BETA

Latest Threads

Latest Posts

Top