first commit

This commit is contained in:
2020-06-12 23:49:11 +02:00
commit ea19e5ad2a
214 changed files with 43291 additions and 0 deletions

View File

@@ -0,0 +1,107 @@
package game;
import java.awt.Point;
import com.sun.org.apache.regexp.internal.REDebugCompiler;
import basis.*;
public class Jaeger {
private Stift meinStift;
private Point jaegerPos;
private Wolf wolf;
private Point house;
private Bild jaegerSpriteLinks;
private Bild jaegerSpriteRechts;
private int fbreite;
private int fhoehe;
private boolean alive;
public Jaeger(int fensterbreite, int fensterhoehe, Wolf wolfPos, Point phouse) {
meinStift = new Stift();
this.fbreite = fensterbreite;
this.fhoehe = fensterhoehe;
alive = true;
meinStift.setzeSchriftGroesse(30);
meinStift.setzeFuellMuster(Muster.GEFUELLT);
meinStift.setzeFarbe(Farbe.rgb(180, 249, 167));
jaegerPos = new Point();
jaegerSpriteLinks = new Bild("res/Jaeger.png");
jaegerSpriteLinks.setzeGroesse(jaegerSpriteLinks.breite() / 7.5, jaegerSpriteLinks.hoehe() / 7.5);
jaegerSpriteRechts = new Bild("res/Jaeger.png");
jaegerSpriteRechts.setzeGroesse(jaegerSpriteRechts.breite() / 7.5, jaegerSpriteRechts.hoehe() / 7.5);
jaegerSpriteRechts.spiegeleBild(false);
this.wolf = wolfPos;
this.house = phouse;
}
public double jaegerX() {
return jaegerPos.getX();
}
public double jaegerY() {
return jaegerPos.getY();
}
public boolean isAlive() {
return alive;
}
public void revive(){
alive = true;
jaegerSpriteLinks.setzeSichtbar(true);
}
public void entferne() {
jaegerSpriteLinks.setzeSichtbar(false);
alive = false;
}
public void richtung(boolean b) {
if(b) {
jaegerSpriteLinks.setzeSichtbar(false);
jaegerSpriteRechts.setzeSichtbar(true);
} else {
jaegerSpriteLinks.setzeSichtbar(true);
jaegerSpriteRechts.setzeSichtbar(false);
}
}
public void position() {
jaegerPos.setLocation(Hilfe.zufall((int) house.getX(),fbreite - jaegerSpriteLinks.breite()),
Hilfe.zufall((int) house.getY(),fhoehe - jaegerSpriteLinks.hoehe()));
jaegerSpriteLinks.setzePosition(jaegerPos.getX() - jaegerSpriteLinks.breite() / 2, jaegerPos.getY() - jaegerSpriteLinks.hoehe() / 1.5);
jaegerSpriteRechts.setzePosition(jaegerPos.getX() - jaegerSpriteRechts.breite() / 2, jaegerPos.getY() - jaegerSpriteRechts.hoehe() / 1.5);
}
public void zeichne() {
this.position();
meinStift.bewegeAuf(jaegerPos.getX(), jaegerPos.getY());
meinStift.zeichneKreis(2);
meinStift.setzeSchriftGroesse(30);
}
public void bewege(int px) {
meinStift.dreheInRichtung(wolf.wolfX(), wolf.wolfY());
Hilfe.kurzePause();
meinStift.dreheUm(Hilfe.zufall(-100, 100));
meinStift.bewegeUm(px);
jaegerSpriteLinks.setzePosition(jaegerPos.getX() - jaegerSpriteLinks.breite() / 2, jaegerPos.getY() - jaegerSpriteLinks.hoehe() / 1.5);
jaegerSpriteRechts.setzePosition(jaegerPos.getX() - jaegerSpriteRechts.breite() / 2, jaegerPos.getY() - jaegerSpriteRechts.hoehe() / 1.5);
jaegerPos.setLocation(meinStift.hPosition(), meinStift.vPosition());
meinStift.setzeFarbe(Farbe.rgb(180, 249, 167));
meinStift.setzeTransparenzGrad(0.02);
meinStift.zeichneKreis(7.5);
meinStift.setzeFarbe(Farbe.rgb(180, 249, 167));
meinStift.setzeTransparenzGrad(1);
meinStift.zeichneKreis(2);
Hilfe.warte(10);
}
}

View File

@@ -0,0 +1,82 @@
package game;
import java.awt.Point;
import basis.*;
public class Rotkeappchen {
private Stift meinStift;
private Point housePos;
private Point redPos;
private Bild redSprite;
private Bild deadRedSpriteBild;
private int fbreite;
private int fhoehe;
private boolean alive;
public Rotkeappchen(int fensterbreite, int fensterhoehe, Point house) {
meinStift = new Stift();
this.fbreite = fensterbreite;
this.fhoehe = fensterhoehe;
alive = true;
meinStift.setzeSchriftGroesse(30);
meinStift.setzeFuellMuster(Muster.GEFUELLT);
meinStift.setzeFarbe(Farbe.rgb(186, 59, 59));
redPos = new Point();
redSprite = new Bild("res/RotkeappchenSprite.png");
redSprite.setzeGroesse(redSprite.breite() / 8, redSprite.hoehe() / 8);
deadRedSpriteBild = new Bild("res/DeadRotkeappchenSprite.png");
deadRedSpriteBild.setzeSichtbar(false);
deadRedSpriteBild.setzeGroesse(deadRedSpriteBild.breite()/8, deadRedSpriteBild.hoehe()/8);
this.housePos = house;
}
public double redX() {
return redPos.getX();
}
public double redY() {
return redPos.getY();
}
public boolean isAlive() {
return alive;
}
public void revive(){
alive = true;
deadRedSpriteBild.setzeSichtbar(false);
redSprite.setzeSichtbar(true);
}
public void entferne() {
redSprite.setzeSichtbar(false);
alive = false;
deadRedSpriteBild.setzePosition(redX()-deadRedSpriteBild.breite()/2, redY()-deadRedSpriteBild.hoehe()/2);
deadRedSpriteBild.setzeSichtbar(true);
}
public void position() {
redPos.setLocation(Hilfe.zufall(50,(int) housePos.getX()), Hilfe.zufall(50, (int) housePos.getY()));
redSprite.setzePosition(redPos.getX() - redSprite.breite() / 2, redPos.getY() - redSprite.hoehe() / 1.5);
}
public void zeichne() {
this.position();
meinStift.bewegeAuf(redPos.getX(), redPos.getY());
meinStift.zeichneKreis(1);
meinStift.setzeSchriftGroesse(30);
}
public void bewege(int px) {
meinStift.dreheInRichtung(housePos.getX(), housePos.getY());
meinStift.dreheUm(Hilfe.zufall(-100, 100));
Hilfe.kurzePause();
meinStift.bewegeUm(px);
redSprite.setzePosition(redPos.getX() - redSprite.breite() / 2, redPos.getY() - redSprite.hoehe() / 1.5);
redPos.setLocation(meinStift.hPosition(), meinStift.vPosition());
meinStift.setzeFarbe(Farbe.rgb(186, 59, 59));
meinStift.zeichneKreis(2);
Hilfe.warte(10);
}
}

View File

@@ -0,0 +1,209 @@
package game;
import java.awt.Point;
import basis.*;
import reader.ReaderRotkaeppchen;
import writer.WriterRotkaeppchen;
public class Wald {
private Fenster meinFenster;
private Tastatur keyboard;
private Point house;
private Bild houseSprite;
private Bild baumSprite;
private Bild gunfireSprite;
private Bild schriftJaeger;
private Bild schriftWolfRed;
private Bild schriftWolfOma;
private Bild schriftRedDa;
private Bild rundeEnde;
private Bild explosionSprite;
private WriterRotkaeppchen writer;
private WriterRotkaeppchen analytics;
private ReaderRotkaeppchen reader;
private Rotkeappchen red;
private Wolf wolf;
private Jaeger jaeger;
//----------------------------
private int anzahl;
public Wald() {
meinFenster = new Fenster(1920, 1080);
meinFenster.setzeTitel("Rotäppchen");
meinFenster.setzeSichtbar(false);
meinFenster.ladeBildInZeichenflaeche("res/Background500.png");
keyboard = new Tastatur();
anzahl = 1;
house = new Point();
rundeEnde = new Bild("res/RundeEnde.png");
rundeEnde.setzeSichtbar(false);
rundeEnde.setzeGroesse(meinFenster.breite(), meinFenster.hoehe());
houseSprite = new Bild("res/house.png");
houseSprite.setzeGroesse(houseSprite.breite() / 5, houseSprite.hoehe() / 5);
gunfireSprite = new Bild("res/Gunfire.png");
gunfireSprite.setzeSichtbar(false);
gunfireSprite.setzeGroesse(gunfireSprite.breite()/4, gunfireSprite.hoehe()/4);
red = new Rotkeappchen(meinFenster.breite(), meinFenster.hoehe(), house);
wolf = new Wolf(meinFenster.breite(), meinFenster.hoehe(), red, house);
jaeger = new Jaeger(meinFenster.breite(), meinFenster.hoehe(), wolf, house);
explosionSprite = new Bild("res/explosion.png");
explosionSprite.setzeGroesse(explosionSprite.breite()/8, explosionSprite.hoehe()/8);
explosionSprite.setzeSichtbar(false);
schriftJaeger = new Bild("res/JaegerGeschossen.png");
schriftRedDa = new Bild("res/RotkaeppchenErreicht.png");
schriftWolfOma = new Bild("res/WolfOmaGefressen.png");
schriftWolfRed = new Bild("res/WolfGefressenSchrift.png");
schriftJaeger.setzeGroesse(schriftJaeger.breite()/2, schriftJaeger.hoehe()/2);
schriftJaeger.setzePosition(meinFenster.breite()/2-schriftJaeger.breite()/2, meinFenster.hoehe()/2-400);
schriftRedDa.setzeGroesse(schriftRedDa.breite()/2, schriftRedDa.hoehe()/2);
schriftRedDa.setzePosition(meinFenster.breite()/2-schriftRedDa.breite()/2, meinFenster.hoehe()/2-400);
schriftWolfOma.setzeGroesse(schriftWolfOma.breite()/2, schriftWolfOma.hoehe()/2);
schriftWolfOma.setzePosition(meinFenster.breite()/2-schriftWolfOma.breite()/2, meinFenster.hoehe()/2-400);
schriftWolfRed.setzeGroesse(schriftWolfRed.breite()/2, schriftWolfRed.hoehe()/2);
schriftWolfRed.setzePosition(meinFenster.breite()/2-schriftWolfRed.breite()/2, meinFenster.hoehe()/2-400);
schriftJaeger.setzeSichtbar(false);
schriftRedDa.setzeSichtbar(false);
schriftWolfOma.setzeSichtbar(false);
schriftWolfRed.setzeSichtbar(false);
for (int i = 0; i < 200; i++) {
baumSprite = new Bild("res/Baum.png");
baumSprite.setzeGroesse(houseSprite.breite() / 1.5, houseSprite.hoehe() / 1.5);
baumSprite.setzePosition(Hilfe.zufall(0, meinFenster.breite() - baumSprite.breite()),
Hilfe.zufall(0, meinFenster.hoehe() - baumSprite.hoehe()));
}
//writer = new WriterRotkaeppchen("statistics/Run.txt");
//analytics = new WriterRotkaeppchen("statistics/Results.txt");
//reader = new ReaderRotkaeppchen("statistics/Run.txt");
//writer.clear();
//analytics.clear();
}
public void zeichneHaus() {
meinFenster.ladeBildInZeichenflaeche("res/Background500.png");
meinFenster.setzeSichtbar(true);
house.setLocation(Hilfe.zufall(50, meinFenster.breite() - 50), Hilfe.zufall(50, meinFenster.hoehe() - 50));
houseSprite.setzePosition(house.getX() - houseSprite.breite() / 2, house.getY() - houseSprite.hoehe() / 2);
}
public void fuehreAus() {
System.out.println("------ " + "Runde " + anzahl + " ------");
//writer.write("------ " + "Runde " + anzahl + " ------\n");
this.zeichneHaus();
red.zeichne();
wolf.zeichne();
jaeger.zeichne();
while (!keyboard.istGedrueckt(Zeichen.ESC)) {
if(red.isAlive()) {
if(wolf.isAlive()) {
red.bewege(3);
}
else {
red.bewege(2);
}
}
if(wolf.isAlive()) {
jaeger.bewege(3);
jaeger.richtung(wolf.wolfX() > jaeger.jaegerX());
}
if(red.isAlive()) {
if (((red.redX() > wolf.wolfX() - 15) && (red.redX() < wolf.wolfX() + 15)
&& (red.redY() > wolf.wolfY() - 15 && red.redY() < wolf.wolfY() + 15))) {
System.out.println("Der Wolf hat das Rotk<74>ppchen gefressen!");
//writer.write("Der Wolf hat das Rotkaeppchen gefressen!\n");
schriftWolfRed.setzeSichtbar(true);
red.entferne();
Hilfe.warte(1000);
schriftWolfRed.setzeSichtbar(false);
}
}
if(wolf.isAlive()) {
wolf.bewege(4);
if ((wolf.wolfX() > jaeger.jaegerX() - 75 && wolf.wolfX() < jaeger.jaegerX() + 75)
&& (wolf.wolfY() > jaeger.jaegerY() - 75 && wolf.wolfY() < jaeger.jaegerY() + 75)) {
System.out.println("Der J<>ger hat den Wolf erschossen!");
//writer.write("Der Jaeger hat den Wolf erschossen!\n");
schriftJaeger.setzeSichtbar(true);
wolf.entferne();
explosionSprite.setzePosition(jaeger.jaegerX()-explosionSprite.breite()/2, jaeger.jaegerY()-explosionSprite.hoehe()/2);
explosionSprite.setzeSichtbar(true);
gunfireSprite.setzePosition(wolf.wolfX(), wolf.wolfY());
gunfireSprite.setzeSichtbar(true);
Hilfe.warte(1000);
explosionSprite.setzeSichtbar(false);
gunfireSprite.setzeSichtbar(false);
schriftJaeger.setzeSichtbar(false);
}
}
if ((red.redX() == house.getX()) && (red.redY() == house.getY())) {
System.out.println("Das Rotk<74>ppchen hat das Haus erreicht!");
//writer.write("Das Rotkaeppchen hat das Haus erreicht!\n");
schriftRedDa.setzeSichtbar(true);
Hilfe.warte(1000);
schriftRedDa.setzeSichtbar(false);
break;
}
if ((wolf.wolfX() == house.getX()) && (wolf.wolfY() == house.getY())) {
System.out.println("Der Wolf hat die Oma gefressen!");
//writer.write("Der Wolf hat die Oma gefressen!\n");
schriftWolfOma.setzeSichtbar(true);
Hilfe.warte(1000);
schriftWolfOma.setzeSichtbar(false);
break;
}
if(!wolf.isAlive() && !red.isAlive()) {
break;
}
}
System.err.println(" Runde beendet");
//writer.write(" Runde beendet\n");
rundeEnde.setzeSichtbar(true);
//analytics.clear();
//reader.read();
//for(int i = 0; i < reader.stringsLength(); i++) {
//analytics.write(reader.results()[i]);
//}
Hilfe.warte(1000);
meinFenster.loescheAlles();
rundeEnde.setzeSichtbar(false);
wolf.revive();
jaeger.revive();
red.revive();
anzahl++;
this.fuehreAus();
}
public static void main(String[] args) {
Wald wald = new Wald();
wald.fuehreAus();
}
}

View File

@@ -0,0 +1,120 @@
package game;
import java.awt.Point;
import basis.*;
public class Wolf {
private Stift meinStift;
private Point wolfPos;
private Rotkeappchen red;
private Point house;
private Bild wolfSprite;
private Bild deadWolfSprite;
private int fbreite;
private int fhoehe;
private boolean alive;
public Wolf(int fensterbreite, int fensterhoehe, Rotkeappchen redPos, Point phouse) {
meinStift = new Stift();
this.fbreite = fensterbreite;
this.fhoehe = fensterhoehe;
alive = true;
meinStift.setzeSchriftGroesse(30);
meinStift.setzeFuellMuster(Muster.GEFUELLT);
meinStift.setzeFarbe(Farbe.rgb(126,126,126));
wolfPos = new Point();
wolfSprite = new Bild("res/Wolf.png");
wolfSprite.setzeGroesse(wolfSprite.breite() / 13, wolfSprite.hoehe() / 13);
deadWolfSprite = new Bild("res/DeadWolf.png");
deadWolfSprite.setzeSichtbar(false);
deadWolfSprite.setzeGroesse(deadWolfSprite.breite() / 13, deadWolfSprite.hoehe() / 13);
this.red = redPos;
this.house = phouse;
}
public double wolfX() {
return wolfPos.getX();
}
public double wolfY() {
return wolfPos.getY();
}
public void position() {
wolfPos.setLocation(Hilfe.zufall((int) house.getX(),fbreite - wolfSprite.breite()),
Hilfe.zufall((int) house.getY(),fhoehe - wolfSprite.hoehe()));
wolfSprite.setzePosition(wolfPos.getX() - wolfSprite.breite() / 2, wolfPos.getY() - wolfSprite.hoehe() / 1.5);
}
public void zeichne() {
this.position();
meinStift.bewegeAuf(wolfPos.getX(), wolfPos.getY());
meinStift.zeichneKreis(2);
meinStift.setzeSchriftGroesse(30);
}
public void entferne() {
wolfSprite.setzeSichtbar(false);
deadWolfSprite.setzePosition(wolfX()-deadWolfSprite.breite()/2, wolfY()-deadWolfSprite.hoehe()/2);
deadWolfSprite.setzeSichtbar(true);
alive = false;
}
public boolean isAlive() {
return alive;
}
public void revive(){
alive = true;
deadWolfSprite.setzeSichtbar(false);
wolfSprite.setzeSichtbar(true);
}
public void bewege(int px) {
if(red.isAlive()) {
meinStift.dreheInRichtung(red.redX(), red.redY());
meinStift.dreheUm(Hilfe.zufall(-100, 100));
Hilfe.kurzePause();
meinStift.bewegeUm(px);
wolfSprite.setzePosition(wolfPos.getX() - wolfSprite.breite() / 2, wolfPos.getY() - wolfSprite.hoehe() / 1.5);
wolfPos.setLocation(meinStift.hPosition(), meinStift.vPosition());
meinStift.setzeFarbe(Farbe.rgb(126, 126, 126));
meinStift.setzeTransparenzGrad(0.02);
meinStift.zeichneKreis(7.5);
meinStift.setzeFarbe(Farbe.rgb(126, 126, 126));
meinStift.setzeTransparenzGrad(1);
meinStift.zeichneKreis(2);
Hilfe.warte(10);
}
else {
meinStift.dreheInRichtung(house.getX(), house.getY());
meinStift.dreheUm(Hilfe.zufall(-100, 100));
Hilfe.kurzePause();
meinStift.bewegeUm(px);
wolfSprite.setzePosition(wolfPos.getX() - wolfSprite.breite() / 2, wolfPos.getY() - wolfSprite.hoehe() / 1.5);
wolfPos.setLocation(meinStift.hPosition(), meinStift.vPosition());
meinStift.setzeFarbe(Farbe.rgb(126, 126, 126));
meinStift.setzeTransparenzGrad(0.02);
meinStift.zeichneKreis(7.5);
meinStift.setzeFarbe(Farbe.rgb(126, 126, 126));
meinStift.setzeTransparenzGrad(1);
meinStift.zeichneKreis(2);
Hilfe.warte(10);
meinStift.dreheInRichtung(house.getX(), house.getY());
meinStift.dreheUm(Hilfe.zufall(-100, 100));
Hilfe.kurzePause();
meinStift.bewegeUm(px);
wolfSprite.setzePosition(wolfPos.getX() - wolfSprite.breite() / 2, wolfPos.getY() - wolfSprite.hoehe() / 1.5);
wolfPos.setLocation(meinStift.hPosition(), meinStift.vPosition());
meinStift.setzeFarbe(Farbe.rgb(126, 126, 126));
meinStift.setzeTransparenzGrad(0.02);
meinStift.zeichneKreis(7.5);
meinStift.setzeFarbe(Farbe.rgb(126, 126, 126));
meinStift.setzeTransparenzGrad(1);
meinStift.zeichneKreis(2);
Hilfe.warte(10);
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -0,0 +1,8 @@
Gesamte Aktionen: 10719293
Der Wolf hat das Rotk<74>ppchen 1913319-mal gefressen. (18%)
Der Wolf hat die Oma 947675-mal gefressen. (9%)
Der J<>ger hat den Wolf 3726615-mal erschossen. (35%)
Das Rotk<74>ppchen hat das Haus der Oma 4131684-mal erreicht. (39%)
Not matched: 12093006 / Gesamt: 22812299 (53%)
Runden: 6046503
Male durchgelaufen: 3477.0

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
Gesamte Aktionen: 2
Der Wolf hat das Rotk<74>ppchen 0-mal gefressen. (0%)
Der Wolf hat die Oma 0-mal gefressen. (0%)
Der J<>ger hat den Wolf 1-mal erschossen. (50%)
Das Rotk<74>ppchen hat das Haus der Oma 1-mal erreicht. (50%)
Not matched: 2 / Gesamt: 4 (50%)
Runden: 1
Male durchgelaufen: 1.0

File diff suppressed because it is too large Load Diff