WebProg-2014/Gyakorlat9

A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „== BattleSudoku == Használhatjátok az elõzõ gyak megoldását kiindulópontnak, de innen is letölthetitek a kellõ file-okat: [http://math.bme.hu/~kkovacs/webprog…”)
 
24. sor: 24. sor:
 
* Van már kiválasztott, ezt deselectelni kell és az újat select-elni.
 
* Van már kiválasztott, ezt deselectelni kell és az újat select-elni.
 
Használjátok a '''getFieldByCoord''' metódust amit még korábban írtunk.
 
Használjátok a '''getFieldByCoord''' metódust amit még korábban írtunk.
 +
 +
==== Game módosítás ====
 +
 +
Menjünk át kicsit a '''Game''' osztályra, ahol a '''mouseClick''' metódust módosítsuk úgy, hogy a '''switchSelectedByCoord'''-ot hívja meg a '''selectByCoord''' helyett.
 +
 +
Futtassuk a játékot és elméletileg mostmár csak egy mezõt tudunk egyszerre kijelölni.
 +
 +
 +
=== KeyboardController ===

A lap 2015. április 14., 14:03-kori változata

Tartalomjegyzék

BattleSudoku

Használhatjátok az elõzõ gyak megoldását kiindulópontnak, de innen is letölthetitek a kellõ file-okat: gyak8_megold.zip.

Package

Hozzatok létre egy új package-et controllers névvel (jobb klikk a project-re -> new -> package). Majd mozgassátok át ide a MouseController osztályt (bal klikk az osztályra, tartsátok lenyomva és húzzátok át a controllers package-be).

Selected Field

A GameBoard osztályt fogjuk kiegészíteni, méghozzá úgy, hogy mostantól csak egy mezõt lehessen kiválasztani és ezt a mezõt tároljuk is egy adattagban.

Hozzatok létre egy Field típusú adattagot selectedField néven, ennek az alapértelmezett értéke legyen null (ami azt jelöli, hogy nem mutat semmire ez a változó, mi pedig ezzel fogjuk jelezni, hogy nincs semmi kiválasztva).

isSomethingSelected

Írjatok egy metódust isSomethingSelected névvel, ami visszaadja, hogy valami ki van-e választva vagy nincs. (Lehet olyat írni, hogy valamiValtozo == null.)

switchSelectedByCoord

Írjatok egy switchSelectedByCoord metódust, ami kap két int-et (x, y) és megváltoztatja a kiválasztott mezõt arra ami ezen a koordinátán található. A következõ három eset lehetséges:

  • Nincs kiválasztva semmi
  • Az van már kiválasztva amit most is ki akarnánk változtatni (ebben az esetben szüntessük meg a kiválasztását és állítsuk a selectedField adattagot null-ra.)
  • Van már kiválasztott, ezt deselectelni kell és az újat select-elni.

Használjátok a getFieldByCoord metódust amit még korábban írtunk.

Game módosítás

Menjünk át kicsit a Game osztályra, ahol a mouseClick metódust módosítsuk úgy, hogy a switchSelectedByCoord-ot hívja meg a selectByCoord helyett.

Futtassuk a játékot és elméletileg mostmár csak egy mezõt tudunk egyszerre kijelölni.


KeyboardController

Személyes eszközök