Avatar billede kia Nybegynder
10. november 2000 - 14:19 Der er 2 kommentarer

Metode i abstrakt klasse

Karaktergenerator til et Adventurespil:

Vi har defineret en metode i vores abstrakte klasse Figur, der hedder standardSlag, hvor både antallet af terninger og deres antal af sider er variabler, der medsendes som lokalparametre:

/**Den abstrakte klasse Figur nedarver til subklasserne
Dvaerg, Elver og Menneske klasserne. Her defineres de fælles
variabler og metoder*/

abstract class Figur
{
    /**De abstrakte metoder SKAL defineres i subklasserne
    Dvaerg, Elver og Menneske*/
    // variablerne er private fordi andre klasser ikke skal kunne tilgå dem uden get/set metode
    private int styrke;
    private int intelligens;
    private int karisma;
    private int smidighed;
    private int robusthed;
    private final double rb = 2.5; // rb= robustheds * faktor
    private String navn;
   
       
    /**Metoden beregnRobusthed er fælles for subklasserne idet den
    ganger 2.5 med resultatet af \"terningeslaget\" for styrke*/
        public int beregnRobusthed(int styrke)
    {
        int r = (int) (styrke * rb );
        return r;
    }
   
    /**Metoden standardSlag er en generel metode, der skal kunne bruges
    hver gang der skal simuleres et terngekast, hvor både antallet af
    terninger antal oejne, er variabler, der kan variere fra tid og sted*/
    int oejne;
    int antalTerninger;
    int sum;
   
    public int standardSlag(int at, int oe)
    {
        oejne = oe;
        antalTerninger = at;
       
       
        Terning t = new Terning(oe);
        for (int terning = 1; terning <= at; terning++)
        {
            sum = sum + t.slaa();
        }
        return sum;
  }
}


Det er meningen at den skal kunne bruges overalt i spillet og karaktergeneratoren.
Metoden er baseret på en terningekastsimulator fra klassen Terning.java:

/**Klassen Terning indeholder konstruktor til terningeobjekter
samt metode der simulerer et terningekast*/
class Terning
{
    int oejne;
    Terning(int oe)
    {
        oejne = oe;
    }
    /**Metoden slaa simulerer et terningekast med en terning
    hvor antallet af sider/øjne er en variabel*/
    int slaa()
    {
        return ((int)(Math.random() * oejne )) + 1;
    }
}

Vi er ikke helt sikre på om metoden standardSlag fungerer. Vi bruger den i kontruktoren til f.eks. Dvaerg. I Dvaerg er der desuden defineret en toString-metode, og når vi instantierer et nyt opbjekt i KaraktergeneratorTester-klassen og kalder toStringmetoden får vi, at dens værdier er 0, og det forstår vi ikke helt pt:

/*Subklassen Dvaerg bruges til at instantiere objekter af typen Dvaerg
fra vores main-metode i klassen Karaktergenerator*/

class Dvaerg extends Figur
{
    private int magiImun;// Det er kun dværgen der har dette felt
    int styrke;
    int intelligens;
    int karisma;
    int smidighed;
    int robusthed;
   
    // Konstruktor
    Dvaerg ()
    {
        int styrke = standardSlag(3,6) + 4;
        int intelligens = standardSlag (3,6)+ 2;
        int karisma = standardSlag (3,6) -2;
        int smidighed = standardSlag (3,6)    -2;
        int robusthed = beregnRobusthed (styrke);
        int magiImun;
    }
    public String toString ()
    {
        String s = (\"Du har fået styrken:\" + styrke
        + \"\\nDit intelligensniveau er:\" + intelligens
        + \"\\nDin udstråling er:\" + karisma
        + \"\\nDu er så smidig:\" + smidighed
        + \"\\nSå mange tæsk kan du tåle:\" + robusthed);
        return s;
               
    } 
   
    // Konstruktor
    /*Dvaerg ( String navn );
    {
    //this ();
    //this.navn = navn;   
    }    */
   
               
}

MVH Kia, kiaskouw@hotmail.com
Avatar billede kanding Nybegynder
07. december 2000 - 00:18 #1
nice lingo, does it compile???? ;-)
Avatar billede grabit Nybegynder
11. marts 2001 - 23:22 #2
Hvis dette er lingo så er jeg en dingo! ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester