"goal1", "goal2", "goal3" vervangen door "goal"+i ?

Status
Niet open voor verdere reacties.

gast0140

Gebruiker
Lid geworden
12 nov 2009
Berichten
83
Hoi,

Ik ben bezig met een programmaatje op basis van de ACM-library.
Nu heb ik de volgende code welke uitstekend werkt:
Code:
changePoint(A, 100, 50);

public void changePoint(GPoint point, double x, double y){
  switch(point){
  case "A":
    Agoal.setLocation(x, y);
    break;
  case "B":
    Bgoal.setLocation(x, y);
    break;
  case "C":
    Cgoal.setLocation(x, y);
    break;
  }
}
, maar nu wil ik deze versimpelen, in minder regels schrijven.
Ik wil namelijk later ook de punten D, E, F, etc erin zetten.
Nu dacht ik aan iets zoals:
Code:
changePoint(A, 100, 50);

public void changePoint(GPoint point, double x, double y){
  (point+"goal").setLocation(x, y);
}
,maar dit werkt totaal niet.

Kan iemand mij helpen om deze regels te verkorten?
Misschien door mij te helpen met mijn bedachte oplossing of door zelf met een goed idee te komen.

Alvast bedakt,
gast0140
 
Je zou een lijst or array met GPoints kunnen maken en de juiste GPoint zoeken, dan de lokatie aanpassen. Is er geen GPoint gevonden, waarvan de lokatie veranderd kan worden, dan maak je een nieuwe aan.

Code:
List<GPoint> points = new List<GPoint>();

public void changeLocation(GPoint changePoint, int x, int y) {
     boolean found = false;
     for(GPoint point : points) { //we lopen door de lijst points heen en pakken elk element er stuk voor stuk uit.
         if(changePoint.equals(point)) { //natuurlijk kan dit ook op basis van eigenschappen van een point; bijvoorbeeld: point.getLetter() == changePoint.getLetter() (gebruikmakende van characters).
             point.setLocation(x, y);
             found = true;
             break;
         }
   }
   
   if(found == false)
        changePoint.setLocation(x, y);
        points.add(changePoint);
   }
}

Ik wil nog wel even opmerken dat dit een simpel voorbeeld is. Als je weet dat het punt er altijd in zit kan je de meeste checks weglaten.

Groet,
NewbiProgrammer
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan