jemartinsen81 Skrevet 17. november 2007 Del Skrevet 17. november 2007 (endret) 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 17. november 2007 av jemartinsen81 Lenke til kommentar
pgdx Skrevet 17. november 2007 Del Skrevet 17. november 2007 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
Cyberfrog Skrevet 17. november 2007 Del Skrevet 17. november 2007 "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
jemartinsen81 Skrevet 18. november 2007 Forfatter Del Skrevet 18. november 2007 Aha! Takk skal dere ha begge to, dette var veldig fint forklart. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå