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); } }