diff options
Diffstat (limited to 'ws2015/eip/blaetter/07/H7-1A/de/lmu/tcs/Ansicht.java')
-rw-r--r-- | ws2015/eip/blaetter/07/H7-1A/de/lmu/tcs/Ansicht.java | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/ws2015/eip/blaetter/07/H7-1A/de/lmu/tcs/Ansicht.java b/ws2015/eip/blaetter/07/H7-1A/de/lmu/tcs/Ansicht.java new file mode 100644 index 0000000..f643974 --- /dev/null +++ b/ws2015/eip/blaetter/07/H7-1A/de/lmu/tcs/Ansicht.java | |||
@@ -0,0 +1,64 @@ | |||
1 | package de.lmu.tcs; | ||
2 | |||
3 | import java.awt.*; | ||
4 | |||
5 | /** | ||
6 | * View | ||
7 | * | ||
8 | * Created by jost on 24.11.15. | ||
9 | */ | ||
10 | public class Ansicht { | ||
11 | |||
12 | private final GraphicsWindow fenster; | ||
13 | private final int max_x; //Breite | ||
14 | private final int max_y; //Höhe | ||
15 | private final int skalierung; | ||
16 | |||
17 | |||
18 | public Ansicht(int x, int y, int skalierung) { | ||
19 | this.max_x = x; | ||
20 | this.max_y = y; | ||
21 | this.skalierung = skalierung; | ||
22 | this.fenster = new GraphicsWindow(max_x * skalierung, max_y * skalierung); | ||
23 | } | ||
24 | |||
25 | public void zeichenZelle(Zelle zelle) { | ||
26 | Position pos = zelle.getPosition(); | ||
27 | Rectangle box = new Rectangle(pos.getX() * skalierung, pos.getY() * skalierung, skalierung - 1, skalierung - 1); | ||
28 | if (zelle.istLebendig()) { | ||
29 | fenster.setColor(Param.FARBE_LEBENDIG); | ||
30 | } else { | ||
31 | fenster.setColor(Param.FARBE_TOT); | ||
32 | } | ||
33 | fenster.fill(box); | ||
34 | } | ||
35 | |||
36 | public void zeichneSpielfeld(Zelle[][] feld) { | ||
37 | fenster.clear(); | ||
38 | |||
39 | // for (int x = 0; x < max_x; x++) { | ||
40 | // for (int y = 0; y < max_y; y++) { | ||
41 | // zeichenZelle(feld[x][y]); | ||
42 | // } | ||
43 | // Äquivalente Alternative ohne explizite Indizes: | ||
44 | for (Zelle[] zeile : feld) { | ||
45 | for (Zelle zelle : zeile) { | ||
46 | zeichenZelle(zelle); | ||
47 | } | ||
48 | } | ||
49 | } | ||
50 | |||
51 | public Position getClick() { | ||
52 | Point point = fenster.mouseClick(); | ||
53 | Position result = new Position(point.x / skalierung, point.y /skalierung); | ||
54 | return result; | ||
55 | } | ||
56 | |||
57 | public void sleep(long delay) { | ||
58 | fenster.sleep(delay); | ||
59 | } | ||
60 | |||
61 | public void setText(String message) { | ||
62 | fenster.setText(message); | ||
63 | } | ||
64 | } | ||