From 0ad31dcca37df9891ed5d5b70f12a966fc821c6d Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Thu, 3 Dec 2015 04:34:54 +0000 Subject: EiP - 07 --- ws2015/eip/blaetter/07/de/lmu/tcs/Ansicht.java | 64 ++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 ws2015/eip/blaetter/07/de/lmu/tcs/Ansicht.java (limited to 'ws2015/eip/blaetter/07/de/lmu/tcs/Ansicht.java') diff --git a/ws2015/eip/blaetter/07/de/lmu/tcs/Ansicht.java b/ws2015/eip/blaetter/07/de/lmu/tcs/Ansicht.java new file mode 100644 index 0000000..49d3375 --- /dev/null +++ b/ws2015/eip/blaetter/07/de/lmu/tcs/Ansicht.java @@ -0,0 +1,64 @@ +package de.lmu.tcs; + +import java.awt.*; + +/** + * View + * + * Created by jost on 24.11.15. + */ +public class Ansicht { + + private final GraphicsWindow fenster; + private final int max_x; //Breite + private final int max_y; //Höhe + private final int skalierung; + + + public Ansicht(int x, int y, int skalierung) { + this.max_x = x; + this.max_y = y; + this.skalierung = skalierung; + this.fenster = new GraphicsWindow(max_x * skalierung, max_y * skalierung); + } + + public void zeichenZelle(Zelle zelle) { + Position pos = zelle.getPosition(); + Rectangle box = new Rectangle(pos.getX() * skalierung, pos.getY() * skalierung, skalierung - 1, skalierung - 1); + if (zelle.istTot()) { + fenster.setColor(Param.ZELLENFARBE[0]); + } else { + fenster.setColor(Param.ZELLENFARBE[Math.min(zelle.alter() + 1, Param.ZELLENFARBE.length - 1)]); + } + fenster.fill(box); + } + + public void zeichneSpielfeld(Zelle[][] feld) { + fenster.clear(); + +// for (int x = 0; x < max_x; x++) { +// for (int y = 0; y < max_y; y++) { +// zeichenZelle(feld[x][y]); +// } +// Äquivalente Alternative ohne explizite Indizes: + for (Zelle[] zeile : feld) { + for (Zelle zelle : zeile) { + zeichenZelle(zelle); + } + } + } + + public Position getClick() { + Point point = fenster.mouseClick(); + Position result = new Position(point.x / skalierung, point.y /skalierung); + return result; + } + + public void sleep(long delay) { + fenster.sleep(delay); + } + + public void setText(String message) { + fenster.setText(message); + } +} -- cgit v1.2.3