Folien - Posdorfer

Java in Greenfoot:
Invasion der
Greeps!
präsentiert im Rahmen des
Schnupperstudiums an der
Universität Hamburg von:
Dr. Axel Schmolitzky
Wolf Posdorfer
Greeps – Kurzübersicht
n 
n 
Greeps ist eine Simulation, die mit der
Programmiersprache Java in der
Entwicklungsumgebung Greenfoot
programmiert wurde.
Durch Veränderung der Klasse Greep sollt ihr
den Akteuren der Simulation etwas Intelligenz
einprogrammieren, damit sie möglichst viele
Tomaten in ihr Mutterschiff bringen können.
Voraussetzungen?
n 
n 
n 
Fast keine – ihr müsst nicht programmieren
können!
Aber Spaß am logischen Denken und dem
Lösen von Denksportaufgaben hilft sehr.
Wer von euch hat schon Erfahrung im
Programmieren? In welchen Sprachen?
Was ist Greenfoot?
n 
n 
n 
n 
n 
Greenfoot ist eine Programmierumgebung
für Simulationen und Spiele.
Die verwendete Programmiersprache ist Java.
Java ist heutzutage sehr verbreitet und wird
auch in der Uni als erste Programmiersprache
gelernt.
Programmieren heißt: dem Computer sagen,
was er tun soll!
Greenfoot ist kostenlos im Internet verfügbar!
Greenfoot in Aktion
DEMO
Ablauf dieser Woche
n 
n 
n 
n 
Ihr arbeitet jeweils zu zweit an einem Rechner.
Ihr bearbeitet ausschließlich die Klasse Greep.
Jeden Tag werden eure Greeps ein bisschen
schlauer und sammeln (hoffentlich) mehr
Tomaten – jeweils am Ende eines Tages (ab
morgen) wird eure Implementierung gegen die
der anderen Teams antreten.
Wer die meisten Tomaten sammelt, gewinnt –
aber der Spaß soll im Vordergrund stehen!
Der Hauptdarsteller –
Erste Schritte
n 
n 
In der Methode act() könnt ihr eurem
Hauptdarsteller sagen, was er tun soll.
Was passiert, wenn ihr folgenden Befehl
in die Methode schreibt?
public void act()
{
move();
}
Steuerung - Konzept
if (Bedingung)
{
Aktion();
}
Wenn die Bedingung
wahr ist...
...dann führe die
Aktion aus!
Hier das Semikolon
nicht vergessen!
Die Regeln für Greeps
n 
n 
n 
n 
n 
n 
Regel 1 Nur die Klasse Greep darf bearbeitet werden. Keine andere Klasse
darf verändert oder erzeugt werden.
Regel 2 Das „Gedächtnis“ eines Greep (ein wenig allgemein nutzbarer
Speicher) darf nicht vergrößert werden. Das heißt: Ihr dürft keine Felder
hinzufügen ( es sei denn, sie sind final).
Regel 3 Greeps kommunizieren nicht direkt. Sie rufen gegenseitig keine
Methoden auf und dürfen auch nicht die Felder anderer Greeps einsehen.
Regel 4 Keine Fernsicht. Ihr dürft nur in die unmittelbare Umgebung eines
Greeps schauen. Greeps sind fast blind und können einfach nicht sehr weit
sehen!
Regel 5 Keine Erzeugung neuer Objekte. Ihr dürft keine Exemplare von
Klassen des Szenarios erzeugen (von benutzerdefinierten Klassen wie
Greep oder Paint). Greeps haben keine magischen Kräfte – sie können
nicht einfach Dinge aus dem Nichts erzeugen.
Regel 6 Kein Teleportieren. Methoden der Klasse Actor, die über die
normale Bewegung mit move hinausgehen (wie setLocation), dürfen nicht
benutzt werden.
Tipps
n 
n 
n 
n 
n 
n 
Die Klasse Greep ist eine Subklasse von Creature und Actor. Ihr dürft alle
geerbten Methoden dieser Klassen verwenden (nur für Actor gibt es eine
Einschränkung, siehe Regel 6).
Greeps können kommunizieren, indem sie Farbkleckse (in drei Farben!) auf
den Boden spucken. Diese Farbkleckse können benutzt werden, um
Informationen für andere Greeps zu liefern. Greeps kommunzieren nicht
direkt miteinander (Regel 3).
Greeps können nicht allein Tomaten aufladen — sie können nur Tomaten
auf andere Greeps laden.
Greeps können nicht schwimmen. Ja, sie hassen es sogar, nass zu werden!
Dummerweise gibt es aber eine Menge Wasser auf der Erde…
Greeps haben nur ein begrenztes Gedächtnis: Ein Byte und zwei boolesche
Werte. Ihr könnt dieses Gedächtnis nutzen, wie immer ihr wollt, aber ihr dürft
es nicht erweitern.
Greeps können nur in ihrer unmittelbaren Nähe etwas erkennen. (Greenfoot
bietet prinzipiell die Möglichkeit, weiter in die Umgebung zu schauen, aber
für diesen Wettbewerb sind diese Methoden nicht zugelassen.)
Hilfe beim Programmieren
n 
n 
n 
n 
Heute gibt es nur eine kurze Einführung in die
objektorientierte Programmierung.
Ihr könnt mit kleinen Lernfortschritten viel
erreichen, habt aber fast sicher nicht von
Beginn an die Kenntnisse, um eure Greeps
richtig schlau zu machen.
In den nächsten Tagen wird immer jemand für
Fragen zur Verfügung stehen – ihr solltet das
so oft wie möglich nutzen!
Ansonsten gilt: Learning by doing!
Koordinaten
n 
n 
Alles, was ihr auf einem
Bildschirm sehen könnt,
setzt sich aus vielen
kleinen Bildschirmpunkten
(Pixeln) zusammen.
Die Greenfoot-Welt
besteht aus Zellen, die bei
Greeps einem Pixel
entsprechen.