Vereenvoudigen met lus.

Status
Niet open voor verdere reacties.

revived

Gebruiker
Lid geworden
21 jan 2013
Berichten
13
Beste
ik heb hier een code (het werkt) maar ik weet het het eenvoudiger kan met een lus alleen weet ik niet hoe.
Ik ben bezig met de Swing app maken van het spel Boggle het console app is al af nu dit nog.

Alvast bedankt
HTML:
 getbordimentie is een waarde van een andere klasse 

        for(int r=0;r<spel.getBordDimensies();r++ )
        {
            for(int k=0; k< spel.bordDimensies; k++)
            {
                verwerkLetters(spel.getLetter(r, k));
            }
        }
    }


    public void verwerkLetters(char letter)
    {
        ImageIcon charA= new ImageIcon(getClass().getResource("images/a.png"));
        ImageIcon charB= new ImageIcon(getClass().getResource("images/b.png"));
        ImageIcon charC= new ImageIcon(getClass().getResource("images/c.png"));
        ImageIcon charD= new ImageIcon(getClass().getResource("images/d.png"));
        ImageIcon charE= new ImageIcon(getClass().getResource("images/e.png"));
        ImageIcon charF= new ImageIcon(getClass().getResource("images/f.png"));
        ImageIcon charG= new ImageIcon(getClass().getResource("images/g.png"));
        ImageIcon charH= new ImageIcon(getClass().getResource("images/h.png"));
        ImageIcon charI= new ImageIcon(getClass().getResource("images/i.png"));
        ImageIcon charJ= new ImageIcon(getClass().getResource("images/j.png"));
        ImageIcon charK= new ImageIcon(getClass().getResource("images/k.png"));
        ImageIcon charL= new ImageIcon(getClass().getResource("images/l.png"));
        ImageIcon charM= new ImageIcon(getClass().getResource("images/m.png"));
        ImageIcon charN= new ImageIcon(getClass().getResource("images/n.png"));

        ImageIcon charO= new ImageIcon(getClass().getResource("images/o.png"));
        ImageIcon charP= new ImageIcon(getClass().getResource("images/p.png"));
        ImageIcon charQ= new ImageIcon(getClass().getResource("images/q.png"));
        ImageIcon charR= new ImageIcon(getClass().getResource("images/r.png"));
        ImageIcon charS= new ImageIcon(getClass().getResource("images/s.png"));
        ImageIcon charT= new ImageIcon(getClass().getResource("images/t.png"));
        ImageIcon charU= new ImageIcon(getClass().getResource("images/u.png"));
        ImageIcon charV= new ImageIcon(getClass().getResource("images/v.png"));
        ImageIcon charW= new ImageIcon(getClass().getResource("images/w.png"));
        ImageIcon charX= new ImageIcon(getClass().getResource("images/x.png"));
        ImageIcon charY= new ImageIcon(getClass().getResource("images/y.png"));
        ImageIcon charZ= new ImageIcon(getClass().getResource("images/z.png"));

         switch (letter)
         {
             case 'A': panelCenter.add(new JLabel(charA));

                 break;
             case 'B': panelCenter.add(new JLabel(charB));      break;
             case 'C': panelCenter.add(new JLabel(charC));      break;
             case 'D': panelCenter.add(new JLabel(charD));      break;
             case 'E': panelCenter.add(new JLabel(charE));      break;
             case 'F': panelCenter.add(new JLabel(charF));      break;
             case 'G': panelCenter.add(new JLabel(charG));      break;
             case 'H': panelCenter.add(new JLabel(charH));      break;
             case 'I': panelCenter.add(new JLabel(charI));      break;
             case 'J': panelCenter.add(new JLabel(charJ));      break;
             case 'K': panelCenter.add(new JLabel(charK));      break;
             case 'L': panelCenter.add(new JLabel(charL));      break;
             case 'M': panelCenter.add(new JLabel(charM));      break;
             case 'N': panelCenter.add(new JLabel(charN));      break;

             case 'O': panelCenter.add(new JLabel(charO));      break;
             case 'P': panelCenter.add(new JLabel(charP));      break;
             case 'Q': panelCenter.add(new JLabel(charQ));      break;
             case 'R': panelCenter.add(new JLabel(charR));      break;
             case 'S': panelCenter.add(new JLabel(charS));      break;
             case 'T': panelCenter.add(new JLabel(charT));      break;
             case 'U': panelCenter.add(new JLabel(charU));      break;
             case 'V': panelCenter.add(new JLabel(charV));      break;
             case 'W': panelCenter.add(new JLabel(charW));      break;
             case 'X': panelCenter.add(new JLabel(charX));      break;
             case 'Y': panelCenter.add(new JLabel(charY));      break;
             case 'Z': panelCenter.add(new JLabel(charZ));      break;

             default: panelCenter.add(new JLabel(":("));


         }

    }
 
Ik weet niet of het precies zo werkend is want ik heb al een tijd geen java geprogrammeerd maar hier zou je wel wat verder mee moeten kunnen komen.

Dit stuk is om het gedeelte boven de switch te vervangen
Code:
ArrayList list = new ArrayList(ImageIcon);

for(i = 0; i < 26; i++){
  list.add(new ImageIcon(getClass().getResource("images/"+ (Char)('a' + i) + ".png")));
}

Arraylist info: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/ArrayList.html


Een char heeft een integer waarde. 'a' = 97, 'b' = 98 etc.
Info: http://www.asciitable.com/
http://www.java2s.com/Questions_And_Answers/Java-Data-Type/Integer/char.htm

Wat ik hier doe is een char gebruiken in de string en daar een integer value bij-op tellen.

Daarnaast doe ik een Typecast naar een character om er zeker van te zijn dat hij niet de integer value in de string zet en geen error zou moeten veroorzaken.
Info: http://www.java-samples.com/showtutorial.php?tutorialid=1170
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan