Initial commit
8
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
*.class
|
||||
*.ctxt
|
||||
*.sh
|
||||
repo.adoc
|
||||
*.~lock
|
||||
/alt
|
||||
Gemfile
|
||||
Gemfile.lock
|
||||
BIN
1_hintergrund/01_hintergrund.odt
Normal file
BIN
1_hintergrund/02_stundenverteilung.odt
Normal file
BIN
2_kopiervorlagen/01_GFRobot_AB_01.odt
Normal file
BIN
2_kopiervorlagen/01_GFRobot_AB_01.pdf
Normal file
BIN
2_kopiervorlagen/01_GFRobot_Alles.pdf
Normal file
BIN
2_kopiervorlagen/02_GFRobot_AB_02.odt
Normal file
BIN
2_kopiervorlagen/02_GFRobot_AB_02.pdf
Normal file
BIN
2_kopiervorlagen/03_GFRobot_AB_03.odt
Normal file
BIN
2_kopiervorlagen/03_GFRobot_AB_03.pdf
Normal file
BIN
2_kopiervorlagen/04_GFRobot_AB_04.odt
Normal file
BIN
2_kopiervorlagen/04_GFRobot_AB_04.pdf
Normal file
BIN
2_kopiervorlagen/05_GFRobot_AB_05.odt
Normal file
BIN
2_kopiervorlagen/05_GFRobot_AB_05.pdf
Normal file
BIN
2_kopiervorlagen/06_GFRobot_AB_06.odt
Normal file
BIN
2_kopiervorlagen/06_GFRobot_AB_06.pdf
Normal file
BIN
2_kopiervorlagen/07_GFRobot_AB_07.odt
Normal file
BIN
2_kopiervorlagen/07_GFRobot_AB_07.pdf
Normal file
BIN
2_kopiervorlagen/08_GFRobot_AB_08.odt
Normal file
BIN
2_kopiervorlagen/08_GFRobot_AB_08.pdf
Normal file
BIN
2_kopiervorlagen/09_GFRobot_AB_09.odt
Normal file
BIN
2_kopiervorlagen/09_GFRobot_AB_09.pdf
Normal file
BIN
2_kopiervorlagen/10_GFRobot_AB_10.odt
Normal file
BIN
2_kopiervorlagen/10_GFRobot_AB_10.pdf
Normal file
112
2_kopiervorlagen/Bildnachweise.html
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Bildnachweise</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<head>
|
||||
<body>
|
||||
<h2>Akku</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Akku.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/de/users/Clker-Free-Vector-Images-3736/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=312747">Clker-Free-Vector-Images</a> auf <a href="https://pixabay.com/de/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=312747">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/de/vectors/batterie-elektrische-strom-positiv-312747/">https://pixabay.com/de/vectors/batterie-elektrische-strom-positiv-312747/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Fass+Atommuell</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Fass.png" style="float:left"> <img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Atommuell.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/users/OpenClipart-Vectors-30363/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=146440">OpenClipart-Vectors</a> auf <a href="https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=146440">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/vectors/oil-barrel-black-mineral-oil-146440/">https://pixabay.com/vectors/oil-barrel-black-mineral-oil-146440/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
</body>
|
||||
<h2>Feuer</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Feuer.png" style="float:left"> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<h2>Platten mit und ohne Knöpfe/Schalter usw</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Wand.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Rufknopf.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\RufknopfAus.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\SchalterEin.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\SchalterAus.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Schloss.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Stromquelle1.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Stromquelle2.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Stromquelle3.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Stromquelle4.png">
|
||||
<br>Bild auf Grundlage von <a href="https://pixabay.com/users/stux-12364/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=186943">Thanks for your Like • donations welcome</a> auf <a href="https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=186943">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/photos/mdf-platte-structure-fund-wood-186943/">https://pixabay.com/photos/mdf-platte-structure-fund-wood-186943/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Strom</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Strom.png" style="float:left"> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<br><br>
|
||||
<h2>Steine</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Steine.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/de/users/Clker-Free-Vector-Images-3736/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=48279">Clker-Free-Vector-Images</a> auf <a href="https://pixabay.com/de/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=48279">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/de/vectors/felsen-felsbrocken-stein-48279/">https://pixabay.com/de/vectors/felsen-felsbrocken-stein-48279/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Roboter</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Roboter.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Robby.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Robita.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Robocount.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Robson.png">
|
||||
<br>Bild auf <a href="https://publicdomainvectors.org">Public Domain Vectors</a>
|
||||
<br>URL: <a href="https://publicdomainvectors.org/de/kostenlose-vektorgrafiken/Comic-Roboter/47643.html">https://publicdomainvectors.org/de/kostenlose-vektorgrafiken/Comic-Roboter/47643.html</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Public Domain
|
||||
<h2>Feuerlöscher</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Feuerloescher.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/users/JJuni-27151/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1139909">JJuni</a> auf <a href="https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1139909">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/illustrations/fire-extinguisher-fire-fire-truck-1139909/">https://pixabay.com/illustrations/fire-extinguisher-fire-fire-truck-1139909/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Bombe</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Bombe.png" style="float:left">
|
||||
Bild von<a href="https://pixabay.com/fr/users/Clker-Free-Vector-Images-3736/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=33424">Clker-Free-Vector-Images</a> auf <a href="https://pixabay.com/fr/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=33424">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/fr/vectors/bombe-engin-explosif-grenade-33424/">https://pixabay.com/fr/vectors/bombe-engin-explosif-grenade-33424/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Diamant</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Diamant.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/de/users/Wild0ne-920941/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1221161">M. Maggs</a> auf <a href="https://pixabay.com/de/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1221161">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/de/vectors/gems-edelsteine-wertvolle-juwel-1221161/">https://pixabay.com/de/vectors/gems-edelsteine-wertvolle-juwel-1221161/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Einsatzleiter</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Person.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/de/users/kasiagrafik-10628923/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3812661">kasiagrafik</a> auf <a href="https://pixabay.com/de/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3812661">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/de/illustrations/feuerwehrmann-feuer-löschen-3812661/">https://pixabay.com/de/illustrations/feuerwehrmann-feuer-löschen-3812661/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Schraube</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Schraube.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/de/users/Clker-Free-Vector-Images-3736/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=33597">Clker-Free-Vector-Images</a> auf <a href="https://pixabay.com/de/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=33597">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/de/vectors/schrauben-metall-eisen-verschluss-33597/">https://pixabay.com/de/vectors/schrauben-metall-eisen-verschluss-33597/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Portal</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Portal.png" style="float:left">
|
||||
Grundlage des Bildes auf <a href="https://www.maxpixel.net">Max Pixel</a>
|
||||
<br>URL: <a href="https://www.maxpixel.net/Picture-Frame-Ring-Round-Circle-Shape-Pair-2885023">https://www.maxpixel.net/Picture-Frame-Ring-Round-Circle-Shape-Pair-2885023</a>
|
||||
<br>Lizenz: <a href="https://creativecommons.org/share-your-work/public-domain/cc0/">CC0 - Public Domain </a>
|
||||
<h2>Schlüssel</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Schluessel.png" style="float:left">
|
||||
Bild auf <a href="https://publicdomainvectors.org">Public Domain Vectors</a>
|
||||
<br>URL: <a href="https://publicdomainvectors.org/en/free-clipart/Vector-clip-art-of-grey-shaded-metal-door-key/21166.html">https://publicdomainvectors.org/en/free-clipart/Vector-clip-art-of-grey-shaded-metal-door-key/21166.html</a>
|
||||
<br>Lizenz: Public Domain
|
||||
<h2>Aufzug</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Aufzug.png" ><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Aufzugschacht.png" >
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Aufzugschacht2.png" >
|
||||
<br> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<h2>Bodenplatten</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\bluerock.png" ><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\bluerock1.png" ><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\bluerock2.png" ><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\bluerock3.png" ><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Bodenplatte.png" ><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Bodenplatte1.png" ><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Kontaktplatte.png" >
|
||||
<br> Selbst gezeichnet (Thomas Schaller, ZPG Informatik) mit Muster aus Gimp 2.0
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<h2>Ölfleck</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Oelfleck.png" style="float:left"> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<h2>Fragezeichen</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Gegenstand.png" style="float:left"> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<h2>Brennstab</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Brennstab.png" style="float:left"> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<h2>Türen</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Tuer2.png" style="float:left"> <img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Tuer1.png" style="float:left">Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<br>
|
||||
<br>
|
||||
<h2>Sperrfläche</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\warnung1.png" style="float:left"> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<br><br>
|
||||
<h2>Steinwände</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\Stein.png" style="float:left">
|
||||
Bild auf Grundlage von <a href="https://pixabay.com/de/users/skeeze-272447/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1429207">skeeze</a> auf <a href="https://pixabay.com/de/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1429207">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/de/photos/kiesel-steine-felsen-landschaftsbau-1429207/">https://pixabay.com/de/photos/kiesel-steine-felsen-landschaftsbau-1429207/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Pfeile</h2>
|
||||
<img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\pfeil0.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\pfeil90.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\pfeil180.png"><img src="..\3_Vorlagen_Tauschordner\01_ReaktorRobot_GF360_Szenario_Roh\images\pfeil270.png">
|
||||
Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<br><br>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
||||
|
||||
/**
|
||||
* Die Klasse AB1 ist eine Unterklasse von Roboter.
|
||||
* Sie erbt damit alle Attribute und Methoden der Klasse Roboter.
|
||||
*/
|
||||
|
||||
public class AB1 extends Roboter
|
||||
{
|
||||
public void einsVor() {
|
||||
this.verbraucheEnergie(4);
|
||||
super.einsVor();
|
||||
}
|
||||
|
||||
public void dreheRechts() {
|
||||
super.dreheRechts();
|
||||
}
|
||||
|
||||
public void dreheLinks() {
|
||||
super.dreheLinks();
|
||||
}
|
||||
|
||||
public void schraubeAufnehmen() {
|
||||
if (istAufSchraube()) super.aufnehmen();
|
||||
}
|
||||
|
||||
public void schraubeAblegen() {
|
||||
super.ablegen("Schraube");
|
||||
}
|
||||
|
||||
public int getAnzahlSchrauben() {
|
||||
return super.getAnzahl("Schraube");
|
||||
}
|
||||
|
||||
public boolean istAufSchraube() {
|
||||
return super.istAufGegenstand("Schraube");
|
||||
}
|
||||
|
||||
public boolean istVorratLeer() {
|
||||
return super.getAnzahl("Schraube")==0;
|
||||
}
|
||||
|
||||
public void akkuAufnehmen() {
|
||||
if (istAufGegenstand("Akku")) super.aufnehmen();
|
||||
}
|
||||
|
||||
public void benutzeAkku() {
|
||||
if (this.getAnzahl("Akku")>0) benutze("Akku");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
||||
|
||||
public class AB10 extends AB3
|
||||
{
|
||||
/*#
|
||||
* Aufgaben 1, 2 und 3: Patrouille
|
||||
*/
|
||||
public void rundeDrehen() {
|
||||
int anzGemacht;
|
||||
anzGemacht = 0;
|
||||
while (anzGemacht < 3) {
|
||||
laufeBisWand();
|
||||
dreheUm();
|
||||
anzGemacht++;
|
||||
}
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 4: Zu Befehl!
|
||||
*/
|
||||
public void dreheAnzahlRunden(int anz) {
|
||||
// Hier kommt dein Quelltext hin
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 5: Lauf x Schritte
|
||||
*/
|
||||
|
||||
/*#
|
||||
* Aufgabe 6: Was tut es?
|
||||
* Analysiere diese Methode
|
||||
*/
|
||||
public void wastutes(int anz) {
|
||||
int i=0;
|
||||
while(i<anz) {
|
||||
while(!this.istWandVorne()) {
|
||||
aufnehmen();
|
||||
einsVor();
|
||||
}
|
||||
dreheUm();
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 7: Aufräumen
|
||||
*/
|
||||
public void aufraeumen() {
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Hilfsmethode, die den Aufzug holt.
|
||||
*/
|
||||
public void holeAufzug() {
|
||||
if(!istVorne("Schalter")) {
|
||||
dreheUm();
|
||||
}
|
||||
benutze("Schalter");
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 8: Aufzug
|
||||
*/
|
||||
|
||||
/*
|
||||
* Hilfesmethode für den Einsatz 10
|
||||
*/
|
||||
public boolean einsVorSammle() {
|
||||
if (istVorneFrei() && getEnergie()>0) {
|
||||
einsVor();
|
||||
if(istAufGegenstand("Diamant")) {aufnehmen();}
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*#
|
||||
* Einsatz 10 bitte beim Einsatzleiter implementieren
|
||||
*/
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
||||
|
||||
public class AB2 extends Roboter
|
||||
{
|
||||
/*#
|
||||
* Aufgabe 3: Diese Anweisungen stimmen noch nicht wirklich
|
||||
* Verbessere und Ergaenze.
|
||||
*/
|
||||
public void dreheRunde()
|
||||
{
|
||||
einsVor();
|
||||
einsVor();
|
||||
einsVor();
|
||||
einsVor();
|
||||
dreheLinks();
|
||||
einsVor();
|
||||
einsVor();
|
||||
dreheLinks();
|
||||
einsVor();
|
||||
einsVor();
|
||||
dreheLinks();
|
||||
einsVor();
|
||||
einsVor();
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 4: Drehe um
|
||||
*/
|
||||
public void dreheUm()
|
||||
{
|
||||
// Hier kommen die Befehl für eine 180° Drehung hin
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 5: Sammle Schrauben
|
||||
*/
|
||||
public void sammle3()
|
||||
{
|
||||
einsVor();
|
||||
aufnehmen();
|
||||
einsVor();
|
||||
// Hier ergänzen
|
||||
}
|
||||
/*#
|
||||
* Aufgabe 6: Haken schlagen
|
||||
* Hier ist Platz fuer deine erste eigens geschriebene Methode!
|
||||
*/
|
||||
// Schau dir die Methoden oben an und gehe analog vor:
|
||||
|
||||
/*#
|
||||
* Aufgabe 7: Vier Dinge sammeln
|
||||
*/
|
||||
|
||||
|
||||
/*#
|
||||
* Einsatz 2: Bitte den Namen "einsatz2" nicht aendern!
|
||||
*/
|
||||
public void einsatz2() {
|
||||
// Hier kommte der Code für den ersten echten Einsatz hin:
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
||||
|
||||
public class AB3 extends Roboter
|
||||
{
|
||||
|
||||
/*#
|
||||
* Aufgabe 1: Feuer loeschen
|
||||
*/
|
||||
public void loesche() {
|
||||
einsVor();
|
||||
aufnehmen();
|
||||
// Hier fehlt noch was:
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgaben 3 & 4: Vor bis zum Feuer (wo auch immer das ist)
|
||||
*/
|
||||
public void vorBisFeuer()
|
||||
{
|
||||
while(!istVorne("Feuer")) {
|
||||
einsVor();
|
||||
}
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 5: Feuersbrunst loeschen
|
||||
*/
|
||||
// Hier kommt deine Methode loescheReihe() hin:
|
||||
|
||||
/*#
|
||||
* Aufgabe 6: Teste Reichweite eines Feuerloeschers
|
||||
*/
|
||||
// Hier kommt die Methode testeReichweite() hin:
|
||||
|
||||
|
||||
/*#
|
||||
* Aufgabe 7: Feuerloescher einsammeln
|
||||
*/
|
||||
public void sammleLoescher()
|
||||
{
|
||||
// Hier bitte deinen Quelltext einfügen
|
||||
}
|
||||
|
||||
/*#
|
||||
* Hilfsmethode fuer Aufgabe 8
|
||||
*/
|
||||
public void laufeBisWand() {
|
||||
// Hier bitte deinen Quelltext einfügen
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 8: Homerun
|
||||
*/
|
||||
public void laufeBisSackgasse() {
|
||||
// Hier bitte deinen Quelltext einfügen
|
||||
}
|
||||
|
||||
/*#
|
||||
* Einsatz 3: Bitte den Namen nicht aendern!
|
||||
*/
|
||||
public void einsatz3() {
|
||||
// Hier bitte deinen Quelltext einfügen
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
||||
|
||||
public class AB4 extends Roboter
|
||||
{
|
||||
/*#
|
||||
* Aufgabe 1: Spur invertieren
|
||||
*/
|
||||
/**
|
||||
* Der Roboter tauscht aus. Wo eine Schraube liegt, hebt er sie auf.
|
||||
* Wo keine liegt, legt er eine ab, wenn er noch Schrauben
|
||||
* in seinem Vorrat hat.
|
||||
*/
|
||||
public void tausche() {
|
||||
if (istAufGegenstand("Schraube")) {
|
||||
aufnehmen();
|
||||
}
|
||||
else {
|
||||
ablegen("Schraube");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Roboter macht mehrere Dinge. Beschreibe in diesem Kommentar:
|
||||
*
|
||||
*/
|
||||
public void tauscheUndVor() {
|
||||
tausche();
|
||||
if (istVorneFrei()) {
|
||||
einsVor();
|
||||
}
|
||||
// else ist nicht noetig, weil in dem Fall nichts gemacht wird!
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 2: Tausche die Schraubenreihe bis zur Wand
|
||||
*/
|
||||
public void tauscheBisWand() {
|
||||
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 3: Fleckenfrei
|
||||
*/
|
||||
// Hier kommt die Methode umgeheOelfleck() hin:
|
||||
|
||||
/*#
|
||||
* Aufgabe 4: Schluessel aufheben
|
||||
*/
|
||||
// Hier kommt die Methode sammleSchluessel() hin:
|
||||
|
||||
/*#
|
||||
* Aufgabe 5: Sesam oeffne dich
|
||||
*/
|
||||
// Hier kommt die Methode oeffneTuer() hin:
|
||||
|
||||
|
||||
/*#
|
||||
* Hilfsmethode fuer Aufgabe 9
|
||||
*/
|
||||
public void laufeBisWand() {
|
||||
while(istVorneFrei()) {
|
||||
einsVor();
|
||||
}
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 9: Labyrinth
|
||||
*/
|
||||
// Hier kommt die Methode labyrinth() hin:
|
||||
|
||||
/*#
|
||||
* Einsatz 4: Bitte den Namen nicht aendern!
|
||||
*/
|
||||
public void einsatz4() {
|
||||
// Füge hier deinen Quelltext ein
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
||||
|
||||
public class AB5 extends Roboter
|
||||
{
|
||||
/*#
|
||||
* Aufgabe 1, 2, 3 und 10: Upgrade 1 - ein neuer Sensor wird erstellt
|
||||
*/
|
||||
public boolean istFassVorne() {
|
||||
// Aufgabe 3a
|
||||
|
||||
if (istVorne("Fass")) {
|
||||
// Aufgabe 3b
|
||||
|
||||
return true;
|
||||
} else {
|
||||
// Aufgabe 3b
|
||||
|
||||
return false;
|
||||
}
|
||||
// Aufgabe 3c
|
||||
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 4: Rueckspiegel
|
||||
*/
|
||||
public boolean istFassHinten() {
|
||||
|
||||
if (istVorne("Fass")) {
|
||||
|
||||
return true;
|
||||
}else {
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 5: Out of Power
|
||||
*/
|
||||
public boolean istEnergieSchwach() {
|
||||
// Hier fehlt noch einiges!
|
||||
return true;
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 6: Heavy Duty
|
||||
*/
|
||||
// Hier ist Platz fuer die Methode istSchwerBeladen():
|
||||
|
||||
/*#
|
||||
* Aufgabe 7 und 11: Look Ahead - Upgrade 2
|
||||
*/
|
||||
// Hier ist Platz fuer die Methode istVorFassFrei():
|
||||
|
||||
/*#
|
||||
* Aufgabe 8: Aufraeumen
|
||||
*/
|
||||
// Hier ist Platz fuer die Methode schiebeFassBisWand():
|
||||
|
||||
/*#
|
||||
* Aufgabe 9: Fuehrerschein
|
||||
*/
|
||||
// Hier ist Platz fuer die Methode istKreuzung():
|
||||
|
||||
public void geheBisKreuzung() {
|
||||
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 12: Wie koennte man diese Methode nennen?
|
||||
*/
|
||||
// Hier ist Platz fuer die Methode ???():
|
||||
|
||||
/*#
|
||||
* Einsatz 5: Bitte den Namen nicht aendern!
|
||||
*/
|
||||
public void einsatz5() {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
||||
|
||||
public class AB6_AB7 extends Roboter
|
||||
{
|
||||
// Eigenschaften eines AB6 - Objektvariablen (Attribute) werden deklariert:
|
||||
private int schritte;
|
||||
// AB6 - Aufgabe 8: Hier wird das Attribut drehungen deklariert:
|
||||
|
||||
/*#
|
||||
* Konstruktor eines AB6: Der Startzustand wird definiert
|
||||
*/
|
||||
public AB6_AB7() {
|
||||
// Startzustand eines AB6 - Objektvariablen werden initialiaiert:
|
||||
this.schritte = 0;
|
||||
|
||||
// AB6 - Aufgabe 8: Initialisiere das Attribut drehungen hier:
|
||||
|
||||
}
|
||||
|
||||
/*#
|
||||
* AB6 - Beispiel Zählen,
|
||||
* AB7 - Aufgabe 4: Super
|
||||
*/
|
||||
public void einsVorMitZaehlen() {
|
||||
// Das Attribut Schritte muss um eins erhoeht werden und dann die alte einsVor-Methode des AB6-Roboters aufgerufen werden:
|
||||
this.schritte++;
|
||||
einsVor();
|
||||
}
|
||||
|
||||
/*#
|
||||
* AB6 - Aufgabe 7: Schrittezaehler
|
||||
* AB7 - Aufgabe 5: Brennstaebe zaehlen
|
||||
*/
|
||||
public void bisWandMitZaehlen() {
|
||||
|
||||
}
|
||||
|
||||
/*#
|
||||
* AB6 - Aufgabe 8: Drehzaehler
|
||||
* AB7 - Aufgabe 6: Standardmethoden überschreiben
|
||||
*/
|
||||
public void dreheRechtsMitZaehlen() {
|
||||
|
||||
}
|
||||
|
||||
public void dreheLinksMitZaehlen() {
|
||||
|
||||
}
|
||||
|
||||
/*#
|
||||
* AB6 - Aufgabe 9: Eine get-Methode
|
||||
*/
|
||||
public int getSchritte() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*#
|
||||
* AB6 - Aufgabe 10: Deine get-Methode
|
||||
*/
|
||||
// Hier kommt deine get-Methode fuer die Anzahl der Drehungen hin.
|
||||
// Benenne sie sinnvoll:
|
||||
|
||||
/*#
|
||||
* Liefert die Anzahl der gezählten Brennstäbe zurück
|
||||
* AB7 - Aufgabe 5: Brennstaebe zaehlen
|
||||
*/
|
||||
public int getBrennstaebe() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*#
|
||||
* AB6 - Einsatz 6:
|
||||
*/
|
||||
public void einsatz6() {
|
||||
|
||||
}
|
||||
|
||||
/*#
|
||||
* Weitere Methoden zum AB7:
|
||||
*/
|
||||
|
||||
/*#
|
||||
* AB7 - Aufgabe 1: Kreuzungen zaehlen (aus AB3)
|
||||
*/
|
||||
|
||||
/*#
|
||||
* AB7 - Aufgabe 7: Fass links
|
||||
*/
|
||||
// Hier kommt die Methode istFassLinks() hin:
|
||||
|
||||
/*#
|
||||
* AB7 - Aufgabe 8: Standardmethoden überschreiben (istWandVorne(), istWandLinks())
|
||||
*/
|
||||
|
||||
/*#
|
||||
* AB7 - Hilfsmethode für Einsatz 7:
|
||||
*/
|
||||
|
||||
public boolean istWandLinks() {
|
||||
// Diese Methode muss so erweitert werden, dass sie auch Fässer auf der linken Seite erkennt.
|
||||
return super.istWandLinks();
|
||||
}
|
||||
|
||||
/*#
|
||||
* AB7 - Einsatz 7:
|
||||
*/
|
||||
public void einsatz7(){
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,110 @@
|
|||
import greenfoot.*;
|
||||
|
||||
public class AB8 extends AB5
|
||||
{
|
||||
private int zaehler1;
|
||||
private double wert;
|
||||
|
||||
public AB8() {
|
||||
this.zaehler1 = 0;
|
||||
this.wert = 0.0;
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 1: Zwei Methoden, die fast das gleiche machen ...
|
||||
*/
|
||||
public int zaehleSchritteBisWand1() {
|
||||
while(!istWandVorne()) {
|
||||
this.zaehler1++;
|
||||
einsVor();
|
||||
}
|
||||
dreheUm();
|
||||
return this.zaehler1;
|
||||
}
|
||||
|
||||
public int zaehleSchritteBisWand2() {
|
||||
int zaehler2;
|
||||
zaehler2 = 0;
|
||||
while(!istWandVorne()){
|
||||
zaehler2++;
|
||||
einsVor();
|
||||
}
|
||||
dreheUm();
|
||||
return zaehler2;
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 5: Summe der x- und y-Koordinate
|
||||
*/
|
||||
public int gibPositionssumme() {
|
||||
int x;
|
||||
int y;
|
||||
int summe;
|
||||
x = getX();
|
||||
y = getY();
|
||||
summe = x + y;
|
||||
return summe;
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 6: Abstabdsberechnungen
|
||||
*/
|
||||
public int gibLaenge() {
|
||||
// Loesche die Return-Zeile und beginne mit Aufgabe 6
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 7: Flaeche
|
||||
*/
|
||||
public int gibRaumgroesse() {
|
||||
// Loesche die Return-Zeile und beginne mit Aufgabe 7
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 8:
|
||||
*/
|
||||
public boolean istFassRechts() {
|
||||
// Loesche die Return-Zeile und beginne mit Aufgabe 8
|
||||
return false;
|
||||
}
|
||||
|
||||
public int gibLaengeFassReihe() {
|
||||
// Loesche die Return-Zeile und mache weiter mit Aufgabe 8
|
||||
return 0;
|
||||
}
|
||||
|
||||
public int gibAnzahlFaesser() {
|
||||
// Loesche die Return-Zeile und vervollstaendige Aufgabe 8
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 10: Sammler
|
||||
*/
|
||||
public void sammeln() {
|
||||
|
||||
}
|
||||
|
||||
// Hier muss noch eine get-Methode hin:
|
||||
|
||||
/*#
|
||||
* Aufgabe 11: Finanzamt
|
||||
*/
|
||||
public double getMehrwertSteuer() {
|
||||
// Loesche die Return-Zeile und vervollstaendige Aufgabe 11
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
/*#
|
||||
* Einsatz 8: Den Namen bitte nicht aendern!
|
||||
*/
|
||||
public int einsatz8() {
|
||||
int anzahlGelb;
|
||||
anzahlGelb = 0;
|
||||
// Hier kommen deine Anweisungen hin:
|
||||
|
||||
return anzahlGelb;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
||||
|
||||
public class AB9 extends Roboter
|
||||
{
|
||||
|
||||
/**
|
||||
* Hilfesmethode zum Holen des Aufzugs.
|
||||
*/
|
||||
public void holeAufzug() {
|
||||
if(!istVorne("Schalter")) {
|
||||
dreheUm();
|
||||
}
|
||||
benutze("Schalter");
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 3: Drehe Roboter
|
||||
*/
|
||||
|
||||
public void dreheRoboter(int richtung) {
|
||||
// Hier kommt dein Quelltext hin
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 4: Laufe zu X-Position
|
||||
*/
|
||||
public void laufeZuXPos(int x) {
|
||||
//Hier kommt dein Quelltext hin
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 5: Fahre Aufzug
|
||||
*/
|
||||
public void fahreAufzug(int stockwerke, boolean abwaerts) {
|
||||
// Hier kommt dein Quelltext hin
|
||||
}
|
||||
|
||||
/*#
|
||||
* Aufgabe 6: Fahre ins Stockwerk
|
||||
*/
|
||||
|
||||
|
||||
/*#
|
||||
* Aufgabe 7: Bombe sichern
|
||||
*/
|
||||
|
||||
|
||||
/*#
|
||||
* Aufgabe 8: Sprengen
|
||||
*/
|
||||
|
||||
|
||||
/*#
|
||||
* Aufgabe 9: Legen
|
||||
* Hier darfst du mal ganz alleine eine Methode mit Parametern implementieren ;-)
|
||||
*/
|
||||
|
||||
|
||||
/*#
|
||||
* Platz fuer weitere Methode(n), die du eventuell fuer den Einsatz 9 benoetigst:
|
||||
*/
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
import greenfoot.*;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Spezieller Schalter zum Rufen eins Aufzugs.
|
||||
*
|
||||
* @author Thomas Schaller
|
||||
* @version 28.06.2017 V1.0
|
||||
*/
|
||||
public class Aufzugknopf extends Schalter
|
||||
{
|
||||
Gegenstand aufzug;
|
||||
int stockwerk;
|
||||
|
||||
/**
|
||||
* Konstruktor Aufzugknopf
|
||||
*/
|
||||
public Aufzugknopf(World w)
|
||||
{
|
||||
super(w);
|
||||
aufzug = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Setzt den dazugehörigen Aufzug
|
||||
*
|
||||
* @param aufzug Ein Gegenstand vom Typ Aufzug
|
||||
*/
|
||||
public void setAufzug(Gegenstand aufzug, int stockwerk)
|
||||
{
|
||||
this.aufzug = aufzug;
|
||||
this.stockwerk = stockwerk;
|
||||
}
|
||||
|
||||
public void rufeAufzug() {
|
||||
List<Actor> beiAufzug = aufzug.getWorld().getObjectsAt(aufzug.getX(), aufzug.getY(), Actor.class);
|
||||
while(aufzug.getY() != stockwerk) {
|
||||
int neuy =aufzug.getY()-(aufzug.getY()-stockwerk)/Math.abs(aufzug.getY()-stockwerk);
|
||||
for(Actor a : beiAufzug) {
|
||||
if(a != aufzug)
|
||||
a.setLocation(aufzug.getX(), neuy);
|
||||
}
|
||||
aufzug.setLocation(aufzug.getX(), neuy);
|
||||
Greenfoot.delay(1);
|
||||
}
|
||||
}
|
||||
|
||||
/** Schaltet den Schalter um, d.h. von on auf off oder umgekehrt
|
||||
*/
|
||||
public void umschalten() {
|
||||
anschalten();
|
||||
Greenfoot.delay(1);
|
||||
rufeAufzug();
|
||||
ausschalten();
|
||||
Greenfoot.delay(1);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
||||
import java.util.List;
|
||||
|
||||
public class EinsatzLeiter extends Actor
|
||||
{
|
||||
// Hier werden alle Roboter aufgelistet, denen der Einsatzleiter Befehle erteilen kann:
|
||||
AB9 legeRoboter; //Legeroboter
|
||||
AB9 sprengRoboter1; //Sprengroboter 1
|
||||
AB9 sprengRoboter2; //Sprengroboter 2
|
||||
AB9 aufzugRoboter; //Aufzugroboter
|
||||
|
||||
// Roboter für Einsatz 10
|
||||
AB10 roboter1;
|
||||
AB10 roboter2;
|
||||
AB10 roboter3;
|
||||
|
||||
/*#
|
||||
* Aufgabe 10: Anweisung 1
|
||||
* Hier werden Methoden am sprengRoboter1 aufgerufen.
|
||||
* Tipp: Schreibe sprengRoboter1. und druecke STRG+Leertaste --> Schau mal, welche Methoden du alle zur Verfuegung hast ...
|
||||
*/
|
||||
public void holeBombeUndSprenge (int xBombe, int yBombe, int xPos, int yPos){
|
||||
// Hinweis:
|
||||
// Der sprengRoboter1 bekommt den Befehl holeBombeUndKehreZurueck(bx, by), wenn du vorher beim AB9-Roboter programmiert hast.
|
||||
// (bx|by) sind die Koordinaten der Bombe --> das muss dann der Methodenaufrufer eingeben (also du spaeter,
|
||||
// wenn du am EinsatzLeiter diese Methode aufrufst): sprengRoboter1.holeBombeUndKehreZurueck(bx, by);
|
||||
// Gib dem sprengRoboter1 den Befehl zum Sprengen an der Position (sx,sy):
|
||||
// Kombiniere nun die richtigen Methodenaufrufe beim Aufzug- und Sprengroboter.
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*#
|
||||
* Ab hier kannst du Hilfs-Methoden fuer den Einsatz 9+10 implementieren:
|
||||
*/
|
||||
|
||||
/*#
|
||||
* Einsatz 9:
|
||||
*/
|
||||
public void einsatz9() {
|
||||
// Hier kommt dein Quelltext hin
|
||||
}
|
||||
|
||||
/*#
|
||||
* Einsatz 10:
|
||||
*/
|
||||
public void einsatz10() {
|
||||
// Hier kommt dein Quelltext hin
|
||||
}
|
||||
|
||||
|
||||
/*#
|
||||
* -------------------------------------------------------------------
|
||||
* Bitte so lassen - diese Methode wird nur von euren Lehrer verwendet
|
||||
*/
|
||||
public void nehmeKontaktAuf() {
|
||||
List<AB9> l9 = ((RoboterWelt)getWorld()).getObjects(AB9.class);
|
||||
if (l9.size()>0) {
|
||||
aufzugRoboter = l9.get(0);
|
||||
sprengRoboter1 = l9.get(1);
|
||||
sprengRoboter2 = l9.get(2);
|
||||
legeRoboter = l9.get(3);
|
||||
}
|
||||
List<AB10> l10 = ((RoboterWelt)getWorld()).getObjects(AB10.class);
|
||||
if (l10.size()>0) {
|
||||
roboter1 = l10.get(0);
|
||||
roboter2 = l10.get(1);
|
||||
roboter3 = l10.get(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
import greenfoot.*;
|
||||
import java.util.*;
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
/** Die Klasse Gegenstand fasst alle in der Welt liegenden Actors zusammen,
|
||||
* die bewegt werden können.
|
||||
*/
|
||||
public class Gegenstand extends Actor
|
||||
{
|
||||
private int typ;
|
||||
private static String[] typen = {"Akku","Schraube","Brennstab","Schluessel","Oelfleck","Portal","Strom","Feuer","Feuerloescher","Fass","Atommuell","Bombe", "Kontaktplatte","Aufzug","Diamant"};
|
||||
private boolean[] moveable = {true, true, true, true, false, false, false, false, true, false, false, true, false, false, true};
|
||||
private int[] schaden = {0, 0, 0, 0, 20, 0, 50, 40, 0, 0, 0, 0, 0, 0, 0};
|
||||
private int[] lebensdauer = {1, 1, 1, 1, 0, 1000, 0, 0, 5, 1000, 1000,1, 1000, 1000,1000};
|
||||
private Schalter schalter = null;
|
||||
|
||||
/** erzeugt einen neuen Gegenstand vom angegeben Typ
|
||||
* @param name Typ des Gegenstands ("Akku","Schraube","Brennstab","Schluessel","Oelfleck","Portal","Strom","Feuer","Feuerloescher","Fass","Atommuell","Bombe", "Kontaktplatte", "Aufzug", "Diamant")
|
||||
*/
|
||||
public Gegenstand(String name) {
|
||||
super();
|
||||
this.typ = -1;
|
||||
|
||||
for(int i = 0; i < typen.length; i++) {
|
||||
if (name.equals(typen[i])) {
|
||||
this.typ = i;
|
||||
}
|
||||
}
|
||||
if(this.typ == -1) {
|
||||
JOptionPane.showMessageDialog(null, "Ich kenne kein(e) "+name+". Daher erzeuge ich einen Akku.", "Meldung!",
|
||||
JOptionPane.INFORMATION_MESSAGE);
|
||||
this.typ = 0;
|
||||
}
|
||||
this.setImage("images/"+typen[typ]+".png");
|
||||
}
|
||||
|
||||
/** erzeugt einen Standardgegenstand (Akku)
|
||||
*/
|
||||
public Gegenstand() {
|
||||
super();
|
||||
this.typ = 0;
|
||||
this.setImage("images/Akku.png");
|
||||
}
|
||||
|
||||
/** untersucht, ob name eine korrekte Bezeichnug für einen Gegenstand ist
|
||||
* @return erg true, wenn name korrekt ist
|
||||
*/
|
||||
public static boolean istGegenstand(String name) {
|
||||
boolean erg = false;
|
||||
for(int i = 0; i < typen.length; i++) {
|
||||
if (name.equals(typen[i])) {
|
||||
erg = true;
|
||||
}
|
||||
}
|
||||
return erg;
|
||||
}
|
||||
|
||||
/** liefert den Typ des Gegenstands
|
||||
* @return Typ ("Akku","Schraube","Brennstab","Schluessel","Oelfleck","Portal","Strom","Feuer","Feuerloescher","Fass","Atommuell","Bombe", "Kontaktplatte", "Aufzug", "Diamant")
|
||||
*/
|
||||
public String getName() {
|
||||
return this.typen[typ];
|
||||
}
|
||||
|
||||
/** liefert, ob der Gegenstand vom Roboter aufgenommen werden kann
|
||||
* @return true, wenn der Gegenstand weggetragen werden darf.
|
||||
*/
|
||||
public boolean istBeweglich() {
|
||||
return this.moveable[typ];
|
||||
}
|
||||
|
||||
/** liefert den Schaden an der Energieversorgung, wenn der Roboter mit dem Gegenstand
|
||||
* auf einem Feld ist.
|
||||
* @return abgezogen Energiepunkte
|
||||
*/
|
||||
public int getSchaden() {
|
||||
return this.schaden[typ];
|
||||
}
|
||||
|
||||
/** liefert die Anzahl der Einsätze bevor der Gegenstand verbraucht ist
|
||||
* @return z.B. 1 für Akku, 5 für Feuerlöscher
|
||||
*/
|
||||
public int getLebensdauer() {
|
||||
return this.lebensdauer[typ];
|
||||
}
|
||||
|
||||
/** liefert einen Schalter, der mit diesem Gegenstand verbunden ist (z.B. bei Kontaktplatten)
|
||||
* @return Schalterobjekt
|
||||
*/
|
||||
public Schalter getSchalter() {
|
||||
return this.schalter;
|
||||
}
|
||||
|
||||
/** Verbindet diese Objekt mit einem Schalter (z.B. bei Kontaktplatten)
|
||||
* @param s Schalterobjekt
|
||||
*/
|
||||
public void setSchalter(Schalter s) {
|
||||
this.schalter = s;
|
||||
}
|
||||
|
||||
/** Benutzt das Objekt und setzt dadurch die Lebensdauer herunter
|
||||
*/
|
||||
public void benutze() {
|
||||
this.lebensdauer[typ]--;
|
||||
}
|
||||
|
||||
// Systembedingte Routinen
|
||||
/**
|
||||
* Wird aufgerufen, wenn der Roboter in die Welt gesetzt wird;
|
||||
* erweitert nach Vorschlag P.Henriksen 29.6.08
|
||||
*/
|
||||
protected void addedToWorld(World world) {
|
||||
// Roboter kann nicht auf eine Wand oder einen anderem Roboter gesetzt werden
|
||||
Actor wand = getOneObjectAtOffset(0, 0, Wand.class);
|
||||
if (wand != null) {
|
||||
world.removeObject(this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* setLocation(x,y) fuer Roboter wird ueberschrieben, um nicht auf Wand oder
|
||||
* anderen Roboter ziehen zu koennen!
|
||||
* -- setzt den Roboter auf eine Kachel, deren Spalte x sowie Reihe y du
|
||||
* hier vorgibst. Die Nummerierung beginnt jeweils bei 0 !!)
|
||||
*/
|
||||
public void setLocation(int x, int y) {
|
||||
List wand = getWorld().getObjectsAt(x, y, Wand.class);
|
||||
List g = getWorld().getObjectsAt(x,y, Gegenstand.class);
|
||||
|
||||
if (wand.isEmpty() && g.isEmpty()) {
|
||||
super.setLocation(x, y);
|
||||
}
|
||||
}
|
||||
/* setLocation(x,y) und setRotation(x) koennen nicht verborgen werden,
|
||||
* weil sie schon in der Oberklasse Actor public sind.
|
||||
*/
|
||||
|
||||
/**
|
||||
* setRotation(x) fuer Roboter wird verhindert!
|
||||
* Es ist unnoetig, da Roboter sich nur in vier Richtungen drehen koennen!
|
||||
*/
|
||||
public void setRotation(int x) {
|
||||
// nichts machen!!
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo)
|
||||
|
||||
/**
|
||||
* Ergänzen Sie hier eine Beschreibung für die Klasse Message.
|
||||
*
|
||||
* @author (Ihr Name)
|
||||
* @version (eine Versionsnummer oder ein Datum)
|
||||
*/
|
||||
public class Message extends Actor
|
||||
{
|
||||
/**
|
||||
* Act - tut, was auch immer Message tun will. Diese Methode wird aufgerufen,
|
||||
* sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden.
|
||||
*/
|
||||
public Message (String text) {
|
||||
GreenfootImage t = new GreenfootImage(text,30, new Color(255,255,255),new Color(200,100,100,0));
|
||||
GreenfootImage mitRand = new GreenfootImage(t.getWidth()+60, t.getHeight()+30);
|
||||
mitRand.setColor(new Color(150,50,50,220));
|
||||
mitRand.fillRect(0,0, mitRand.getWidth(), mitRand.getHeight());
|
||||
mitRand.drawImage(t, 30, 15);
|
||||
setImage(mitRand);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,196 @@
|
|||
import java.io.*;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Die Klasse ReadWrite erstellt geheimCodes und steuert damit den Ablauf
|
||||
* und die Reihenfolge der Einsaetze
|
||||
*/
|
||||
class ReadWrite
|
||||
{
|
||||
private String dateiName;
|
||||
|
||||
/** Erzeugt neues Dateizugriffsobjekt
|
||||
*/
|
||||
public ReadWrite () {
|
||||
dateiName = "secret";
|
||||
}
|
||||
|
||||
/** Schreibt einen neuen Levelstand in die Datei, wenn dieser höher als der bisherige ist
|
||||
* (dies verhindert ein Zurückfallen auf ein niedrigeres Level, wenn ein Einsatz erneut ausgeführt wird.)
|
||||
* @param level neuer Level
|
||||
*/
|
||||
public void writeLevel(int level) {
|
||||
writeLevel(level,false);
|
||||
}
|
||||
|
||||
/** Schreibt einen neuen Levelstand in die Datei.
|
||||
* @param level neuer Level
|
||||
* @param down darf der neue Level auch niedriger als der alte sein (true = gezieltes Zurücksetzen)
|
||||
*/
|
||||
public void writeLevel(int level, boolean down) {
|
||||
if (level > getLevel() || down) { //Damit nicht wieder in einen kleineren Level zurückgefallen wird
|
||||
Random r = new Random();
|
||||
Scanner s = new Scanner(this.read());
|
||||
long z1 = s.nextLong();
|
||||
long z2 = r.nextInt()+362734617;
|
||||
z2 = z2 - (z2 % 131 - z1% 131);
|
||||
while (z2 % 31 != level) {
|
||||
z2 += 131;
|
||||
}
|
||||
this.append(""+z2);
|
||||
}
|
||||
}
|
||||
|
||||
/** Erzeugt eine neue Secret-Datei mit Level 1
|
||||
*/
|
||||
public void init() {
|
||||
Random r = new Random();
|
||||
long z1 = r.nextInt()+212312312;
|
||||
long z2 = r.nextInt()+362734617;
|
||||
z2 = z2 - (z2 % 131 - z1% 131);
|
||||
while (z2 % 31 != 1) {
|
||||
z2 += 131;
|
||||
}
|
||||
write(""+z1);
|
||||
append(""+z2);
|
||||
}
|
||||
|
||||
/** Liefert den zuletzt gespeicherten Level
|
||||
* @return Level
|
||||
*/
|
||||
public int getLevel() {
|
||||
int level = 1;
|
||||
String z = read();
|
||||
if (z.equals("")) {
|
||||
init();
|
||||
}
|
||||
try {
|
||||
Scanner s = new Scanner(read());
|
||||
long z1 = s.nextLong();
|
||||
s = new Scanner(readLastLine());
|
||||
long z2 = s.nextLong();
|
||||
|
||||
if (z1 % 131 != z2 %131) {
|
||||
init();
|
||||
level = 1;
|
||||
} else {
|
||||
level = (int) (z2 % 31);
|
||||
}
|
||||
} catch(Exception e) {
|
||||
level = -1;
|
||||
}
|
||||
return level;
|
||||
}
|
||||
|
||||
/** Liefert den höchsten bisher gespeicherten Level
|
||||
* @return maximal erreichter Level
|
||||
*/
|
||||
public int getMaxLevel() {
|
||||
int level = 1;
|
||||
String z = read();
|
||||
if (z.equals("")) {
|
||||
init();
|
||||
return 1;
|
||||
}
|
||||
|
||||
try {
|
||||
FileReader fr = new FileReader(dateiName);
|
||||
BufferedReader br = new BufferedReader(fr);
|
||||
String zeile = br.readLine();
|
||||
Scanner s = new Scanner(zeile);
|
||||
long z1 = s.nextLong();
|
||||
while(br.ready()) {
|
||||
zeile = br.readLine();
|
||||
s = new Scanner(zeile);
|
||||
long z2 = s.nextLong();
|
||||
|
||||
if (z1 % 131 != z2 %131) {
|
||||
init();
|
||||
level = 1;
|
||||
break;
|
||||
} else {
|
||||
if (level < (int) (z2 % 31)) {
|
||||
level = (int) (z2 % 31);
|
||||
}
|
||||
}
|
||||
}
|
||||
br.close();
|
||||
return level;
|
||||
}
|
||||
catch (IOException e) {
|
||||
return level;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/** Liest die erste Zeile aus der Secretdatei
|
||||
* @return erste Zeile
|
||||
*/
|
||||
public String read()
|
||||
{
|
||||
try {
|
||||
FileReader fr = new FileReader(dateiName);
|
||||
BufferedReader br = new BufferedReader(fr);
|
||||
String zeile = br.readLine();
|
||||
br.close();
|
||||
return zeile;
|
||||
}
|
||||
catch (IOException e) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/** Liest die letzte Zeile aus der Secretdatei
|
||||
* @return letzte Zeile
|
||||
*/
|
||||
public String readLastLine()
|
||||
{
|
||||
try {
|
||||
FileReader fr = new FileReader(dateiName);
|
||||
BufferedReader br = new BufferedReader(fr);
|
||||
String zeile = br.readLine();
|
||||
while(br.ready()) zeile = br.readLine();
|
||||
br.close();
|
||||
return zeile;
|
||||
}
|
||||
catch (IOException e) {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
/** Schreibt eine neue Datei mit einer Zeile
|
||||
* @param text 1. Zeile der Datei
|
||||
*/
|
||||
public boolean write(String text)
|
||||
{
|
||||
try {
|
||||
FileWriter fw = new FileWriter(dateiName);
|
||||
BufferedWriter bw = new BufferedWriter(fw);
|
||||
bw.write(text);
|
||||
bw.newLine();
|
||||
bw.close();
|
||||
return true;
|
||||
}
|
||||
catch (IOException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/** Hängt eine Zeile an die Secret-Datei an
|
||||
* @param text anzuhängende Zeile
|
||||
*/
|
||||
public boolean append(String text)
|
||||
{
|
||||
try {
|
||||
FileWriter fw = new FileWriter(dateiName, true);
|
||||
BufferedWriter bw = new BufferedWriter(fw);
|
||||
bw.write(text);
|
||||
bw.newLine();
|
||||
bw.close();
|
||||
return true;
|
||||
}
|
||||
catch (IOException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,801 @@
|
|||
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
||||
import java.util.*;
|
||||
import javax.swing.JOptionPane;
|
||||
|
||||
/**
|
||||
* Diese Klasse ist die Oberklasse fuer die Roboter "Robita", "Robson" und "Robby".
|
||||
* Programme sollen nur in den Unterklassen
|
||||
* implementiert werden, da diese Klasse fuer Java-Beginner sehr komplex ist.
|
||||
* Ein Roboter kann sich felderweise in die vier Himmelsrichtungen im Szenario bewegen.
|
||||
* Ueber Sensoren kann er Informationen ueber seine Umwelt erhalten.
|
||||
*/
|
||||
|
||||
public class Roboter extends Actor
|
||||
{
|
||||
private int energie; //Energie in Prozent
|
||||
private ArrayList<Gegenstand> inventar;
|
||||
private GreenfootImage originalImage;
|
||||
|
||||
/**
|
||||
* Ein Objekt der Klasse Roboter wird exempliert bzw. instanziert.
|
||||
*/
|
||||
public Roboter()
|
||||
{
|
||||
inventar = new ArrayList<Gegenstand>();
|
||||
energie=100;
|
||||
originalImage = new GreenfootImage(this.getImage());
|
||||
zeichneRobotImage();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt die Anzahl der Gegenstaende, die Roboter traegt, zurueck.
|
||||
* @return Anzahl der Gegenstaende
|
||||
*/
|
||||
public int getAnzahl() {
|
||||
return inventar.size();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt die Anzahl der Gegenstaende einer bestimmten Art zurueck.
|
||||
* @param name Art der Gegenstands (z.B. "Schluessel")
|
||||
* @return Anzahl der Gegenstaende
|
||||
*/
|
||||
public int getAnzahl(String name) {
|
||||
int anz = 0;
|
||||
if (Gegenstand.istGegenstand(name)) {
|
||||
for (Gegenstand g : inventar) {
|
||||
if (g.getName().equals(name)) {
|
||||
anz++;
|
||||
}
|
||||
}
|
||||
} else
|
||||
{
|
||||
melde(""+name+" ist keine gültige Bezeichnung für einen Gegenstand", true);
|
||||
}
|
||||
return anz;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt die Restenergie des Roboters zurück
|
||||
* @return Energiereserve (0-100)
|
||||
*/
|
||||
public int getEnergie() {
|
||||
return energie;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reduziert die Restenergie des Roboters um den angegebenen Wert.
|
||||
* @param verlust Anzahl der verbrauchten Energiepunkte
|
||||
*/
|
||||
public void verbraucheEnergie(int verlust) {
|
||||
energie = energie-verlust;
|
||||
if (energie < 0) energie=0;
|
||||
zeichneRobotImage();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt zurueck, ob die Energie des Roboters verbraucht ist.
|
||||
* @return true, wenn Restenergie =0, sonst false
|
||||
*/
|
||||
public boolean istEnergieLeer() {
|
||||
if (getEnergie()==0) return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt die x-Koordinate zurück, wenn der Roboter einen Schritt nach vorne macht.
|
||||
* @return x-Koordinate
|
||||
*/
|
||||
private int xVor() {
|
||||
switch(this.getRotation())
|
||||
{
|
||||
case 0 : return getX()+1;
|
||||
case 180 : return getX()-1;
|
||||
}
|
||||
return getX();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt die y-Koordinate zurück, wenn der Roboter einen Schritt nach vorne macht.
|
||||
* @return y-Koordinate
|
||||
*/
|
||||
|
||||
private int yVor() {
|
||||
switch(this.getRotation())
|
||||
{
|
||||
case 90 : return getY()+1;
|
||||
case 270 : return getY()-1;
|
||||
}
|
||||
return getY();
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Roboter geht einen Schritt in die Pfeilrichtung.
|
||||
* Das macht er nur, wenn sich keine Wand vor ihm befindet oder
|
||||
* er nicht an der Grenze der Welt zur Wand blickt.
|
||||
*/
|
||||
public void einsVor()
|
||||
{
|
||||
int possible=0;
|
||||
if (!this.istVorneFrei()) possible = 1;
|
||||
if (energie < 1) possible = 2;
|
||||
if (istVorne("Fass") || istVorne("Atommuell")) {
|
||||
if(this.getWorld().getObjectsAt(getX()+(xVor()-getX())*2,getY()+(yVor()-getY())*2, null).size() > 0) {
|
||||
possible = 1;
|
||||
} else {
|
||||
energie -= 5;
|
||||
List actors = this.getWorld().getObjectsAt(xVor(), yVor(), null);
|
||||
Gegenstand fass = (Gegenstand) (actors.get(0));
|
||||
fass.setLocation(getX()+(xVor()-getX())*2,getY()+(yVor()-getY())*2);
|
||||
}
|
||||
}
|
||||
int[][] map = ((RoboterWelt) getWorld()).getMap();
|
||||
if ((map[getY()][getX()] == 30 || map[getY()][getX()] == 7) && yVor() != getY() && !istAufGegenstand("Aufzug")) // Aufzug
|
||||
{
|
||||
possible = 3;
|
||||
}
|
||||
|
||||
if (possible==0)
|
||||
{
|
||||
Schalter s=null; boolean on=false;
|
||||
if (istAufGegenstand("Kontaktplatte")) {
|
||||
s = gibGegenstandUnterRoboter().getSchalter();
|
||||
on = true;
|
||||
}
|
||||
energie--;
|
||||
this.setLocation(xVor(), yVor());
|
||||
if (istAufGegenstand("Portal")) {
|
||||
if (this instanceof AB1) {
|
||||
if (this.getAnzahl("Schraube")>=2) {
|
||||
ReadWrite secret = new ReadWrite();
|
||||
secret.writeLevel(2);
|
||||
Greenfoot.delay(1);
|
||||
melde("Sehr gut. Level 1 abgeschlossen. Gehe zu Level 2.",false);
|
||||
Greenfoot.setWorld(new RoboterWelt());
|
||||
}
|
||||
else {
|
||||
melde("Du musst erst noch mind. 2 Schrauben einsammeln, um das AB 1 abzuschließen.",false);
|
||||
} // end of if-else
|
||||
|
||||
}
|
||||
energie = 100;
|
||||
}
|
||||
if (istAufGegenstand("Kontaktplatte") ) {
|
||||
s = gibGegenstandUnterRoboter().getSchalter();
|
||||
on = false;
|
||||
}
|
||||
if (s != null) {
|
||||
if (on) s.anschalten(); else s.ausschalten();
|
||||
}
|
||||
if (istAufGegenstand()) {
|
||||
if (energie > gibGegenstandUnterRoboter().getSchaden()) energie -= gibGegenstandUnterRoboter().getSchaden();
|
||||
else energie = 0;
|
||||
}
|
||||
zeichneRobotImage();
|
||||
Greenfoot.delay(1);
|
||||
((RoboterWelt) getWorld()).schwerkraftAnwenden();
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(possible) {
|
||||
case 1:
|
||||
warne("Ich kann keinen Schritt machen!\nEin Hindernis ist im Weg!",this); break;
|
||||
case 2:
|
||||
warne("Ich kann keinen Schritt machen!\nIch habe keine Energie mehr!",this); break;
|
||||
case 3:
|
||||
warne("Ich kann keinen Schritt machen!\nIn einem Aufzug braucht man die Plattform,\n um hoch oder runter zu fahren.",this); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Roboter dreht sich um 90 Grad nach rechts (aus der Sicht des Roboters).
|
||||
*/
|
||||
public void dreheRechts()
|
||||
{
|
||||
setRotation((getRotation()+90)%360);
|
||||
zeichneRobotImage();
|
||||
Greenfoot.delay(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Roboter dreht sich um 180 Grad nach rechts (aus der Sicht des Roboters).
|
||||
*/
|
||||
public void dreheUm()
|
||||
{
|
||||
dreheRechts();
|
||||
dreheRechts();
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Roboter dreht sich um 90 Grad nach links (aus der Sicht des Roboters).
|
||||
*/
|
||||
public void dreheLinks()
|
||||
{
|
||||
setRotation((getRotation()+270)%360);
|
||||
zeichneRobotImage();
|
||||
Greenfoot.delay(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt das erste Gegenstandsobjekt zurück, das der angegebenen Art entspricht.
|
||||
* @param name Art des gesuchten Gegenstands
|
||||
* @return Gegenstandsobjekt
|
||||
*/
|
||||
private Gegenstand getInventar(String name) {
|
||||
if (Gegenstand.istGegenstand(name)) {
|
||||
for(Gegenstand g: inventar) {
|
||||
if (g.getName().equals(name)) {
|
||||
return g;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
melde(""+name+" ist kein gültiger Gegenstand.",true);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt zurueck, ob der Roboter mindestens einen Gegenstand der angegeben Art besitzt.
|
||||
* @param name Art des gesuchten Gegenstands
|
||||
* @return true, wenn der Roboter einen derartigen Gegenstand hat, sonst false
|
||||
*/
|
||||
public boolean hatGegenstand(String name) {
|
||||
if (Gegenstand.istGegenstand(name)) {
|
||||
for(Gegenstand g: inventar) {
|
||||
if (g.getName().equals(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
melde(""+name+" ist kein gültiger Gegenstand.",true);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt dem Roboter eine bestimmte Anzahl von Gegenstaenden einer Art
|
||||
* @param name Art des Gegenstands
|
||||
* @anzahl gewuenschte Anzahl
|
||||
*/
|
||||
public void setAnzahlVonGegenstand(String name, int anzahl) {
|
||||
if (Gegenstand.istGegenstand(name)) {
|
||||
for (int i=0; i<anzahl; i++) {
|
||||
inventar.add(new Gegenstand(name));
|
||||
}
|
||||
zeichneRobotImage();
|
||||
}
|
||||
else {
|
||||
melde(""+name+" ist kein gültiger Gegenstand.",true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Benutzt den angegebenen Gegenstand. Es koennen nur Schluessel, Schalter, Bombe, Feuerloescher und Akku benutzt werden.
|
||||
* Dabei kann ein Schluessel nur direkt vor einem Schloss benutzt werden. Eine Bombe sprengt einen Bereich frei. Der Feuerloescher
|
||||
* kann ein direkt vor dem Roboter befindliches Feuer loeschen. Der Akku erhoeht die Restenergie des Roboters.
|
||||
* @param name Art des zu benutzenden Gegenstands ("Schluessel", "Schalter", "Bombe", "Feuerloescher", "Akku")
|
||||
*/
|
||||
public void benutze(String name) {
|
||||
if (!Gegenstand.istGegenstand(name) && !Wand.istWandtyp(name)) {
|
||||
melde(""+name+" ist keine gültige Bezeichnung.",true);
|
||||
return;
|
||||
}
|
||||
if (name.equals("Schalter")) {
|
||||
if (istVorne("Schalter")) {
|
||||
List actors = this.getWorld().getObjectsAt(xVor(), yVor(), Wand.class);
|
||||
Wand w = (Wand) (actors.get(0));
|
||||
if (w.getSchalter() != null) w.getSchalter().umschalten();
|
||||
Greenfoot.delay(1);
|
||||
} else {
|
||||
warne("Du stehst gar nicht vor einem Schalter.\n Wie willst du ihn benutzen?",this);
|
||||
}
|
||||
}
|
||||
|
||||
if (name.equals("Akku") || name.equals("Feuerloescher") || name.equals("Schluessel") || name.equals("Bombe")) {
|
||||
if (this.getAnzahl(name)>0) {
|
||||
Gegenstand g = this.getInventar(name);
|
||||
g.benutze();
|
||||
if (g.getLebensdauer() == 0) inventar.remove(g);
|
||||
if (name.equals("Akku")) {
|
||||
energie += 40;
|
||||
if (energie >100) energie = 100;
|
||||
}
|
||||
if (name.equals("Feuerloescher")) {
|
||||
if (istVorne("Feuer")) {
|
||||
List actors = this.getWorld().getObjectsAt(xVor(), yVor(), Gegenstand.class);
|
||||
this.getWorld().removeObject((Actor) (actors.get(0)));
|
||||
}
|
||||
}
|
||||
if (name.equals("Schluessel")) {
|
||||
if (istVorne("Schloss")) {
|
||||
// g.benutze(); // Dirk: ist doch schon vorher aufgerufen worden - oder?
|
||||
if (g.getLebensdauer() == 0) inventar.remove(g);
|
||||
List actors = this.getWorld().getObjectsAt(xVor(), yVor(), Wand.class);
|
||||
Wand w = (Wand) (actors.get(0));
|
||||
if (w.getSchalter() != null) w.getSchalter().umschalten();
|
||||
} else {
|
||||
inventar.add(new Gegenstand("Schluessel"));
|
||||
}
|
||||
}
|
||||
if (name.equals("Bombe")) {
|
||||
Schalter s1 = new Schalter(getWorld());
|
||||
int[][] level1 = {{ -1, -1, -1 , -1, -1},{ -1, -1, -1, -1, -1},{ -1, -1, 40, -1, -1},{ -1, -1, -1, -1, -1},{ -1, -1, -1 ,-1, -1}};
|
||||
int[][] level2 = {{ -1,-1, -1 ,-1, -1},{ -1, 6, 40 , 6, -1},{ -1, 6, 40 , 6, -1},{-1, 6, 40 , 6, -1},{ -1, -1, -1 ,-1, -1}};
|
||||
int[][] level3 = {{ -1, -1, -1 ,-1, -1},{ -1, 40, 40 , 40, -1},{ -1, 40, 6 , 40, -1},{ -1, 40, 40 , 40, -1},{ -1, -1, -1 ,-1, -1}};
|
||||
int[][] level4 = {{ -1, -1, -1 ,-1, -1},{ -1, 6, 6 , 6, -1},{ -1, 6, 6 , 6, -1},{ -1, 6, 6 , 6, -1},{ -1, -1, -1 ,-1, -1}};
|
||||
int platzFuerAkku = Greenfoot.getRandomNumber(9);
|
||||
int myrotation = getRotation();
|
||||
/* switch (platzFuerAkku) {
|
||||
case 0: level4[1][1]=38; break;
|
||||
case 1: level4[1][2]=38; break;
|
||||
case 2: level4[1][3]=38; break;
|
||||
case 3: level4[2][1]=38; break;
|
||||
case 4: level4[2][2]=38; break;
|
||||
case 5: level4[2][3]=38; break;
|
||||
case 6: level4[3][1]=38; break;
|
||||
case 7: level4[3][2]=38; break;
|
||||
case 8: level4[3][3]=38; break;
|
||||
}
|
||||
for (int i=0; i<2; i++){
|
||||
int platzFuerKontaktplatte=0;
|
||||
do {
|
||||
platzFuerKontaktplatte = Greenfoot.getRandomNumber(9);
|
||||
} while(platzFuerKontaktplatte == platzFuerAkku);
|
||||
switch (platzFuerKontaktplatte) {
|
||||
case 0: level4[1][1]=31; break;
|
||||
case 1: level4[1][2]=31; break;
|
||||
case 2: level4[1][3]=31; break;
|
||||
case 3: level4[2][1]=31; break;
|
||||
case 4: level4[2][2]=31; break;
|
||||
case 5: level4[2][3]=31; break;
|
||||
case 6: level4[3][1]=31; break;
|
||||
case 7: level4[3][2]=31; break;
|
||||
case 8: level4[3][3]=31; break;
|
||||
}
|
||||
}*/
|
||||
int x = getX()-2;
|
||||
int y = getY()-2;
|
||||
s1.setPosition(x,y, level2, level1);
|
||||
s1.ausschalten();
|
||||
energie = energie - 10;
|
||||
if (energie < 0) energie = 0;
|
||||
zeichneRobotImage();
|
||||
// getWorld().removeObject(this);
|
||||
|
||||
Greenfoot.delay(2);
|
||||
s1.anschalten();
|
||||
setRotation((getRotation()+180)%360);
|
||||
if(istVorneFrei()) this.setLocation(xVor(), yVor());
|
||||
setRotation(myrotation);
|
||||
energie = energie - 10;
|
||||
if (energie < 0) energie = 0;
|
||||
zeichneRobotImage();
|
||||
Greenfoot.delay(2);
|
||||
|
||||
s1.setPosition(x,y, level4, level3);
|
||||
s1.ausschalten();
|
||||
setRotation((getRotation()+180)%360);
|
||||
if(istVorneFrei()) this.setLocation(xVor(), yVor());
|
||||
setRotation(myrotation);
|
||||
Greenfoot.delay(2);
|
||||
s1.anschalten();
|
||||
|
||||
}
|
||||
zeichneRobotImage();
|
||||
Greenfoot.delay(1);
|
||||
((RoboterWelt) this.getWorld()).schwerkraftAnwenden();
|
||||
} else {
|
||||
warne("Du hast gar kein(e) "+name+",\n den/die du benutzen könntest.", this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert genau dann true, wenn auf der Kachel, auf der sich der
|
||||
* aufgerufene Roboter gerade befindet, ein beliebiger Gegenstand befindet.
|
||||
* @return true, wenn der Roboter auf einem Gegenstand steht, sonst false
|
||||
*/
|
||||
public boolean istAufGegenstand() {
|
||||
List g = getWorld().getObjectsAt(getX(), getY(), Gegenstand.class);
|
||||
if (g.size() > 0) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert genau dann true, wenn auf der Kachel, auf der sich der
|
||||
* aufgerufene Roboter gerade befindet, ein Gegenstand mit dem angegebnen Namen befindet.
|
||||
* @param name Einer der Gegenstaende ("Schluessel", "Schalter", "Bombe", "Feuerloescher", "Brennstab", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer", "Aufzug")
|
||||
* @return true, wenn der Roboter auf einem Gegenstand steht, sonst false
|
||||
*/
|
||||
public boolean istAufGegenstand(String name) {
|
||||
if (!Gegenstand.istGegenstand(name)) {
|
||||
melde(""+name+" ist kein gültiger Gegenstand.",true);
|
||||
return false;
|
||||
}
|
||||
List g = getWorld().getObjectsAt(getX(), getY(), Gegenstand.class);
|
||||
if (g.size() > 0) {
|
||||
return ((Gegenstand) (g.get(0))).getName().equals(name);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt den Gegenstand zurueck, auf dem sich ein Roboter befindet
|
||||
* @return Gegenstand (entweder "Schluessel", "Schalter", "Bombe", "Feuerloescher", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer", "Aufzug")
|
||||
*/
|
||||
private Gegenstand gibGegenstandUnterRoboter() {
|
||||
List g = getWorld().getObjectsAt(getX(), getY(), Gegenstand.class);
|
||||
if (g.size() > 0) {
|
||||
return (Gegenstand) (g.get(0));
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert genau dann true, wenn der aufgerufene Roboter keinen Gegenstand bei sich hat.
|
||||
* @return true, wenn der Roboter keinen Gegenstand mit sich traegt, sonst false
|
||||
*/
|
||||
public boolean istInventarLeer() {
|
||||
return inventar.size() == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Roboter legt einen Gegenstand aus seinem Vorrat auf dem Feld ab.
|
||||
* @param name Einer der Gegenstaende ("Schluessel", "Schalter", "Bombe", "Brennstab", "Feuerloescher", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer")
|
||||
*/
|
||||
public void ablegen(String name)
|
||||
{
|
||||
if (!Gegenstand.istGegenstand(name)) {
|
||||
melde(""+name+" ist kein gültiger Gegenstand.",true);
|
||||
return;
|
||||
}
|
||||
if (getAnzahl(name)>0) {
|
||||
if (!istAufGegenstand() || istAufGegenstand("Oelfleck")|| istAufGegenstand("Kontaktplatte")) { // Dirk: Ablegen auf Kontaktplatte geaendert!
|
||||
int aktuellesX = this.getX();
|
||||
int aktuellesY = this.getY();
|
||||
for(Gegenstand g: inventar) {
|
||||
if (g.getName().equals(name)) {
|
||||
inventar.remove(g);
|
||||
this.getWorld().addObject(g, aktuellesX, aktuellesY);
|
||||
zeichneRobotImage();
|
||||
break;
|
||||
}
|
||||
}
|
||||
((RoboterWelt) this.getWorld()).schwerkraftAnwenden();
|
||||
}
|
||||
else warne("Hier liegt schon etwas oder\nman darf hier nichts ablegen!",this);
|
||||
}
|
||||
else warne("Ich habe kein(e) "+name+" zum Ablegen!",this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Roboter nimmt einen Gegenstand, der sich auf seinem Feld befindet in seinen Vorrat auf.
|
||||
* Falls er nicht auf einem Gegenstand steht, gibt er eine Warnung aus.
|
||||
* Roboter haben nur eine begrenzte Kapazitaet. Sie koennen maximal 99 Gegenstaende mit sich tragen.
|
||||
* Falls er einen 100. Gegenstand aufnehmen moechte, wird auch eine entsprechende Warnung ausgegeben.
|
||||
*/
|
||||
public void aufnehmen ()
|
||||
{
|
||||
if (getAnzahl()<=99) // von Dirk von < auf <= veraendert!
|
||||
{
|
||||
Gegenstand g = (Gegenstand)this.getOneObjectAtOffset(0, 0, Gegenstand.class);
|
||||
if(g != null)
|
||||
{
|
||||
if (g.istBeweglich()) {
|
||||
this.getWorld().removeObject(g);
|
||||
inventar.add(g);
|
||||
zeichneRobotImage();
|
||||
((RoboterWelt) getWorld()).schwerkraftAnwenden();
|
||||
|
||||
} else {
|
||||
warne("Ein(e) "+g.getName()+" kann man nicht aufheben", this);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
warne("Hier ist nichts zum Aufheben!",this);
|
||||
}
|
||||
}
|
||||
else warne("Hab keinen Platz für weitere Gegenstände!",this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Diese Methode setzt einen Roboter vor den Roboter, der diese Methode aufruft.
|
||||
* Ist vor ihm kein Platz, wird eine Warnung ausgegeben.
|
||||
* @param r der Hilfsroboter, der eingesetzt werden soll
|
||||
*/
|
||||
public void gehilfeEinsetzen(Roboter r) {
|
||||
if (istVorneFrei() && getWorld().getObjectsAt(xVor(), yVor(), Roboter.class).isEmpty()) {
|
||||
this.getWorld().addObject(r, xVor(), yVor());
|
||||
} else {
|
||||
warne("Vor dir ist kein Platz für einen Gehilfen!",this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Sensor ueberprueft, ob vor dem Roboter Hindernisse stehen oder nicht
|
||||
* @return true, wenn vor dem Roboter frei ist, sonst false
|
||||
*/
|
||||
public boolean istVorneFrei()
|
||||
{
|
||||
return !istWandVorne() && (this.getWorld().getObjectsAt(xVor(),yVor(), Roboter.class).size() == 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert genau dann true, wenn sich vor dem Roboter ein Gegenstand mit dem angegebnen Namen befindet.
|
||||
* @param name Einer der Gegenstaende ("Schluessel", "Schalter", "Schloss", "Bombe", "Feuerloescher", "Akku", "Schraube", "Kontaktplatte", "Oelfleck", "Portal", "Strom", "Feuer", "Aufzug")
|
||||
* @return true, wenn der Roboter vor dem Gegenstand mit dem Namen name steht, sonst false
|
||||
*/
|
||||
public boolean istVorne(String name) {
|
||||
if (!Gegenstand.istGegenstand(name) && !Wand.istWandtyp(name)) {
|
||||
melde(name+" ist keine gültige Bezeichnung", true);
|
||||
return false;
|
||||
}
|
||||
List actors = this.getWorld().getObjectsAt(xVor(), yVor(), null);
|
||||
boolean found = false;
|
||||
for(int i = 0; i < actors.size(); i++) {
|
||||
Object o = actors.get(i);
|
||||
if (o instanceof Gegenstand) {
|
||||
if (((Gegenstand) o).getName().equals(name)) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (o instanceof Wand) {
|
||||
if (((Wand) o).getName().equals(name)) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return found;
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Sensor ueberprueft, ob sich in Laufrichtung des Roboters eine Wand befindet.
|
||||
* @return true, wenn der Roboter vor einer Wand steht, sonst false
|
||||
*/
|
||||
public boolean istWandVorne()
|
||||
{
|
||||
return (this.getWorld().getObjectsAt(xVor(),yVor(), Wand.class).size() > 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Sensor ueberprueft, ob sich rechts der Laufrichtung eine Wand befindet.
|
||||
* @return true, wenn sich rechts von dem Roboter eine Wand befindet, sonst false
|
||||
*/
|
||||
public boolean istWandRechts()
|
||||
{
|
||||
int lRichtung = getRotation();
|
||||
|
||||
if (lRichtung == 0 && this.getOneObjectAtOffset(0, 1, Wand.class)!= null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (lRichtung == 90 && this.getOneObjectAtOffset(-1, 0, Wand.class)!= null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (lRichtung == 180 && this.getOneObjectAtOffset(0, -1, Wand.class)!= null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (lRichtung == 270 && this.getOneObjectAtOffset(1, 0, Wand.class)!= null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Der Sensor ueberprueft, ob sich links der Laufrichtung eine Wand befindet.
|
||||
* @return true, wenn sich links von dem Roboter eine Wand befindet, sonst false
|
||||
*/
|
||||
public boolean istWandLinks()
|
||||
{
|
||||
int lRichtung = getRotation();
|
||||
|
||||
if (lRichtung == 0 && this.getOneObjectAtOffset(0, -1, Wand.class)!= null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (lRichtung == 90 && this.getOneObjectAtOffset(1, 0, Wand.class)!= null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (lRichtung == 180 && this.getOneObjectAtOffset(0, 1, Wand.class)!= null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (lRichtung == 270 && this.getOneObjectAtOffset(-1, 0, Wand.class)!= null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Eine private Methode, die dafuer sorgt, dass der "Aufdruck" auf dem Roboter (Anzahl der Gegenstaende), der Akkustandsbalken und
|
||||
* der Richtungspfeil aktualisiert werden
|
||||
*/
|
||||
private void zeichneRobotImage()
|
||||
{
|
||||
final int x=17;
|
||||
final int y=18;
|
||||
final int breite = 14;
|
||||
final int hoehe = 12;
|
||||
this.setImage(new GreenfootImage(originalImage));
|
||||
this.getImage().setColor(Color.WHITE);
|
||||
this.getImage().fillRect(x, y, breite, hoehe);
|
||||
this.getImage().setColor(Color.BLACK);
|
||||
this.getImage().drawRect(x, y, breite, hoehe);
|
||||
this.getImage().setFont(new Font("Arial",false,false,10));
|
||||
String ziffern;
|
||||
int anz = inventar.size();
|
||||
if (anz>=0 && anz<10) ziffern="0"+anz;
|
||||
else if (anz>=100) ziffern=">>";
|
||||
else ziffern=""+anz;
|
||||
this.getImage().drawString(ziffern, x+2, y+hoehe-2);
|
||||
zeichneEnergie();
|
||||
|
||||
this.getImage().drawImage(new GreenfootImage("images/pfeil"+getRotation()+".png"), 40, 2);
|
||||
this.getImage().rotate(-getRotation());
|
||||
}
|
||||
|
||||
/**
|
||||
* Zeichne / Aktualisiere die Energie (Akkustandsbalken), die der Roboter hat
|
||||
*/
|
||||
private void zeichneEnergie()
|
||||
{
|
||||
final int x=2;
|
||||
final int y=1;
|
||||
final int breite = 4;
|
||||
final int hoehe = 46;
|
||||
this.getImage().setColor(Color.GREEN);
|
||||
this.getImage().fillRect(x, y, breite, hoehe);
|
||||
int hoeheNeu = hoehe-(int)(Math.floor(hoehe*(energie/100.0)));
|
||||
this.getImage().setColor(Color.RED);
|
||||
this.getImage().fillRect(x, y, breite, hoeheNeu);
|
||||
this.getImage().setColor(Color.BLACK);
|
||||
this.getImage().drawRect(x, y, breite, hoehe);
|
||||
this.getImage().drawRect(x, y, breite, hoehe/2);
|
||||
}
|
||||
|
||||
// Meldungen und Warnungen
|
||||
/**
|
||||
* Gibt den uebergebenen String in einer Dialogbox auf dem Bildschirm aus
|
||||
* @param text Der Text, der angezeit werden soll
|
||||
* @param istWichtig bei true wird der Text "Achtung! Besonders wichtige Meldung:" in die Kopfzeile geschrieben, sonst nur der Text "Meldung!"
|
||||
*/
|
||||
public void melde(String text, boolean istWichtig) {
|
||||
String meldeText;
|
||||
if (istWichtig) meldeText = "Achtung!\n";
|
||||
else meldeText = "Meldung:\n";
|
||||
Message m = new Message(meldeText+text);
|
||||
getWorld().addObject(m, 7,6);
|
||||
long z = System.currentTimeMillis();
|
||||
while(System.currentTimeMillis()-z < 4000){
|
||||
Greenfoot.delay(1);
|
||||
}
|
||||
getWorld().removeObject(m);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt den uebergebenen String und eine Zahl in einer Dialogbox auf dem Bildschirm aus
|
||||
* @param text Der Text, der angezeit werden soll
|
||||
* @param z eine Zahl, die hinter dem Text text ausgegeben wird
|
||||
*/
|
||||
private void melde(String text, int z) {
|
||||
Message m = new Message(text+": "+z);
|
||||
getWorld().addObject(m, 7,6);
|
||||
long zz = System.currentTimeMillis();
|
||||
while(System.currentTimeMillis()-zz < 4000){
|
||||
Greenfoot.delay(1);
|
||||
}
|
||||
getWorld().removeObject(m);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gibt den uebergebenen String in einer Dialogbox als Warnung auf dem Bildschirm aus.
|
||||
* Dadurch wird der uebergebene Actor actor von der Roboterwelt entfernt und diese neu gezeichnet.
|
||||
* @param text Der Text, der angezeit werden soll
|
||||
* @param actor Der Actor, der ggf. entfernt werden soll
|
||||
*/
|
||||
public void warne(String text, Actor actor) {
|
||||
|
||||
Message m = new Message(text);
|
||||
actor.getWorld().addObject(m, 7,6);
|
||||
long z = System.currentTimeMillis();
|
||||
while(System.currentTimeMillis()-z < 4000){
|
||||
Greenfoot.delay(1);
|
||||
}
|
||||
actor.getWorld().removeObject(m);
|
||||
|
||||
|
||||
Greenfoot.stop(); // nur falls Animation laeuft
|
||||
World w = actor.getWorld();
|
||||
if (actor != null) w.removeObject(actor); // Notbremse
|
||||
Greenfoot.setWorld(new RoboterWelt());
|
||||
// System.err.print("\u000C");
|
||||
// System.err.flush();
|
||||
System.err.close();
|
||||
// System.out.close();
|
||||
// System.out.println("Ablauf wurde vom Benutzer unterbrochen!");
|
||||
// System.exit(0); //Das waere eigentlich sauber
|
||||
}
|
||||
|
||||
// Systembedingte Routinen
|
||||
/**
|
||||
* Wird aufgerufen, wenn der Roboter in die Welt gesetzt wird;
|
||||
* erweitert nach Vorschlag P.Henriksen 29.6.08
|
||||
* @param world Die Welt in die ein Roboter gesetzt wurde
|
||||
*/
|
||||
protected void addedToWorld(World world) {
|
||||
// Roboter kann nicht auf eine Wand oder einen anderem Roboter gesetzt werden
|
||||
Actor wand = getOneObjectAtOffset(0, 0, Wand.class);
|
||||
Actor roboter = getOneObjectAtOffset(0, 0, Roboter.class);
|
||||
if (wand != null || roboter != null) {
|
||||
world.removeObject(this);
|
||||
}
|
||||
}
|
||||
|
||||
/* setLocation(x,y) und setRotation(x) koennen nicht verborgen werden,
|
||||
* weil sie schon in der Oberklasse Actor public sind.
|
||||
*/
|
||||
|
||||
/**
|
||||
* setLocation(x,y) fuer Roboter wird ueberschrieben, um nicht auf Wand oder
|
||||
* anderen Roboter ziehen zu koennen!
|
||||
* -- setzt den Roboter auf eine Kachel, deren Spalte x sowie Reihe y du
|
||||
* hier vorgibst. Die Nummerierung beginnt jeweils bei 0 !!)
|
||||
* @param x die x-Koordinate
|
||||
* @param y die y-Koordinate
|
||||
*/
|
||||
public void setLocation(int x, int y) {
|
||||
boolean schwerkraft = ((RoboterWelt) getWorld()).getSchwerkraft();
|
||||
if( (!((x==getX() && y==getY()) || (Math.abs(x-getX())+Math.abs(y-getY())<=1))) || (y<getY() && schwerkraft && !istAufGegenstand("Aufzug"))) { // Verhindern des Verschiebens des Roboters
|
||||
warne("Ich bin ein Roboter. Ich kann nicht fliegen.",this);
|
||||
}
|
||||
else {
|
||||
List wand = getWorld().getObjectsAt(x, y, Wand.class);
|
||||
List roboter = getWorld().getObjectsAt(x, y, Roboter.class);
|
||||
Gegenstand g = (Gegenstand)this.getOneObjectAtOffset(0, 0, Gegenstand.class);
|
||||
if (g!= null && !g.getName().equals("Aufzug")) { g= null;}
|
||||
|
||||
int[][] map = ((RoboterWelt) getWorld()).getMap();
|
||||
roboter.remove(this); // Man selbst darf schon da stehen.
|
||||
if (wand.isEmpty() && roboter.isEmpty()) {
|
||||
if(g!=null && x==getX()) {g.setLocation(x,y); }
|
||||
super.setLocation(x, y);
|
||||
|
||||
}
|
||||
else warne ("Ich kann nicht an diesen Ort. Da ist kein Platz fuer mich!",this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* setRotation(x) fuer Roboter wird ueberschrieben, damit nur vier Rotationsrichtungen moeglich sind!
|
||||
* @param x die Richtung (0=Osten, 90=Sueden, 180=Westen, 270=Norden)
|
||||
*/
|
||||
public void setRotation(int x) {
|
||||
if (x==0 || x==90 || x==180 || x==270) super.setRotation(x);
|
||||
this.zeichneRobotImage();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,107 @@
|
|||
import greenfoot.*;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Die Klasse Schalter ist eine Hilfsklasse für die Schlösser und Schalthebel
|
||||
* Sie hat zwei zweidimensionale Arrays, die für den Schalterzustand on bzw. off
|
||||
* festlegen, wie ein Bereich der Welt aussehen soll. startx und starty speichern
|
||||
* die linke obere Ecke dieses Bereichs.
|
||||
*/
|
||||
|
||||
public class Schalter
|
||||
{
|
||||
RoboterWelt world;
|
||||
private boolean an;
|
||||
private int startx;
|
||||
private int starty;
|
||||
private int[][] on;
|
||||
private int[][] off;
|
||||
|
||||
/** Der Konstruktor erstellt einen neuen Schalter
|
||||
* @param w Die Welt, die manipuliert werden soll
|
||||
*/
|
||||
public Schalter(World w) {
|
||||
super();
|
||||
an = true;
|
||||
startx = 0;
|
||||
starty = 0;
|
||||
on = null;
|
||||
off = null;
|
||||
world = (RoboterWelt) w;
|
||||
}
|
||||
|
||||
/** Die Methode setze verändert die Welt entsprechend den Vorgaben
|
||||
* von backg. Dabei werden alle Objekte in diesem Bereich entfernt
|
||||
* (außer den Robotern) und gegen neue Objekte ausgetauscht.
|
||||
* @param backg Zweidimensionales Array, das die neuen Actors für den Bereich festlegt.
|
||||
*/
|
||||
|
||||
private void setze(int[][] backg) {
|
||||
|
||||
for(int x=0; x<backg[0].length; x++) {
|
||||
for(int y=0; y<backg.length; y++) {
|
||||
if (backg[y][x]>=0 && (startx+x>0) && (startx+x<world.getWidth()-1) &&
|
||||
(starty+y>1) && (starty+y<world.getHeight()-1)) {
|
||||
List al = world.getObjectsAt(x+startx,y+starty, null);
|
||||
for (int i = 0; i< al.size(); i++) {
|
||||
Actor da = (Actor) (al.get(i));
|
||||
if (! (da instanceof Roboter)) world.removeObject(da);
|
||||
}
|
||||
|
||||
if(backg[y][x]>=0 && backg[y][x] <10) {
|
||||
world.changeBackground(backg[y][x], x, y);
|
||||
}
|
||||
Actor a = ((RoboterWelt) world).generateActor(backg[y][x]);
|
||||
if (backg[y][x] == 11 || backg[y][x]==12 || backg[y][x]==17 || backg[y][x]==22 || backg[y][x]==23) {
|
||||
((Wand) a).setSchalter(this);
|
||||
}
|
||||
if (backg[y][x] == 31) {
|
||||
((Gegenstand) a).setSchalter(this);
|
||||
}
|
||||
if (a!= null) world.addObject(a,x+startx,y+starty);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Setzt den Schalterzustand auf on
|
||||
*/
|
||||
public void anschalten() {
|
||||
an = true;
|
||||
if (on != null) setze(on);
|
||||
}
|
||||
|
||||
/** Setzt den Schalterzustand auf off
|
||||
*/
|
||||
|
||||
public void ausschalten() {
|
||||
an = false;
|
||||
if (off != null) setze(off);
|
||||
}
|
||||
|
||||
/** Schaltet den Schalter um, d.h. von on auf off oder umgekehrt
|
||||
*/
|
||||
public void umschalten() {
|
||||
if (an) ausschalten(); else anschalten();
|
||||
}
|
||||
|
||||
/** Legt fest, wie der Schalter die Welt verändern soll.
|
||||
* @param x Koordinate der linke oberen Ecke des zu verändernden Bereichs
|
||||
* @param y Koordinate der linke oberen Ecke des zu verändernden Bereichs
|
||||
* @param on Zweidimensionales Array zu Festlegung, wie der Bereich bei angeschaltetem Schalter ausssehen soll
|
||||
* @param off Zweidimensionales Array zu Festlegung, wie der Bereich bei ausgeschaltetem Schalter ausssehen soll
|
||||
*/
|
||||
public void setPosition(int x, int y, int[][] on, int[][] off) {
|
||||
startx = x;
|
||||
starty = y;
|
||||
this.on = on;
|
||||
this.off = off;
|
||||
}
|
||||
|
||||
/** Liefert den Schalterzustand
|
||||
* @return true, wenn der Schalter an ist, sonst false
|
||||
*/
|
||||
public boolean getAn() {
|
||||
return an;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Die Klasse Wand fast alle Actors zusammen, durch die der Roboter nicht hindurchlaufen kann.
|
||||
* Dazu gehören neben den normalen Wänden auch Steine, Türen (vertikal/horizontal) usw.
|
||||
*/
|
||||
|
||||
public class Wand extends Actor
|
||||
{
|
||||
private int typ;
|
||||
private static String[] typen = {"Wand","Tuer","Tuer","Schalter","Schalter","Stromquelle","Stromquelle","Stromquelle","Stromquelle","Schloss","Stein","Steine","Schalter","Schalter"};
|
||||
private String[] bilder = {"Wand","Tuer2","Tuer1","SchalterEin","SchalterAus","Stromquelle1","Stromquelle2","Stromquelle3","Stromquelle4","Schloss","Stein","Steine","Rufknopf","RufknopfAus"};
|
||||
private Schalter schalter;
|
||||
|
||||
/** Erzeugt eine neue Wand vom angegeben Typ
|
||||
* @param name Name des Typs ("Wand","Tuer2","Tuer1","SchalterEin","SchalterAus","Stromquelle1","Stromquelle2","Stromquelle3","Stromquelle4","Schloss","Stein","Steine","Rufknopf","RufknopfAus")
|
||||
*/
|
||||
|
||||
public Wand(String name) {
|
||||
super();
|
||||
this.typ = 0;
|
||||
|
||||
for(int i = 0; i < bilder.length; i++) {
|
||||
if (name.equals(bilder[i])) {
|
||||
this.typ = i;
|
||||
}
|
||||
}
|
||||
this.setImage("images/"+bilder[typ]+".png");
|
||||
schalter = null;
|
||||
}
|
||||
|
||||
/** Erzeugt eine neue Standardwand
|
||||
*/
|
||||
|
||||
public Wand() {
|
||||
super();
|
||||
this.typ = 0;
|
||||
this.setImage("images/"+bilder[typ]+".png");
|
||||
schalter = null;
|
||||
}
|
||||
|
||||
/** untersucht, ob name eine korrekte Bezeichnug für einen Wandtyp ist
|
||||
* @return erg true, wenn name korrekt ist
|
||||
*/
|
||||
public static boolean istWandtyp(String name) {
|
||||
boolean erg = false;
|
||||
for(int i = 0; i < typen.length; i++) {
|
||||
if (name.equals(typen[i])) {
|
||||
erg = true;
|
||||
}
|
||||
}
|
||||
return erg;
|
||||
}
|
||||
|
||||
/** Liefert den Typ der Wand
|
||||
* @return Typname (Wand, Tuer, Stromquelle, Schalter, Schloss, Stein, Steine)
|
||||
*/
|
||||
public String getName() {
|
||||
return this.typen[typ];
|
||||
}
|
||||
|
||||
/** Liefert einen mit diesem Objekt verbunden Schalter
|
||||
* @return Schalter, wenn vorhanden, sonst null
|
||||
*/
|
||||
public Schalter getSchalter() {
|
||||
return this.schalter;
|
||||
}
|
||||
|
||||
/** Verbindet dieses Objekt mit einem Schalter, der
|
||||
* die Welt verändern kann.
|
||||
* @param s Schalterobjekt
|
||||
*/
|
||||
public void setSchalter(Schalter s) {
|
||||
this.schalter = s;
|
||||
}
|
||||
|
||||
// Systembedingte Routinen
|
||||
/**
|
||||
* Wird aufgerufen, wenn der Roboter in die Welt gesetzt wird;
|
||||
* erweitert nach Vorschlag P.Henriksen 29.6.08
|
||||
*/
|
||||
protected void addedToWorld(World world) {
|
||||
// Roboter kann nicht auf eine Wand oder einen anderem Roboter gesetzt werden
|
||||
Actor wand = getOneObjectAtOffset(0, 0, Wand.class);
|
||||
Actor roboter = getOneObjectAtOffset(0, 0, Roboter.class);
|
||||
if (wand != null || roboter != null) {
|
||||
world.removeObject(this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* setLocation(x,y) fuer Roboter wird ueberschrieben, um nicht auf Wand oder
|
||||
* anderen Roboter ziehen zu koennen!
|
||||
* -- setzt den Roboter auf eine Kachel, deren Spalte x sowie Reihe y du
|
||||
* hier vorgibst. Die Nummerierung beginnt jeweils bei 0 !!)
|
||||
*/
|
||||
public void setLocation(int x, int y) {
|
||||
List wand = getWorld().getObjectsAt(x, y, null);
|
||||
if (wand.isEmpty()) {
|
||||
super.setLocation(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
/* setLocation(x,y) und setRotation(x) koennen nicht verborgen werden,
|
||||
* weil sie schon in der Oberklasse Actor public sind.
|
||||
*/
|
||||
|
||||
/**
|
||||
* setRotation(x) fuer Roboter wird verhindert!
|
||||
* Es ist unnoetig, da Roboter sich nur in vier Richtungen drehen koennen!
|
||||
*/
|
||||
public void setRotation(int x) {
|
||||
// nichts machen!!
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,338 @@
|
|||
<!DOCTYPE HTML>
|
||||
<!-- NewPage -->
|
||||
<html lang="de">
|
||||
<head>
|
||||
<!-- Generated by javadoc (11.0.2) on Sun Dec 29 10:45:58 CET 2019 -->
|
||||
<title>AB1</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
||||
<meta name="dc.created" content="2019-12-29">
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||
<script type="text/javascript" src="script.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/javascript"><!--
|
||||
try {
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="AB1";
|
||||
}
|
||||
}
|
||||
catch(err) {
|
||||
}
|
||||
//-->
|
||||
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
|
||||
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
|
||||
var altColor = "altColor";
|
||||
var rowColor = "rowColor";
|
||||
var tableTab = "tableTab";
|
||||
var activeTableTab = "activeTableTab";
|
||||
</script>
|
||||
<noscript>
|
||||
<div>JavaScript is disabled on your browser.</div>
|
||||
</noscript>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<main role="main">
|
||||
<div class="header">
|
||||
<h2 title="Class AB1" class="title">Class AB1</h2>
|
||||
</div>
|
||||
<div class="contentContainer">
|
||||
<ul class="inheritance">
|
||||
<li>java.lang.Object</li>
|
||||
<li>
|
||||
<ul class="inheritance">
|
||||
<li>greenfoot.Actor</li>
|
||||
<li>
|
||||
<ul class="inheritance">
|
||||
<li>Roboter</li>
|
||||
<li>
|
||||
<ul class="inheritance">
|
||||
<li>AB1</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="description">
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<hr>
|
||||
<pre>public class <span class="typeNameLabel">AB1</span>
|
||||
extends Roboter</pre>
|
||||
<div class="block">Die Klasse AB1 ist eine Unterklasse von Roboter.
|
||||
Sie erbt damit alle Attribute und Methoden der Klasse Roboter.</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="summary">
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
<section role="region">
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a id="constructor.summary">
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Constructor Summary</h3>
|
||||
<table class="memberSummary">
|
||||
<caption><span>Constructors</span><span class="tabEnd"> </span></caption>
|
||||
<tr>
|
||||
<th class="colFirst" scope="col">Constructor</th>
|
||||
<th class="colLast" scope="col">Description</th>
|
||||
</tr>
|
||||
<tr class="altColor">
|
||||
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E()">AB1</a></span>()</code></th>
|
||||
<td class="colLast"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
<section role="region">
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a id="method.summary">
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Method Summary</h3>
|
||||
<table class="memberSummary">
|
||||
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
|
||||
<tr>
|
||||
<th class="colFirst" scope="col">Modifier and Type</th>
|
||||
<th class="colSecond" scope="col">Method</th>
|
||||
<th class="colLast" scope="col">Description</th>
|
||||
</tr>
|
||||
<tr id="i0" class="altColor">
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#akkuAufnehmen()">akkuAufnehmen</a></span>()</code></th>
|
||||
<td class="colLast"> </td>
|
||||
</tr>
|
||||
<tr id="i1" class="rowColor">
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#benutzeAkku()">benutzeAkku</a></span>()</code></th>
|
||||
<td class="colLast"> </td>
|
||||
</tr>
|
||||
<tr id="i2" class="altColor">
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dreheLinks()">dreheLinks</a></span>()</code></th>
|
||||
<td class="colLast">
|
||||
<div class="block">Der Roboter dreht sich um 90 Grad nach links (aus der Sicht des Roboters).</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="i3" class="rowColor">
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dreheRechts()">dreheRechts</a></span>()</code></th>
|
||||
<td class="colLast">
|
||||
<div class="block">Der Roboter dreht sich um 90 Grad nach rechts (aus der Sicht des Roboters).</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="i4" class="altColor">
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#einsVor()">einsVor</a></span>()</code></th>
|
||||
<td class="colLast">
|
||||
<div class="block">Der Roboter geht einen Schritt in die Pfeilrichtung.</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="i5" class="rowColor">
|
||||
<td class="colFirst"><code>int</code></td>
|
||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getAnzahlSchrauben()">getAnzahlSchrauben</a></span>()</code></th>
|
||||
<td class="colLast"> </td>
|
||||
</tr>
|
||||
<tr id="i6" class="altColor">
|
||||
<td class="colFirst"><code>boolean</code></td>
|
||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#istAufSchraube()">istAufSchraube</a></span>()</code></th>
|
||||
<td class="colLast"> </td>
|
||||
</tr>
|
||||
<tr id="i7" class="rowColor">
|
||||
<td class="colFirst"><code>boolean</code></td>
|
||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#istVorratLeer()">istVorratLeer</a></span>()</code></th>
|
||||
<td class="colLast"> </td>
|
||||
</tr>
|
||||
<tr id="i8" class="altColor">
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#schraubeAblegen()">schraubeAblegen</a></span>()</code></th>
|
||||
<td class="colLast"> </td>
|
||||
</tr>
|
||||
<tr id="i9" class="rowColor">
|
||||
<td class="colFirst"><code>void</code></td>
|
||||
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#schraubeAufnehmen()">schraubeAufnehmen</a></span>()</code></th>
|
||||
<td class="colLast"> </td>
|
||||
</tr>
|
||||
</table>
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a id="methods.inherited.from.class.Roboter">
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Methods inherited from class Roboter</h3>
|
||||
<code>ablegen, addedToWorld, aufnehmen, benutze, dreheUm, gehilfeEinsetzen, getAnzahl, getAnzahl, getEnergie, hatGegenstand, istAufGegenstand, istAufGegenstand, istEnergieLeer, istInventarLeer, istVorne, istVorneFrei, istWandLinks, istWandRechts, istWandVorne, melde, setAnzahlVonGegenstand, setLocation, setRotation, verbraucheEnergie, warne</code></li>
|
||||
</ul>
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a id="methods.inherited.from.class.greenfoot.Actor">
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Methods inherited from class greenfoot.Actor</h3>
|
||||
<code>act, getImage, getIntersectingObjects, getNeighbours, getObjectsAtOffset, getObjectsInRange, getOneIntersectingObject, getOneObjectAtOffset, getRotation, getWorld, getWorldOfType, getX, getY, intersects, isAtEdge, isTouching, move, removeTouching, setImage, setImage, turn, turnTowards</code></li>
|
||||
</ul>
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Methods inherited from class java.lang.Object</h3>
|
||||
<code>clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="details">
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
<section role="region">
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a id="constructor.detail">
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Constructor Detail</h3>
|
||||
<a id="<init>()">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>AB1</h4>
|
||||
<pre>public AB1()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
<section role="region">
|
||||
<ul class="blockList">
|
||||
<li class="blockList"><a id="method.detail">
|
||||
<!-- -->
|
||||
</a>
|
||||
<h3>Method Detail</h3>
|
||||
<a id="einsVor()">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>einsVor</h4>
|
||||
<pre class="methodSignature">public void einsVor()</pre>
|
||||
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code>Roboter</code></span></div>
|
||||
<div class="block">Der Roboter geht einen Schritt in die Pfeilrichtung.
|
||||
Das macht er nur, wenn sich keine Wand vor ihm befindet oder
|
||||
er nicht an der Grenze der Welt zur Wand blickt.</div>
|
||||
<dl>
|
||||
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
|
||||
<dd><code>einsVor</code> in class <code>Roboter</code></dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a id="dreheRechts()">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>dreheRechts</h4>
|
||||
<pre class="methodSignature">public void dreheRechts()</pre>
|
||||
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code>Roboter</code></span></div>
|
||||
<div class="block">Der Roboter dreht sich um 90 Grad nach rechts (aus der Sicht des Roboters).</div>
|
||||
<dl>
|
||||
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
|
||||
<dd><code>dreheRechts</code> in class <code>Roboter</code></dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a id="dreheLinks()">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>dreheLinks</h4>
|
||||
<pre class="methodSignature">public void dreheLinks()</pre>
|
||||
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code>Roboter</code></span></div>
|
||||
<div class="block">Der Roboter dreht sich um 90 Grad nach links (aus der Sicht des Roboters).</div>
|
||||
<dl>
|
||||
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
|
||||
<dd><code>dreheLinks</code> in class <code>Roboter</code></dd>
|
||||
</dl>
|
||||
</li>
|
||||
</ul>
|
||||
<a id="schraubeAufnehmen()">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>schraubeAufnehmen</h4>
|
||||
<pre class="methodSignature">public void schraubeAufnehmen()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a id="schraubeAblegen()">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>schraubeAblegen</h4>
|
||||
<pre class="methodSignature">public void schraubeAblegen()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a id="getAnzahlSchrauben()">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>getAnzahlSchrauben</h4>
|
||||
<pre class="methodSignature">public int getAnzahlSchrauben()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a id="istAufSchraube()">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>istAufSchraube</h4>
|
||||
<pre class="methodSignature">public boolean istAufSchraube()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a id="istVorratLeer()">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>istVorratLeer</h4>
|
||||
<pre class="methodSignature">public boolean istVorratLeer()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a id="akkuAufnehmen()">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<h4>akkuAufnehmen</h4>
|
||||
<pre class="methodSignature">public void akkuAufnehmen()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
<a id="benutzeAkku()">
|
||||
<!-- -->
|
||||
</a>
|
||||
<ul class="blockListLast">
|
||||
<li class="blockList">
|
||||
<h4>benutzeAkku</h4>
|
||||
<pre class="methodSignature">public void benutzeAkku()</pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE HTML>
|
||||
<!-- NewPage -->
|
||||
<html lang="de">
|
||||
<head>
|
||||
<!-- Generated by javadoc (11.0.2) on Sun Dec 29 10:45:58 CET 2019 -->
|
||||
<title>All Classes</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
||||
<meta name="dc.created" content="2019-12-29">
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||
<script type="text/javascript" src="script.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<h1 class="bar">All Classes</h1>
|
||||
<main role="main" class="indexContainer">
|
||||
<ul>
|
||||
<li><a href="AB1.html" title="class in <Unnamed>">AB1</a></li>
|
||||
</ul>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE HTML>
|
||||
<!-- NewPage -->
|
||||
<html lang="de">
|
||||
<head>
|
||||
<!-- Generated by javadoc (11.0.2) on Sun Dec 29 10:45:58 CET 2019 -->
|
||||
<title>Constant Field Values</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
||||
<meta name="dc.created" content="2019-12-29">
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||
<script type="text/javascript" src="script.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/javascript"><!--
|
||||
try {
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="Constant Field Values";
|
||||
}
|
||||
}
|
||||
catch(err) {
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
<noscript>
|
||||
<div>JavaScript is disabled on your browser.</div>
|
||||
</noscript>
|
||||
<main role="main">
|
||||
<div class="header">
|
||||
<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
|
||||
<section role="region">
|
||||
<h2 title="Contents">Contents</h2>
|
||||
</section>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1 @@
|
|||
unnamed package
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE HTML>
|
||||
<!-- NewPage -->
|
||||
<html lang="de">
|
||||
<head>
|
||||
<!-- Generated by javadoc (11.0.2) on Sun Dec 29 10:45:58 CET 2019 -->
|
||||
<title>Generated Documentation (Untitled)</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
||||
<script type="text/javascript">window.location.replace('AB1.html')</script>
|
||||
<noscript>
|
||||
<meta http-equiv="Refresh" content="0;AB1.html">
|
||||
</noscript>
|
||||
<link rel="canonical" href="AB1.html">
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||
</head>
|
||||
<body>
|
||||
<main role="main">
|
||||
<noscript>
|
||||
<p>JavaScript is disabled on your browser.</p>
|
||||
</noscript>
|
||||
<p><a href="AB1.html">AB1.html</a></p>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
Class documentation
|
||||
<---- javadoc command: ---->
|
||||
E:\Programme\Informatik\Greenfoot361\jdk\bin\javadoc.exe
|
||||
-author
|
||||
-version
|
||||
-nodeprecated
|
||||
-protected
|
||||
-Xdoclint:none
|
||||
-noindex
|
||||
-notree
|
||||
-nohelp
|
||||
-nonavbar
|
||||
-source
|
||||
11
|
||||
-classpath
|
||||
E:\Programme\Informatik\Greenfoot361\lib\extensions\greenfoot.jar;E:\Programme\Informatik\Greenfoot361\lib\bluejcore.jar;E:\Programme\Informatik\Greenfoot361\lib\bluejeditor.jar;E:\Programme\Informatik\Greenfoot361\lib\bluejext.jar;E:\Programme\Informatik\Greenfoot361\lib\junit-4.11.jar;E:\Programme\Informatik\Greenfoot361\lib\hamcrest-core-1.3.jar;E:\Programme\Informatik\Greenfoot361\lib\bluej.jar;E:\Programme\Informatik\Greenfoot361\lib\classgraph-4.2.6.jar;E:\Programme\Informatik\Greenfoot361\lib\diffutils-1.2.1.jar;E:\Programme\Informatik\Greenfoot361\lib\commons-logging-api-1.1.2.jar;E:\Programme\Informatik\Greenfoot361\lib\jl1.0.1.jar;E:\Programme\Informatik\Greenfoot361\lib\opencsv-2.3.jar;E:\Programme\Informatik\Greenfoot361\lib\xom-1.2.9.jar;E:\Programme\Informatik\Greenfoot361\lib\lang-stride.jar;E:\Programme\Informatik\Greenfoot361\lib\nsmenufx-2.1.4.jar;E:\Programme\Informatik\Greenfoot361\lib\richtextfx-fat-0.9.0.jar;E:\Programme\Informatik\Greenfoot361\lib\guava-17.0.jar;E:\Programme\Informatik\Greenfoot361\lib\httpclient-4.1.1.jar;E:\Programme\Informatik\Greenfoot361\lib\httpcore-4.1.jar;E:\Programme\Informatik\Greenfoot361\lib\httpmime-4.1.1.jar;E:\Programme\Informatik\Greenfoot361\lib\javafx\lib\javafx.base.jar;E:\Programme\Informatik\Greenfoot361\lib\javafx\lib\javafx.controls.jar;E:\Programme\Informatik\Greenfoot361\lib\javafx\lib\javafx.fxml.jar;E:\Programme\Informatik\Greenfoot361\lib\javafx\lib\javafx.graphics.jar;E:\Programme\Informatik\Greenfoot361\lib\javafx\lib\javafx.media.jar;E:\Programme\Informatik\Greenfoot361\lib\javafx\lib\javafx.properties.jar;E:\Programme\Informatik\Greenfoot361\lib\javafx\lib\javafx.swing.jar;E:\Programme\Informatik\Greenfoot361\lib\javafx\lib\javafx.web.jar;F:\Informatik\Fortbildung ZPG IMP9\Greenfoot\OptischeTaeuschungUnterklasse V3 - Animation\jdom-1.1.3.jar;F:\Informatik\Fortbildung Jahreskurs\jahreskurs_einfuehrung_programmierung\01_ReaktorRobot_GF361_20191229\3_vorlagen_tauschordner\01_ReaktorRobot_GF361_Szenario_Roh
|
||||
-d
|
||||
F:\Informatik\Fortbildung Jahreskurs\jahreskurs_einfuehrung_programmierung\01_ReaktorRobot_GF361_20191229\3_vorlagen_tauschordner\01_ReaktorRobot_GF361_Szenario_Roh\doc
|
||||
-encoding
|
||||
windows-1252
|
||||
-charset
|
||||
windows-1252
|
||||
F:\Informatik\Fortbildung Jahreskurs\jahreskurs_einfuehrung_programmierung\01_ReaktorRobot_GF361_20191229\3_vorlagen_tauschordner\01_ReaktorRobot_GF361_Szenario_Roh\AB1.java
|
||||
<---- end of javadoc command ---->
|
||||
Loading source file F:\Informatik\Fortbildung Jahreskurs\jahreskurs_einfuehrung_programmierung\01_ReaktorRobot_GF361_20191229\3_vorlagen_tauschordner\01_ReaktorRobot_GF361_Szenario_Roh\AB1.java...
|
||||
Constructing Javadoc information...
|
||||
warning: unknown enum constant Tag.Any
|
||||
reason: class file for threadchecker.Tag not found
|
||||
warning: unknown enum constant Tag.Any
|
||||
warning: unknown enum constant Tag.Any
|
||||
warning: unknown enum constant Tag.Any
|
||||
Standard Doclet version 11.0.2
|
||||
Building tree for all the packages and classes...
|
||||
Generating F:\Informatik\Fortbildung Jahreskurs\jahreskurs_einfuehrung_programmierung\01_ReaktorRobot_GF361_20191229\3_vorlagen_tauschordner\01_ReaktorRobot_GF361_Szenario_Roh\doc\AB1.html...
|
||||
Generating F:\Informatik\Fortbildung Jahreskurs\jahreskurs_einfuehrung_programmierung\01_ReaktorRobot_GF361_20191229\3_vorlagen_tauschordner\01_ReaktorRobot_GF361_Szenario_Roh\doc\package-summary.html...
|
||||
Generating F:\Informatik\Fortbildung Jahreskurs\jahreskurs_einfuehrung_programmierung\01_ReaktorRobot_GF361_20191229\3_vorlagen_tauschordner\01_ReaktorRobot_GF361_Szenario_Roh\doc\constant-values.html...
|
||||
Building index for all the packages and classes...
|
||||
Building index for all classes...
|
||||
Generating F:\Informatik\Fortbildung Jahreskurs\jahreskurs_einfuehrung_programmierung\01_ReaktorRobot_GF361_20191229\3_vorlagen_tauschordner\01_ReaktorRobot_GF361_Szenario_Roh\doc\allclasses.html...
|
||||
Generating F:\Informatik\Fortbildung Jahreskurs\jahreskurs_einfuehrung_programmierung\01_ReaktorRobot_GF361_20191229\3_vorlagen_tauschordner\01_ReaktorRobot_GF361_Szenario_Roh\doc\allclasses.html...
|
||||
Generating F:\Informatik\Fortbildung Jahreskurs\jahreskurs_einfuehrung_programmierung\01_ReaktorRobot_GF361_20191229\3_vorlagen_tauschordner\01_ReaktorRobot_GF361_Szenario_Roh\doc\index.html...
|
||||
4 warnings
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
<!DOCTYPE HTML>
|
||||
<!-- NewPage -->
|
||||
<html lang="de">
|
||||
<head>
|
||||
<!-- Generated by javadoc (11.0.2) on Sun Dec 29 10:45:58 CET 2019 -->
|
||||
<title><Unnamed></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
|
||||
<meta name="dc.created" content="2019-12-29">
|
||||
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
|
||||
<script type="text/javascript" src="script.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/javascript"><!--
|
||||
try {
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="<Unnamed>";
|
||||
}
|
||||
}
|
||||
catch(err) {
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
<noscript>
|
||||
<div>JavaScript is disabled on your browser.</div>
|
||||
</noscript>
|
||||
<main role="main">
|
||||
<div class="header">
|
||||
<h1 title="Package" class="title">Package <Unnamed></h1>
|
||||
</div>
|
||||
<div class="contentContainer">
|
||||
<ul class="blockList">
|
||||
<li class="blockList">
|
||||
<table class="typeSummary">
|
||||
<caption><span>Class Summary</span><span class="tabEnd"> </span></caption>
|
||||
<tr>
|
||||
<th class="colFirst" scope="col">Class</th>
|
||||
<th class="colLast" scope="col">Description</th>
|
||||
</tr>
|
||||
<tbody>
|
||||
<tr class="altColor">
|
||||
<th class="colFirst" scope="row"><a href="AB1.html" title="class in <Unnamed>">AB1</a></th>
|
||||
<td class="colLast">
|
||||
<div class="block">Die Klasse AB1 ist eine Unterklasse von Roboter.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,139 @@
|
|||
/*
|
||||
* Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
var moduleSearchIndex;
|
||||
var packageSearchIndex;
|
||||
var typeSearchIndex;
|
||||
var memberSearchIndex;
|
||||
var tagSearchIndex;
|
||||
function loadScripts(doc, tag) {
|
||||
createElem(doc, tag, 'jquery/jszip/dist/jszip.js');
|
||||
createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils.js');
|
||||
if (window.navigator.userAgent.indexOf('MSIE ') > 0 || window.navigator.userAgent.indexOf('Trident/') > 0 ||
|
||||
window.navigator.userAgent.indexOf('Edge/') > 0) {
|
||||
createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils-ie.js');
|
||||
}
|
||||
createElem(doc, tag, 'search.js');
|
||||
|
||||
$.get(pathtoroot + "module-search-index.zip")
|
||||
.done(function() {
|
||||
JSZipUtils.getBinaryContent(pathtoroot + "module-search-index.zip", function(e, data) {
|
||||
var zip = new JSZip(data);
|
||||
zip.load(data);
|
||||
moduleSearchIndex = JSON.parse(zip.file("module-search-index.json").asText());
|
||||
});
|
||||
});
|
||||
$.get(pathtoroot + "package-search-index.zip")
|
||||
.done(function() {
|
||||
JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) {
|
||||
var zip = new JSZip(data);
|
||||
zip.load(data);
|
||||
packageSearchIndex = JSON.parse(zip.file("package-search-index.json").asText());
|
||||
});
|
||||
});
|
||||
$.get(pathtoroot + "type-search-index.zip")
|
||||
.done(function() {
|
||||
JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) {
|
||||
var zip = new JSZip(data);
|
||||
zip.load(data);
|
||||
typeSearchIndex = JSON.parse(zip.file("type-search-index.json").asText());
|
||||
});
|
||||
});
|
||||
$.get(pathtoroot + "member-search-index.zip")
|
||||
.done(function() {
|
||||
JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) {
|
||||
var zip = new JSZip(data);
|
||||
zip.load(data);
|
||||
memberSearchIndex = JSON.parse(zip.file("member-search-index.json").asText());
|
||||
});
|
||||
});
|
||||
$.get(pathtoroot + "tag-search-index.zip")
|
||||
.done(function() {
|
||||
JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) {
|
||||
var zip = new JSZip(data);
|
||||
zip.load(data);
|
||||
tagSearchIndex = JSON.parse(zip.file("tag-search-index.json").asText());
|
||||
});
|
||||
});
|
||||
if (!moduleSearchIndex) {
|
||||
createElem(doc, tag, 'module-search-index.js');
|
||||
}
|
||||
if (!packageSearchIndex) {
|
||||
createElem(doc, tag, 'package-search-index.js');
|
||||
}
|
||||
if (!typeSearchIndex) {
|
||||
createElem(doc, tag, 'type-search-index.js');
|
||||
}
|
||||
if (!memberSearchIndex) {
|
||||
createElem(doc, tag, 'member-search-index.js');
|
||||
}
|
||||
if (!tagSearchIndex) {
|
||||
createElem(doc, tag, 'tag-search-index.js');
|
||||
}
|
||||
$(window).resize(function() {
|
||||
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
|
||||
});
|
||||
}
|
||||
|
||||
function createElem(doc, tag, path) {
|
||||
var script = doc.createElement(tag);
|
||||
var scriptElement = doc.getElementsByTagName(tag)[0];
|
||||
script.src = pathtoroot + path;
|
||||
scriptElement.parentNode.insertBefore(script, scriptElement);
|
||||
}
|
||||
|
||||
function show(type) {
|
||||
count = 0;
|
||||
for (var key in data) {
|
||||
var row = document.getElementById(key);
|
||||
if ((data[key] & type) !== 0) {
|
||||
row.style.display = '';
|
||||
row.className = (count++ % 2) ? rowColor : altColor;
|
||||
}
|
||||
else
|
||||
row.style.display = 'none';
|
||||
}
|
||||
updateTabs(type);
|
||||
}
|
||||
|
||||
function updateTabs(type) {
|
||||
for (var value in tabs) {
|
||||
var sNode = document.getElementById(tabs[value][0]);
|
||||
var spanNode = sNode.firstChild;
|
||||
if (value == type) {
|
||||
sNode.className = activeTableTab;
|
||||
spanNode.innerHTML = tabs[value][1];
|
||||
}
|
||||
else {
|
||||
sNode.className = tableTab;
|
||||
spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function updateModuleFrame(pFrame, cFrame) {
|
||||
top.packageFrame.location = pFrame;
|
||||
top.classFrame.location = cFrame;
|
||||
}
|
||||
|
|
@ -0,0 +1,906 @@
|
|||
/*
|
||||
* Javadoc style sheet
|
||||
*/
|
||||
|
||||
@import url('resources/fonts/dejavu.css');
|
||||
|
||||
/*
|
||||
* Styles for individual HTML elements.
|
||||
*
|
||||
* These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
|
||||
* HTML element throughout the page.
|
||||
*/
|
||||
|
||||
body {
|
||||
background-color:#ffffff;
|
||||
color:#353833;
|
||||
font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
|
||||
font-size:14px;
|
||||
margin:0;
|
||||
padding:0;
|
||||
height:100%;
|
||||
width:100%;
|
||||
}
|
||||
iframe {
|
||||
margin:0;
|
||||
padding:0;
|
||||
height:100%;
|
||||
width:100%;
|
||||
overflow-y:scroll;
|
||||
border:none;
|
||||
}
|
||||
a:link, a:visited {
|
||||
text-decoration:none;
|
||||
color:#4A6782;
|
||||
}
|
||||
a[href]:hover, a[href]:focus {
|
||||
text-decoration:none;
|
||||
color:#bb7a2a;
|
||||
}
|
||||
a[name] {
|
||||
color:#353833;
|
||||
}
|
||||
a[name]:before, a[name]:target, a[id]:before, a[id]:target {
|
||||
content:"";
|
||||
display:inline-block;
|
||||
position:relative;
|
||||
padding-top:129px;
|
||||
margin-top:-129px;
|
||||
}
|
||||
pre {
|
||||
font-family:'DejaVu Sans Mono', monospace;
|
||||
font-size:14px;
|
||||
}
|
||||
h1 {
|
||||
font-size:20px;
|
||||
}
|
||||
h2 {
|
||||
font-size:18px;
|
||||
}
|
||||
h3 {
|
||||
font-size:16px;
|
||||
font-style:italic;
|
||||
}
|
||||
h4 {
|
||||
font-size:13px;
|
||||
}
|
||||
h5 {
|
||||
font-size:12px;
|
||||
}
|
||||
h6 {
|
||||
font-size:11px;
|
||||
}
|
||||
ul {
|
||||
list-style-type:disc;
|
||||
}
|
||||
code, tt {
|
||||
font-family:'DejaVu Sans Mono', monospace;
|
||||
font-size:14px;
|
||||
padding-top:4px;
|
||||
margin-top:8px;
|
||||
line-height:1.4em;
|
||||
}
|
||||
dt code {
|
||||
font-family:'DejaVu Sans Mono', monospace;
|
||||
font-size:14px;
|
||||
padding-top:4px;
|
||||
}
|
||||
table tr td dt code {
|
||||
font-family:'DejaVu Sans Mono', monospace;
|
||||
font-size:14px;
|
||||
vertical-align:top;
|
||||
padding-top:4px;
|
||||
}
|
||||
sup {
|
||||
font-size:8px;
|
||||
}
|
||||
|
||||
/*
|
||||
* Styles for HTML generated by javadoc.
|
||||
*
|
||||
* These are style classes that are used by the standard doclet to generate HTML documentation.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Styles for document title and copyright.
|
||||
*/
|
||||
.clear {
|
||||
clear:both;
|
||||
height:0px;
|
||||
overflow:hidden;
|
||||
}
|
||||
.aboutLanguage {
|
||||
float:right;
|
||||
padding:0px 21px;
|
||||
font-size:11px;
|
||||
z-index:200;
|
||||
margin-top:-9px;
|
||||
}
|
||||
.legalCopy {
|
||||
margin-left:.5em;
|
||||
}
|
||||
.bar a, .bar a:link, .bar a:visited, .bar a:active {
|
||||
color:#FFFFFF;
|
||||
text-decoration:none;
|
||||
}
|
||||
.bar a:hover, .bar a:focus {
|
||||
color:#bb7a2a;
|
||||
}
|
||||
.tab {
|
||||
background-color:#0066FF;
|
||||
color:#ffffff;
|
||||
padding:8px;
|
||||
width:5em;
|
||||
font-weight:bold;
|
||||
}
|
||||
/*
|
||||
* Styles for navigation bar.
|
||||
*/
|
||||
.bar {
|
||||
background-color:#4D7A97;
|
||||
color:#FFFFFF;
|
||||
padding:.8em .5em .4em .8em;
|
||||
height:auto;/*height:1.8em;*/
|
||||
font-size:11px;
|
||||
margin:0;
|
||||
}
|
||||
.navPadding {
|
||||
padding-top: 107px;
|
||||
}
|
||||
.fixedNav {
|
||||
position:fixed;
|
||||
width:100%;
|
||||
z-index:999;
|
||||
background-color:#ffffff;
|
||||
}
|
||||
.topNav {
|
||||
background-color:#4D7A97;
|
||||
color:#FFFFFF;
|
||||
float:left;
|
||||
padding:0;
|
||||
width:100%;
|
||||
clear:right;
|
||||
height:2.8em;
|
||||
padding-top:10px;
|
||||
overflow:hidden;
|
||||
font-size:12px;
|
||||
}
|
||||
.bottomNav {
|
||||
margin-top:10px;
|
||||
background-color:#4D7A97;
|
||||
color:#FFFFFF;
|
||||
float:left;
|
||||
padding:0;
|
||||
width:100%;
|
||||
clear:right;
|
||||
height:2.8em;
|
||||
padding-top:10px;
|
||||
overflow:hidden;
|
||||
font-size:12px;
|
||||
}
|
||||
.subNav {
|
||||
background-color:#dee3e9;
|
||||
float:left;
|
||||
width:100%;
|
||||
overflow:hidden;
|
||||
font-size:12px;
|
||||
}
|
||||
.subNav div {
|
||||
clear:left;
|
||||
float:left;
|
||||
padding:0 0 5px 6px;
|
||||
text-transform:uppercase;
|
||||
}
|
||||
ul.navList, ul.subNavList {
|
||||
float:left;
|
||||
margin:0 25px 0 0;
|
||||
padding:0;
|
||||
}
|
||||
ul.navList li{
|
||||
list-style:none;
|
||||
float:left;
|
||||
padding: 5px 6px;
|
||||
text-transform:uppercase;
|
||||
}
|
||||
ul.navListSearch {
|
||||
float:right;
|
||||
margin:0 0 0 0;
|
||||
padding:0;
|
||||
}
|
||||
ul.navListSearch li {
|
||||
list-style:none;
|
||||
float:right;
|
||||
padding: 5px 6px;
|
||||
text-transform:uppercase;
|
||||
}
|
||||
ul.navListSearch li label {
|
||||
position:relative;
|
||||
right:-16px;
|
||||
}
|
||||
ul.subNavList li {
|
||||
list-style:none;
|
||||
float:left;
|
||||
}
|
||||
.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
|
||||
color:#FFFFFF;
|
||||
text-decoration:none;
|
||||
text-transform:uppercase;
|
||||
}
|
||||
.topNav a:hover, .bottomNav a:hover {
|
||||
text-decoration:none;
|
||||
color:#bb7a2a;
|
||||
text-transform:uppercase;
|
||||
}
|
||||
.navBarCell1Rev {
|
||||
background-color:#F8981D;
|
||||
color:#253441;
|
||||
margin: auto 5px;
|
||||
}
|
||||
.skipNav {
|
||||
position:absolute;
|
||||
top:auto;
|
||||
left:-9999px;
|
||||
overflow:hidden;
|
||||
}
|
||||
/*
|
||||
* Styles for page header and footer.
|
||||
*/
|
||||
.header, .footer {
|
||||
clear:both;
|
||||
margin:0 20px;
|
||||
padding:5px 0 0 0;
|
||||
}
|
||||
.indexNav {
|
||||
position:relative;
|
||||
font-size:12px;
|
||||
background-color:#dee3e9;
|
||||
}
|
||||
.indexNav ul {
|
||||
margin-top:0;
|
||||
padding:5px;
|
||||
}
|
||||
.indexNav ul li {
|
||||
display:inline;
|
||||
list-style-type:none;
|
||||
padding-right:10px;
|
||||
text-transform:uppercase;
|
||||
}
|
||||
.indexNav h1 {
|
||||
font-size:13px;
|
||||
}
|
||||
.title {
|
||||
color:#2c4557;
|
||||
margin:10px 0;
|
||||
}
|
||||
.subTitle {
|
||||
margin:5px 0 0 0;
|
||||
}
|
||||
.header ul {
|
||||
margin:0 0 15px 0;
|
||||
padding:0;
|
||||
}
|
||||
.footer ul {
|
||||
margin:20px 0 5px 0;
|
||||
}
|
||||
.header ul li, .footer ul li {
|
||||
list-style:none;
|
||||
font-size:13px;
|
||||
}
|
||||
/*
|
||||
* Styles for headings.
|
||||
*/
|
||||
div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
|
||||
background-color:#dee3e9;
|
||||
border:1px solid #d0d9e0;
|
||||
margin:0 0 6px -8px;
|
||||
padding:7px 5px;
|
||||
}
|
||||
ul.blockList ul.blockList ul.blockList li.blockList h3 {
|
||||
background-color:#dee3e9;
|
||||
border:1px solid #d0d9e0;
|
||||
margin:0 0 6px -8px;
|
||||
padding:7px 5px;
|
||||
}
|
||||
ul.blockList ul.blockList li.blockList h3 {
|
||||
padding:0;
|
||||
margin:15px 0;
|
||||
}
|
||||
ul.blockList li.blockList h2 {
|
||||
padding:0px 0 20px 0;
|
||||
}
|
||||
/*
|
||||
* Styles for page layout containers.
|
||||
*/
|
||||
.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer,
|
||||
.allClassesContainer, .allPackagesContainer {
|
||||
clear:both;
|
||||
padding:10px 20px;
|
||||
position:relative;
|
||||
}
|
||||
.indexContainer {
|
||||
margin:10px;
|
||||
position:relative;
|
||||
font-size:12px;
|
||||
}
|
||||
.indexContainer h2 {
|
||||
font-size:13px;
|
||||
padding:0 0 3px 0;
|
||||
}
|
||||
.indexContainer ul {
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
.indexContainer ul li {
|
||||
list-style:none;
|
||||
padding-top:2px;
|
||||
}
|
||||
.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
|
||||
font-size:12px;
|
||||
font-weight:bold;
|
||||
margin:10px 0 0 0;
|
||||
color:#4E4E4E;
|
||||
}
|
||||
.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
|
||||
margin:5px 0 10px 0px;
|
||||
font-size:14px;
|
||||
font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
|
||||
}
|
||||
.serializedFormContainer dl.nameValue dt {
|
||||
margin-left:1px;
|
||||
font-size:1.1em;
|
||||
display:inline;
|
||||
font-weight:bold;
|
||||
}
|
||||
.serializedFormContainer dl.nameValue dd {
|
||||
margin:0 0 0 1px;
|
||||
font-size:1.1em;
|
||||
display:inline;
|
||||
}
|
||||
/*
|
||||
* Styles for lists.
|
||||
*/
|
||||
li.circle {
|
||||
list-style:circle;
|
||||
}
|
||||
ul.horizontal li {
|
||||
display:inline;
|
||||
font-size:0.9em;
|
||||
}
|
||||
ul.inheritance {
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
ul.inheritance li {
|
||||
display:inline;
|
||||
list-style:none;
|
||||
}
|
||||
ul.inheritance li ul.inheritance {
|
||||
margin-left:15px;
|
||||
padding-left:15px;
|
||||
padding-top:1px;
|
||||
}
|
||||
ul.blockList, ul.blockListLast {
|
||||
margin:10px 0 10px 0;
|
||||
padding:0;
|
||||
}
|
||||
ul.blockList li.blockList, ul.blockListLast li.blockList {
|
||||
list-style:none;
|
||||
margin-bottom:15px;
|
||||
line-height:1.4;
|
||||
}
|
||||
ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
|
||||
padding:0px 20px 5px 10px;
|
||||
border:1px solid #ededed;
|
||||
background-color:#f8f8f8;
|
||||
}
|
||||
ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
|
||||
padding:0 0 5px 8px;
|
||||
background-color:#ffffff;
|
||||
border:none;
|
||||
}
|
||||
ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
|
||||
margin-left:0;
|
||||
padding-left:0;
|
||||
padding-bottom:15px;
|
||||
border:none;
|
||||
}
|
||||
ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
|
||||
list-style:none;
|
||||
border-bottom:none;
|
||||
padding-bottom:0;
|
||||
}
|
||||
table tr td dl, table tr td dl dt, table tr td dl dd {
|
||||
margin-top:0;
|
||||
margin-bottom:1px;
|
||||
}
|
||||
/*
|
||||
* Styles for tables.
|
||||
*/
|
||||
.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary,
|
||||
.requiresSummary, .packagesSummary, .providesSummary, .usesSummary {
|
||||
width:100%;
|
||||
border-spacing:0;
|
||||
border-left:1px solid #EEE;
|
||||
border-right:1px solid #EEE;
|
||||
border-bottom:1px solid #EEE;
|
||||
}
|
||||
.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary {
|
||||
padding:0px;
|
||||
}
|
||||
.overviewSummary caption, .memberSummary caption, .typeSummary caption,
|
||||
.useSummary caption, .constantsSummary caption, .deprecatedSummary caption,
|
||||
.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption {
|
||||
position:relative;
|
||||
text-align:left;
|
||||
background-repeat:no-repeat;
|
||||
color:#253441;
|
||||
font-weight:bold;
|
||||
clear:none;
|
||||
overflow:hidden;
|
||||
padding:0px;
|
||||
padding-top:10px;
|
||||
padding-left:1px;
|
||||
margin:0px;
|
||||
white-space:pre;
|
||||
}
|
||||
.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
|
||||
.constantsSummary caption a:link, .deprecatedSummary caption a:link,
|
||||
.requiresSummary caption a:link, .packagesSummary caption a:link, .providesSummary caption a:link,
|
||||
.usesSummary caption a:link,
|
||||
.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
|
||||
.constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
|
||||
.requiresSummary caption a:hover, .packagesSummary caption a:hover, .providesSummary caption a:hover,
|
||||
.usesSummary caption a:hover,
|
||||
.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
|
||||
.constantsSummary caption a:active, .deprecatedSummary caption a:active,
|
||||
.requiresSummary caption a:active, .packagesSummary caption a:active, .providesSummary caption a:active,
|
||||
.usesSummary caption a:active,
|
||||
.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
|
||||
.constantsSummary caption a:visited, .deprecatedSummary caption a:visited,
|
||||
.requiresSummary caption a:visited, .packagesSummary caption a:visited, .providesSummary caption a:visited,
|
||||
.usesSummary caption a:visited {
|
||||
color:#FFFFFF;
|
||||
}
|
||||
.useSummary caption a:link, .useSummary caption a:hover, .useSummary caption a:active,
|
||||
.useSummary caption a:visited {
|
||||
color:#1f389c;
|
||||
}
|
||||
.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
|
||||
.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span,
|
||||
.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span,
|
||||
.usesSummary caption span {
|
||||
white-space:nowrap;
|
||||
padding-top:5px;
|
||||
padding-left:12px;
|
||||
padding-right:12px;
|
||||
padding-bottom:7px;
|
||||
display:inline-block;
|
||||
float:left;
|
||||
background-color:#F8981D;
|
||||
border: none;
|
||||
height:16px;
|
||||
}
|
||||
.memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span,
|
||||
.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span {
|
||||
white-space:nowrap;
|
||||
padding-top:5px;
|
||||
padding-left:12px;
|
||||
padding-right:12px;
|
||||
margin-right:3px;
|
||||
display:inline-block;
|
||||
float:left;
|
||||
background-color:#F8981D;
|
||||
height:16px;
|
||||
}
|
||||
.memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span,
|
||||
.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span {
|
||||
white-space:nowrap;
|
||||
padding-top:5px;
|
||||
padding-left:12px;
|
||||
padding-right:12px;
|
||||
margin-right:3px;
|
||||
display:inline-block;
|
||||
float:left;
|
||||
background-color:#4D7A97;
|
||||
height:16px;
|
||||
}
|
||||
.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab,
|
||||
.packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab,
|
||||
.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab,
|
||||
.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab {
|
||||
padding-top:0px;
|
||||
padding-left:0px;
|
||||
padding-right:0px;
|
||||
background-image:none;
|
||||
float:none;
|
||||
display:inline;
|
||||
}
|
||||
.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
|
||||
.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd,
|
||||
.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd {
|
||||
display:none;
|
||||
width:5px;
|
||||
position:relative;
|
||||
float:left;
|
||||
background-color:#F8981D;
|
||||
}
|
||||
.memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd,
|
||||
.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd {
|
||||
display:none;
|
||||
width:5px;
|
||||
margin-right:3px;
|
||||
position:relative;
|
||||
float:left;
|
||||
background-color:#F8981D;
|
||||
}
|
||||
.memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd,
|
||||
.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd {
|
||||
display:none;
|
||||
width:5px;
|
||||
margin-right:3px;
|
||||
position:relative;
|
||||
background-color:#4D7A97;
|
||||
float:left;
|
||||
}
|
||||
.rowColor th, .altColor th {
|
||||
font-weight:normal;
|
||||
}
|
||||
.overviewSummary td, .memberSummary td, .typeSummary td,
|
||||
.useSummary td, .constantsSummary td, .deprecatedSummary td,
|
||||
.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td {
|
||||
text-align:left;
|
||||
padding:0px 0px 12px 10px;
|
||||
}
|
||||
th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .useSummary th,
|
||||
.constantsSummary th, .packagesSummary th, td.colFirst, td.colSecond, td.colLast, .useSummary td,
|
||||
.constantsSummary td {
|
||||
vertical-align:top;
|
||||
padding-right:0px;
|
||||
padding-top:8px;
|
||||
padding-bottom:3px;
|
||||
}
|
||||
th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .constantsSummary th,
|
||||
.packagesSummary th {
|
||||
background:#dee3e9;
|
||||
text-align:left;
|
||||
padding:8px 3px 3px 7px;
|
||||
}
|
||||
td.colFirst, th.colFirst {
|
||||
font-size:13px;
|
||||
}
|
||||
td.colSecond, th.colSecond, td.colLast, th.colConstructorName, th.colDeprecatedItemName, th.colLast {
|
||||
font-size:13px;
|
||||
}
|
||||
.constantsSummary th, .packagesSummary th {
|
||||
font-size:13px;
|
||||
}
|
||||
.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst,
|
||||
.providesSummary td.colLast {
|
||||
white-space:normal;
|
||||
font-size:13px;
|
||||
}
|
||||
.overviewSummary td.colFirst, .overviewSummary th.colFirst,
|
||||
.requiresSummary td.colFirst, .requiresSummary th.colFirst,
|
||||
.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th,
|
||||
.usesSummary td.colFirst, .usesSummary th.colFirst,
|
||||
.providesSummary td.colFirst, .providesSummary th.colFirst,
|
||||
.memberSummary td.colFirst, .memberSummary th.colFirst,
|
||||
.memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName,
|
||||
.typeSummary td.colFirst, .typeSummary th.colFirst {
|
||||
vertical-align:top;
|
||||
}
|
||||
.packagesSummary th.colLast, .packagesSummary td.colLast {
|
||||
white-space:normal;
|
||||
}
|
||||
td.colFirst a:link, td.colFirst a:visited,
|
||||
td.colSecond a:link, td.colSecond a:visited,
|
||||
th.colFirst a:link, th.colFirst a:visited,
|
||||
th.colSecond a:link, th.colSecond a:visited,
|
||||
th.colConstructorName a:link, th.colConstructorName a:visited,
|
||||
th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited,
|
||||
.constantValuesContainer td a:link, .constantValuesContainer td a:visited,
|
||||
.allClassesContainer td a:link, .allClassesContainer td a:visited,
|
||||
.allPackagesContainer td a:link, .allPackagesContainer td a:visited {
|
||||
font-weight:bold;
|
||||
}
|
||||
.tableSubHeadingColor {
|
||||
background-color:#EEEEFF;
|
||||
}
|
||||
.altColor, .altColor th {
|
||||
background-color:#FFFFFF;
|
||||
}
|
||||
.rowColor, .rowColor th {
|
||||
background-color:#EEEEEF;
|
||||
}
|
||||
/*
|
||||
* Styles for contents.
|
||||
*/
|
||||
.description pre {
|
||||
margin-top:0;
|
||||
}
|
||||
.deprecatedContent {
|
||||
margin:0;
|
||||
padding:10px 0;
|
||||
}
|
||||
.docSummary {
|
||||
padding:0;
|
||||
}
|
||||
ul.blockList ul.blockList ul.blockList li.blockList h3 {
|
||||
font-style:normal;
|
||||
}
|
||||
div.block {
|
||||
font-size:14px;
|
||||
font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
|
||||
}
|
||||
td.colLast div {
|
||||
padding-top:0px;
|
||||
}
|
||||
td.colLast a {
|
||||
padding-bottom:3px;
|
||||
}
|
||||
/*
|
||||
* Styles for formatting effect.
|
||||
*/
|
||||
.sourceLineNo {
|
||||
color:green;
|
||||
padding:0 30px 0 0;
|
||||
}
|
||||
h1.hidden {
|
||||
visibility:hidden;
|
||||
overflow:hidden;
|
||||
font-size:10px;
|
||||
}
|
||||
.block {
|
||||
display:block;
|
||||
margin:3px 10px 2px 0px;
|
||||
color:#474747;
|
||||
}
|
||||
.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink,
|
||||
.moduleLabelInPackage, .moduleLabelInType, .overrideSpecifyLabel, .packageLabelInType,
|
||||
.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel,
|
||||
.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink {
|
||||
font-weight:bold;
|
||||
}
|
||||
.deprecationComment, .emphasizedPhrase, .interfaceName {
|
||||
font-style:italic;
|
||||
}
|
||||
.deprecationBlock {
|
||||
font-size:14px;
|
||||
font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
|
||||
border-style:solid;
|
||||
border-width:thin;
|
||||
border-radius:10px;
|
||||
padding:10px;
|
||||
margin-bottom:10px;
|
||||
margin-right:10px;
|
||||
display:inline-block;
|
||||
}
|
||||
div.block div.deprecationComment, div.block div.block span.emphasizedPhrase,
|
||||
div.block div.block span.interfaceName {
|
||||
font-style:normal;
|
||||
}
|
||||
div.contentContainer ul.blockList li.blockList h2 {
|
||||
padding-bottom:0px;
|
||||
}
|
||||
/*
|
||||
* Styles for IFRAME.
|
||||
*/
|
||||
.mainContainer {
|
||||
margin:0 auto;
|
||||
padding:0;
|
||||
height:100%;
|
||||
width:100%;
|
||||
position:fixed;
|
||||
top:0;
|
||||
left:0;
|
||||
}
|
||||
.leftContainer {
|
||||
height:100%;
|
||||
position:fixed;
|
||||
width:320px;
|
||||
}
|
||||
.leftTop {
|
||||
position:relative;
|
||||
float:left;
|
||||
width:315px;
|
||||
top:0;
|
||||
left:0;
|
||||
height:30%;
|
||||
border-right:6px solid #ccc;
|
||||
border-bottom:6px solid #ccc;
|
||||
}
|
||||
.leftBottom {
|
||||
position:relative;
|
||||
float:left;
|
||||
width:315px;
|
||||
bottom:0;
|
||||
left:0;
|
||||
height:70%;
|
||||
border-right:6px solid #ccc;
|
||||
border-top:1px solid #000;
|
||||
}
|
||||
.rightContainer {
|
||||
position:absolute;
|
||||
left:320px;
|
||||
top:0;
|
||||
bottom:0;
|
||||
height:100%;
|
||||
right:0;
|
||||
border-left:1px solid #000;
|
||||
}
|
||||
.rightIframe {
|
||||
margin:0;
|
||||
padding:0;
|
||||
height:100%;
|
||||
right:30px;
|
||||
width:100%;
|
||||
overflow:visible;
|
||||
margin-bottom:30px;
|
||||
}
|
||||
/*
|
||||
* Styles specific to HTML5 elements.
|
||||
*/
|
||||
main, nav, header, footer, section {
|
||||
display:block;
|
||||
}
|
||||
/*
|
||||
* Styles for javadoc search.
|
||||
*/
|
||||
.ui-autocomplete-category {
|
||||
font-weight:bold;
|
||||
font-size:15px;
|
||||
padding:7px 0 7px 3px;
|
||||
background-color:#4D7A97;
|
||||
color:#FFFFFF;
|
||||
}
|
||||
.resultItem {
|
||||
font-size:13px;
|
||||
}
|
||||
.ui-autocomplete {
|
||||
max-height:85%;
|
||||
max-width:65%;
|
||||
overflow-y:scroll;
|
||||
overflow-x:scroll;
|
||||
white-space:nowrap;
|
||||
box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
|
||||
}
|
||||
ul.ui-autocomplete {
|
||||
position:fixed;
|
||||
z-index:999999;
|
||||
}
|
||||
ul.ui-autocomplete li {
|
||||
float:left;
|
||||
clear:both;
|
||||
width:100%;
|
||||
}
|
||||
.resultHighlight {
|
||||
font-weight:bold;
|
||||
}
|
||||
#search {
|
||||
background-image:url('resources/glass.png');
|
||||
background-size:13px;
|
||||
background-repeat:no-repeat;
|
||||
background-position:2px 3px;
|
||||
padding-left:20px;
|
||||
position:relative;
|
||||
right:-18px;
|
||||
}
|
||||
#reset {
|
||||
background-color: rgb(255,255,255);
|
||||
background-image:url('resources/x.png');
|
||||
background-position:center;
|
||||
background-repeat:no-repeat;
|
||||
background-size:12px;
|
||||
border:0 none;
|
||||
width:16px;
|
||||
height:17px;
|
||||
position:relative;
|
||||
left:-4px;
|
||||
top:-4px;
|
||||
font-size:0px;
|
||||
}
|
||||
.watermark {
|
||||
color:#545454;
|
||||
}
|
||||
.searchTagDescResult {
|
||||
font-style:italic;
|
||||
font-size:11px;
|
||||
}
|
||||
.searchTagHolderResult {
|
||||
font-style:italic;
|
||||
font-size:12px;
|
||||
}
|
||||
.searchTagResult:before, .searchTagResult:target {
|
||||
color:red;
|
||||
}
|
||||
.moduleGraph span {
|
||||
display:none;
|
||||
position:absolute;
|
||||
}
|
||||
.moduleGraph:hover span {
|
||||
display:block;
|
||||
margin: -100px 0 0 100px;
|
||||
z-index: 1;
|
||||
}
|
||||
.methodSignature {
|
||||
white-space:normal;
|
||||
}
|
||||
|
||||
/*
|
||||
* Styles for user-provided tables.
|
||||
*
|
||||
* borderless:
|
||||
* No borders, vertical margins, styled caption.
|
||||
* This style is provided for use with existing doc comments.
|
||||
* In general, borderless tables should not be used for layout purposes.
|
||||
*
|
||||
* plain:
|
||||
* Plain borders around table and cells, vertical margins, styled caption.
|
||||
* Best for small tables or for complex tables for tables with cells that span
|
||||
* rows and columns, when the "striped" style does not work well.
|
||||
*
|
||||
* striped:
|
||||
* Borders around the table and vertical borders between cells, striped rows,
|
||||
* vertical margins, styled caption.
|
||||
* Best for tables that have a header row, and a body containing a series of simple rows.
|
||||
*/
|
||||
|
||||
table.borderless,
|
||||
table.plain,
|
||||
table.striped {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
table.borderless > caption,
|
||||
table.plain > caption,
|
||||
table.striped > caption {
|
||||
font-weight: bold;
|
||||
font-size: smaller;
|
||||
}
|
||||
table.borderless th, table.borderless td,
|
||||
table.plain th, table.plain td,
|
||||
table.striped th, table.striped td {
|
||||
padding: 2px 5px;
|
||||
}
|
||||
table.borderless,
|
||||
table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
|
||||
table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
|
||||
border: none;
|
||||
}
|
||||
table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
|
||||
background-color: transparent;
|
||||
}
|
||||
table.plain {
|
||||
border-collapse: collapse;
|
||||
border: 1px solid black;
|
||||
}
|
||||
table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
|
||||
background-color: transparent;
|
||||
}
|
||||
table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
|
||||
table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
|
||||
border: 1px solid black;
|
||||
}
|
||||
table.striped {
|
||||
border-collapse: collapse;
|
||||
border: 1px solid black;
|
||||
}
|
||||
table.striped > thead {
|
||||
background-color: #E3E3E3;
|
||||
}
|
||||
table.striped > thead > tr > th, table.striped > thead > tr > td {
|
||||
border: 1px solid black;
|
||||
}
|
||||
table.striped > tbody > tr:nth-child(even) {
|
||||
background-color: #EEE
|
||||
}
|
||||
table.striped > tbody > tr:nth-child(odd) {
|
||||
background-color: #FFF
|
||||
}
|
||||
table.striped > tbody > tr > th, table.striped > tbody > tr > td {
|
||||
border-left: 1px solid black;
|
||||
border-right: 1px solid black;
|
||||
}
|
||||
table.striped > tbody > tr > th {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 959 B |
|
After Width: | Height: | Size: 166 B |
|
After Width: | Height: | Size: 941 B |
|
|
@ -0,0 +1,112 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Bildnachweise</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<head>
|
||||
<body>
|
||||
<h2>Akku</h2>
|
||||
<img src="Akku.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/de/users/Clker-Free-Vector-Images-3736/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=312747">Clker-Free-Vector-Images</a> auf <a href="https://pixabay.com/de/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=312747">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/de/vectors/batterie-elektrische-strom-positiv-312747/">https://pixabay.com/de/vectors/batterie-elektrische-strom-positiv-312747/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Fass+Atommuell</h2>
|
||||
<img src="Fass.png" style="float:left"> <img src="Atommuell.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/users/OpenClipart-Vectors-30363/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=146440">OpenClipart-Vectors</a> auf <a href="https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=146440">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/vectors/oil-barrel-black-mineral-oil-146440/">https://pixabay.com/vectors/oil-barrel-black-mineral-oil-146440/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
</body>
|
||||
<h2>Feuer</h2>
|
||||
<img src="Feuer.png" style="float:left"> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<h2>Platten mit und ohne Knöpfe/Schalter usw</h2>
|
||||
<img src="Wand.png"><img src="Rufknopf.png"><img src="RufknopfAus.png"><img src="SchalterEin.png"><img src="SchalterAus.png"><img src="Schloss.png"><img src="Stromquelle1.png"><img src="Stromquelle2.png"><img src="Stromquelle3.png"><img src="Stromquelle4.png">
|
||||
<br>Bild auf Grundlage von <a href="https://pixabay.com/users/stux-12364/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=186943">Thanks for your Like • donations welcome</a> auf <a href="https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=186943">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/photos/mdf-platte-structure-fund-wood-186943/">https://pixabay.com/photos/mdf-platte-structure-fund-wood-186943/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Strom</h2>
|
||||
<img src="Strom.png" style="float:left"> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<br><br>
|
||||
<h2>Steine</h2>
|
||||
<img src="Steine.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/de/users/Clker-Free-Vector-Images-3736/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=48279">Clker-Free-Vector-Images</a> auf <a href="https://pixabay.com/de/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=48279">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/de/vectors/felsen-felsbrocken-stein-48279/">https://pixabay.com/de/vectors/felsen-felsbrocken-stein-48279/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Roboter</h2>
|
||||
<img src="Roboter.png"><img src="Robby.png"><img src="Robita.png"><img src="Robocount.png"><img src="Robson.png">
|
||||
<br>Bild auf <a href="https://publicdomainvectors.org">Public Domain Vectors</a>
|
||||
<br>URL: <a href="https://publicdomainvectors.org/de/kostenlose-vektorgrafiken/Comic-Roboter/47643.html">https://publicdomainvectors.org/de/kostenlose-vektorgrafiken/Comic-Roboter/47643.html</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Public Domain
|
||||
<h2>Feuerlöscher</h2>
|
||||
<img src="Feuerloescher.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/users/JJuni-27151/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1139909">JJuni</a> auf <a href="https://pixabay.com/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1139909">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/illustrations/fire-extinguisher-fire-fire-truck-1139909/">https://pixabay.com/illustrations/fire-extinguisher-fire-fire-truck-1139909/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Bombe</h2>
|
||||
<img src="Bombe.png" style="float:left">
|
||||
Bild von<a href="https://pixabay.com/fr/users/Clker-Free-Vector-Images-3736/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=33424">Clker-Free-Vector-Images</a> auf <a href="https://pixabay.com/fr/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=33424">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/fr/vectors/bombe-engin-explosif-grenade-33424/">https://pixabay.com/fr/vectors/bombe-engin-explosif-grenade-33424/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Diamant</h2>
|
||||
<img src="Diamant.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/de/users/Wild0ne-920941/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1221161">M. Maggs</a> auf <a href="https://pixabay.com/de/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1221161">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/de/vectors/gems-edelsteine-wertvolle-juwel-1221161/">https://pixabay.com/de/vectors/gems-edelsteine-wertvolle-juwel-1221161/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Einsatzleiter</h2>
|
||||
<img src="Person.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/de/users/kasiagrafik-10628923/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3812661">kasiagrafik</a> auf <a href="https://pixabay.com/de/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3812661">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/de/illustrations/feuerwehrmann-feuer-löschen-3812661/">https://pixabay.com/de/illustrations/feuerwehrmann-feuer-löschen-3812661/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Schraube</h2>
|
||||
<img src="Schraube.png" style="float:left">
|
||||
Bild von <a href="https://pixabay.com/de/users/Clker-Free-Vector-Images-3736/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=33597">Clker-Free-Vector-Images</a> auf <a href="https://pixabay.com/de/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=33597">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/de/vectors/schrauben-metall-eisen-verschluss-33597/">https://pixabay.com/de/vectors/schrauben-metall-eisen-verschluss-33597/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Portal</h2>
|
||||
<img src="Portal.png" style="float:left">
|
||||
Grundlage des Bildes auf <a href="https://www.maxpixel.net">Max Pixel</a>
|
||||
<br>URL: <a href="https://www.maxpixel.net/Picture-Frame-Ring-Round-Circle-Shape-Pair-2885023">https://www.maxpixel.net/Picture-Frame-Ring-Round-Circle-Shape-Pair-2885023</a>
|
||||
<br>Lizenz: <a href="https://creativecommons.org/share-your-work/public-domain/cc0/">CC0 - Public Domain </a>
|
||||
<h2>Schlüssel</h2>
|
||||
<img src="Schluessel.png" style="float:left">
|
||||
Bild auf <a href="https://publicdomainvectors.org">Public Domain Vectors</a>
|
||||
<br>URL: <a href="https://publicdomainvectors.org/en/free-clipart/Vector-clip-art-of-grey-shaded-metal-door-key/21166.html">https://publicdomainvectors.org/en/free-clipart/Vector-clip-art-of-grey-shaded-metal-door-key/21166.html</a>
|
||||
<br>Lizenz: Public Domain
|
||||
<h2>Aufzug</h2>
|
||||
<img src="Aufzug.png" ><img src="Aufzugschacht.png" >
|
||||
<img src="Aufzugschacht2.png" >
|
||||
<br> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<h2>Bodenplatten</h2>
|
||||
<img src="bluerock.png" ><img src="bluerock1.png" ><img src="bluerock2.png" ><img src="bluerock3.png" ><img src="Bodenplatte.png" ><img src="Bodenplatte1.png" ><img src="Kontaktplatte.png" >
|
||||
<br> Selbst gezeichnet (Thomas Schaller, ZPG Informatik) mit Muster aus Gimp 2.0
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<h2>Ölfleck</h2>
|
||||
<img src="Oelfleck.png" style="float:left"> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<h2>Fragezeichen</h2>
|
||||
<img src="Gegenstand.png" style="float:left"> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<h2>Brennstab</h2>
|
||||
<img src="Brennstab.png" style="float:left"> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<h2>Türen</h2>
|
||||
<img src="Tuer2.png" style="float:left"> <img src="Tuer1.png" style="float:left">Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<br>
|
||||
<br>
|
||||
<h2>Sperrfläche</h2>
|
||||
<img src="warnung1.png" style="float:left"> Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<br><br>
|
||||
<h2>Steinwände</h2>
|
||||
<img src="Stein.png" style="float:left">
|
||||
Bild auf Grundlage von <a href="https://pixabay.com/de/users/skeeze-272447/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1429207">skeeze</a> auf <a href="https://pixabay.com/de/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=1429207">Pixabay</a>
|
||||
<br>URL: <a href="https://pixabay.com/de/photos/kiesel-steine-felsen-landschaftsbau-1429207/">https://pixabay.com/de/photos/kiesel-steine-felsen-landschaftsbau-1429207/</a> (Abrufdatum: 09.10.2019)
|
||||
<br>Lizenz: Pixabay License, Freie kommerzielle Nutzung, Kein Bildnachweis nötig
|
||||
<h2>Pfeile</h2>
|
||||
<img src="pfeil0.png"><img src="pfeil90.png"><img src="pfeil180.png"><img src="pfeil270.png">
|
||||
Selbst gezeichnet (Thomas Schaller, ZPG Informatik)
|
||||
<br>Lizenz: <a href="https://creativecommons.org/licenses/by-nc-sa/3.0/de/">CC CC BY-NC-SA 3.0 DE</a>
|
||||
<br><br>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 5 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 7 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 358 B |
|
After Width: | Height: | Size: 358 B |
|
After Width: | Height: | Size: 336 B |