Gå til innhold

Ang. opprettelse av nytt objekt inne i metodekall


Anbefalte innlegg

Jeg sitter temmelig fast i en oppgave jeg jobber med nå. Det skal lages et spill, og dette spillet består blandt annet av spillklient-klassen og spiller-klassen. Logikken for spilleren sitt spill skal ligge i spiller-klassen, under et metodekall ved navn "public void spill (Terning t)", som altså vil opprette et nytt terning-objekt. Problemet mitt er at jeg ikke forstår hvordan jeg skal bruke dette metodekallet skikkelig, fordi jeg ikke vet hva jeg skal sette i parantesen. Hva slags parameter skal jeg sende til spill()? Jeg er ikke vant til å opprette et nytt objekt (Terning t) inne i et parameter, men oppgaven krever at metodekallet skal ha nettopp denne formen.

 

På forhånd takk. :)

Endret av jemartinsen81
Lenke til kommentar
Videoannonse
Annonse

Jeg vet ikke helt om jeg forstår hva du mener. Jeg tviler på at du skal opprette et nytt terningobjekt, det høres mer ut som om dette er det som skjer:

 

Spillklient oppretter (minst én) spiller, og triller en terning (som like gjerne kunne vært en int, men skal dere lære dere objektorientert, er det like greit å lage et helt objekt). Dette objektet får du som spiller, og blir bedt om å gjøre noe (eller ikke).

 

I spill-metoden din skal muligens noe slikt skje:

public void spill(Terning t) {
 int verdi = t.getValue(); // dette er altså verdien (1-6)
 // søk gjennom spilltreet ditt v.h.a. alpha-beta-pruning, eller hva dere gjør på kurset
 Posisjon p = new Posisjon(x,y); // der x og y er verdier du har funnet frem til
 spillKlient.doMove(p); // her gir du spillklienten ditt trekk
}

 

Spillklienten kjører derfor mest sannsynlig metoden spill på alle spillere, og gir alle spillerne et tilfeldig terningkast (m.a.o. et pseudotilfeldig tall fra 1 til 6). Spiller-klassen skal deretter "svare" klienten ved å kjøre en metode på SpillKlient med parameter hvilket trekk den ønsker å gjøre.

Lenke til kommentar

"public void spill (Terning t)" er ikke et metodekall, men en metodesignatur.

 

Den sier du skal ha en metode som får inn en terning som parameter, og i selve metoden skal du mest trolig bruke denne terningen for å gjøre noe spillogikk-relatert ;).

 

// F.eks (jeg aner ikke hvilke konstruktører dere bruker)

Spiller nils = new Spiller("Nils");

// terning antar jeg er et tidligere opprettet terning-objekt

nils.spill(terning); // DETTE er et metodekall

 

Du kan forøvrig opprette objekter direkte i et metodekall som nedenfor, men det er minst like greit å opprette objektet før metodekallet:

// Antar kontruktør for terning tar en int som parameter

nils.spill(new Terning(verdi));

 

 

Aner ikke om dette hjelpe, men jeg prøvde.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...