Kmom01 oophp

  • Författare
  • Meddelande

Daniel17

*nix-hackare

  • Inlägg: 114
  • Blev medlem: 03 sep 2017, 13:05

Kmom01 oophp

Inlägg17 apr 2019, 22:06

Hej
Jag är helt strandad på denna Guess-uppgiften. Efter att ha sett instruktionsvideosarna så är ju uppgiften tänkt att lösas på ett helt annat sätt som jag uppfattar det. All kod ska ligga i klassen. Jag vet över huvud taget inte hur jag ska ta mig an uppgiften och hittar dåligt med info på webben om hur man utformar en klass så som det är tänkt i uppgiften. Behöver därför vägledning hur jag kommer vidare. Här är en början till kod:

Kod: Markera allt
<?php
/**
* Guess my number, a class supporting the game through GET, POST and SESSION.
*/
class Guess
{
    /**
     * @var int $number   The current secret number.
     * @var int $tries    Number of tries a guess has been made.
    */

    public $number;
    public $tries;




    /**
     * Constructor to initiate the object with current game settings,
     * if available. Randomize the current number if no value is sent in.
     *
     * @param int $number The current secret number, default -1 to initiate
     *                    the number from start.
     * @param int $tries  Number of tries a guess has been made,
     *                    default 6.
     */

    public function __construct(int $number = -1, int $tries = 6) {

        $this->number = $number;
        $this->tries = $tries;
    }




    /**
     * Randomize the secret number between 1 and 100 to initiate a new game.
     *
     * @return void
     */

    public function random() {
        $this->number = rand(1, 100);

    }
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11057
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Kmom01 oophp

Inlägg18 apr 2019, 09:34

Hur man skriver klasser och jobbar med dem kan vi se i guiden, så jag gissar du har koll på den.

I videoserien kodar jag en stor del av spelet för att visa hur man skriver koden i sin sidkontroller. Det är en bra början att koda hela spelet i en sidkontroller, utan att använda en klass. Det är kodning som du känner igen sedan htmlphp-kursen och en bra och nödvändig repetition av hur man använder GET, POST och SESSION samt eventuellt redirect, vi hanterade dessa saker i htmlphp men det är vanligt att man snabbt glömmer hur de funkar.

I uppgiften brukar ett problem vara just hanteringen av GET, POST, SESSION och redirect.

Så, tipset är att koda spelet i en sidkontroller först, och sedan bygga upp din klass och flytta över kod till klassen från sidkontrollern.
...
..:
.... /mos

Daniel17

*nix-hackare

  • Inlägg: 114
  • Blev medlem: 03 sep 2017, 13:05

Re: Kmom01 oophp

Inlägg22 apr 2019, 08:46

Nu har jag gått igenom videoguiden igen och allt fungerar.

När jag går in i Guess-filen och ska skapa klassen anar jag hur koden ska delas upp men kan inte klura ut syntaxen.

T.ex. hur följande kod ska läggas in under vilken funktion:

Kod: Markera allt
if ($doInit || $number === null) {
    $number = rand(1, 100);
    $tries = 5;
    //header("Location: index_POST.php?tries=$tries&number=$number");
} elseif ($doGuess) {
    $tries -= 1;
    if ($guess === $number) {
        $res = "CORRECT";
    } elseif ($guess > $number) {
        $res = "TOO HIGH";
    } else {
        $res = "TOO LOW";
    }
}
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11057
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Kmom01 oophp

Inlägg23 apr 2019, 09:20

Syntaxen hjälper dig guiden att förstå. Syntax handlar om hur man skriver klassens konstruktion, dess medlemsvariabler och dess metoder.

I koden du visar har du två sektioner, en "init" och en "guess".

Försök göra en klass som har en metod "init" och en "guess".

Klassen kan ha medlemsvariabler som sparar antalet gissningar gjorda och det gissade numret.

Börja med en liten klass och bygg det i små steg.

Behåll den fungerande koden och kommentera bort den efterhand som du ersätter den med anrop till klassen.
...
..:
.... /mos

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 17 gäster