javababe Skrevet 30. april 2015 Del Skrevet 30. april 2015 (endret) Oblig 5 INFO132 V15 @ UiB Går grunnkurs i programmering og trenger litt hjelp til en oppgave. Temaet for oppgaven vi har fått er GUI, filhåndtering og unntak (exceptions).En del av GUI'et er allerede implementert i et løsningsforslag vi har fått utlevert. Man finner knapper for blant annet 'Attack' og 'Run', men disse gjør ingenting enda. Vi skal også legge til flere knapper og menyer. Når vi skal legge til en handling på knapper og menyer, må vi legge til lyttere (ActionListeners). Disse skal legges til fra en klasse som heter Game. Hvordan lager man en knapp for å angripe den farligste fienden i et spill? Kan metoden se noe slik ut: Public void selectHardest() { opponent hardest = null; int topScore = 0; for (opponent opponent : opponents) { int oppScore = opponent.getHealth() + opponent.getMaxDamage(); if (oppScore > topScore) { hardest = opponent; topScore = oppScore; } } opponents.remove(hardest); return hardest;} Endret 30. april 2015 av javababe Lenke til kommentar
jonny Skrevet 30. april 2015 Del Skrevet 30. april 2015 (endret) Metoden du har kode for har noen feil som må rettes før den kan benyttes, men det finner du nok ut av. Den returnerer kun den fienden som er farligst, men lager ingen knapp. Jeg vet ingenting om spillet, men hvilken fiende som er farligst kan sikkert diskuteres. Med ditt forslag vil f.eks. en fiende med 'health' = 100 og 'maxDamage' = 10 være farligere enn en fiende med 'health' = 80 og 'maxDamage' = 20. Faktorer som avstand fra fienden, treffsikkerheten til fienden og hastigheten til fienden vil kanskje være viktigere enn helsen? Endret 30. april 2015 av jonny Lenke til kommentar
Hazzel Skrevet 2. mai 2015 Del Skrevet 2. mai 2015 hmm, burde iallfall bli no sånn her (bruk stor bokstav for klasser Opponent i Java ellers dreper læreren deg ) public Opponent selectHardest() { Opponent hardest = null; int topScore = 0; for(Opponent opponent : opponents) { int oppScore = opponent.getHealth() + opponent.getMaxDamage(); if (oppScore > topScore) { hardest = opponent; topScore = oppScore; } } //opponents.remove(hardest); //why remove? return hardest; } Men denne koden vil ikke la deg gjøre noe i GUI'et, og er vanskelig å gi noen tips som passer inn i resten av koden uten å se noen eksempler.. Du må lage en knapp og legge den til på samme måte som allerede finnes i koden din, legge til en ActionListner på denne, få denne til å kalle selectHardest() for å så ta Opponent objektet denne metoden returnerer å få selectert denne på en måte i GUIet. 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å