Triple Eye Industrieel Ingenieur Informatica Algemeen Intranet Tweede jaar INWE Programmeren van GUI's GUI's Java
Labo GUI's 09-10: Java Swing reeks 5

Labo GUI's 09-10: Java Swing reeks 5

Opdracht: maak een schuifpuzzel, analoog aan de modeloplossing SchuifpuzzelOpl.jar.

Functionaliteit

  • Je kunt een vakje dat naast het lege vakje ligt verschuiven door erop te klikken.
  • Je kunt ook vakjes verschuiven d.m.v. de pijltjestoetsen.
  • Indien de puzzel opgelost is (alle vakjes in volgorde van links naar rechts, het lege vakje rechtsonder), verschijnt er een gepast boodschapvenster.
  • Met de knop 'shuffle' of het gelijknamige menu-item kun je de puzzel "door elkaar schudden"
  • Je kunt de grootte van de puzzel instellen d.m.v. een spinner. In dat geval krijg je telkens een nieuwe (random) puzzel.

    Ontwerp

    Probeer data (model) en presentatie (view) te scheiden. Gebruik hiervoor het observer-patroon.

    De puzzle bestaat uit dim×dim vakjes. Elk vakje heeft een plaats (twee coordinaten) en bevat een unieke waarde tussen 1 en dim×dim. Het is handig om het lege vakje waarde nul te geven.

    In principe kun je kiezen hoe je de gegevens bijhoudt: de waarde van elk vakje, ofwel de plaats (coordinaat) van elke waarde. Dit laatste blijkt handiger uit te vallen.
    Je kunt ook beide representaties combineren, maar pas dan op voor tegenstrijdigheden.

    Je kunt een onderscheid maken tussen pixelcoordinaten en "virtuele" puzzelcoordinaten. Het tweede vakje bovenaan heeft bv. virtuele coordinaten (1,0).


  • W. Schepens 07/11/2008

    Welkom | Hogeschool Gent | INWE | Studentenserver | Docentenserver | Intranet