Compare commits

..

1 Commits

Author SHA1 Message Date
Kai Sellmann 6668b0be64 Update notwendig prüfen vor Merge 2023-05-30 19:09:12 +02:00
40 changed files with 275 additions and 675 deletions

View File

@ -6,14 +6,6 @@
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="src" path="beispieleVL"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="lib/game_framework.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
@ -21,15 +13,25 @@
</classpathentry> </classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"> <classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes> <attributes>
<attribute name="test" value="true"/>
<attribute name="optional" value="true"/> <attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<attributes>
<attribute name="module" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="lib/game_framework.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/5"/>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes> <attributes>
<attribute name="maven.pomderived" value="true"/> <attribute name="maven.pomderived" value="true"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="lib" path="lib/jcommon-1.0.23.jar"/>
<classpathentry kind="lib" path="lib/jfreechart-1.0.19.jar"/>
<classpathentry kind="output" path="target/classes"/> <classpathentry kind="output" path="target/classes"/>
</classpath> </classpath>

View File

@ -1,110 +1,8 @@
eclipse.preferences.version=1 eclipse.preferences.version=1
org.eclipse.jdt.core.builder.annotationPath.allLocations=disabled
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.compliance=17 org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.problem.APILeak=warning
org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
org.eclipse.jdt.core.compiler.problem.deadCode=warning
org.eclipse.jdt.core.compiler.problem.deprecation=warning
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
org.eclipse.jdt.core.compiler.problem.nullReference=warning
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info
org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedImport=warning
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
org.eclipse.jdt.core.compiler.release=disabled org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=17 org.eclipse.jdt.core.compiler.source=17

View File

@ -1,21 +0,0 @@
package enumeration;
public class Main {
public static void main(String[] args) {
System.out.println(Planet.values());
for (Planet planet : Planet.values()) {
System.out.printf("%s -> %,.0f km/h%n",
planet.name(),
planet.bahngeschwindigkeit());
}
System.out.println(Planet.MERKUR.toString());
System.out.println(Planet.MERKUR.name());
System.out.println(Planet.JUPITER.toString());
System.out.println(Planet.JUPITER.name());
}
}

View File

@ -1,22 +0,0 @@
package enumeration;
public enum Operation {
ADDITION {
public double anwenden(double op1, double op2) {
return op1 + op2;
}
},
SUBTRAKTION {
public double anwenden(double op1, double op2) {
return op1 - op2;
}
},
MULTIPLIKATION {
public double anwenden(double op1, double op2) {
return op1 * op2;
}
};
public abstract double anwenden(double op1, double op2);
}

View File

@ -1,27 +0,0 @@
package enumeration;
public enum Planet {
MERKUR(59e+6, 88), VENUS(108e+6, 225),
ERDE(150e+6, 365), MARS(228e+6, 1.9*365),
JUPITER(778e+6, 11.9*365), SATURN(1427e+6, 29.5*365),
URANUS(2870e+6, 84*365), NEPTUN(4497e+6, 165*365);
private final double entfernungsonne;
private final double umlaufzeit;
private Planet(double entfernungsonne, double umlaufzeit) {
this.entfernungsonne = entfernungsonne;
this.umlaufzeit = umlaufzeit;
}
public double bahngeschwindigkeit() {
return 2 * entfernungsonne * Math.PI / umlaufzeit / 24;
}
@Override
public String toString() {
return name() + " ist der " + (ordinal() + 1) + " Planet im Sonnensystem.";
}
}

View File

@ -1,18 +0,0 @@
package enumeration;
public class Rechner {
public double rechne(double op1, double op2, Operation operation) {
return operation.anwenden(op1, op2);
}
public static void main(String[] args) {
Rechner r = new Rechner();
double summe = r.rechne(5, 5, Operation.ADDITION);
double differenz = r.rechne(6, 3, Operation.SUBTRAKTION);
double produkt = r.rechne(6, 3, Operation.MULTIPLIKATION);
System.out.printf("%.0f, %.0f, %.0f", summe, differenz, produkt);
}
}

View File

@ -1,6 +0,0 @@
package enumeration;
public enum Wochentag {
MONTAG, DIENSTAG, MITTWOCH, DONNERSTAG, FREITAG, SAMSTAG, SONNTAG;
}

View File

@ -1,22 +0,0 @@
package generics;
public class ExtStack<T> extends SimpleStack<T> {
public ExtStack(int size) {
super(size);
}
/*
* In dieser Methode passiert nichts anderes als die Ausgabe des zuletzt
* gesetzten Wertes (in diesem Fall ein String). Das erzeugte Array wurde
* üder den Konstruktor ExtStack angelegt, indem die Arraygröße und
* der Datentyp in dem Konstruktoraufruf (siehe Mainmethode) übergeben wurde
* und der Aufruf an die Superklasse SimpleStack weitergeleitet wurde.
*/
public T peek() {
T wert = pop(); // Hier wird der Wert mit pop() aus dem Array geholt
push(wert); // und in die Variable wert geschrieben
return wert; // danach erfolgt die Rückmeldung an den Methodenaufruf
}
}

View File

@ -1,29 +0,0 @@
package generics;
public class Main {
public static void main(String[] args) {
var simplestack1 = new SimpleStack<String>(5);
simplestack1.push("Hallo");
simplestack1.push("das ist ein Beispiel für");
simplestack1.push("einen SimpleStack.");
simplestack1.push("Logisch wird alles in ");
simplestack1.push("verkehrter Reihenfolge ausgegeben.");
for (int i = simplestack1.getSize(); i > 0 ; i--) {
System.out.print(simplestack1.pop() + "| |");
}
var extstack1 = new ExtStack<String>(2);
extstack1.push("Hallo");
extstack1.push("Hello");
System.out.println(extstack1.peek());
}
}

View File

@ -1,39 +0,0 @@
package generics;
public class SimpleStack<T> {
/*
* Der Einsatz eines Typ-Parameters hält diese Klasse generisch und
* ermöglicht es, dass erst in der Main der Datentyp des Arrays festgelegt
* werden kann. Somit ist die generische Klasse in ihrer Implementierung
* unabhängig von der Main-Klasse.
*/
private T[] stack;
private int pos;
@SuppressWarnings("unchecked")
public SimpleStack(int size) {
stack = (T[]) new Object[size];
pos = 0;
}
public void push(T o) {
stack[pos++] = o;
}
public T pop() {
return stack[--pos];
}
/*
* Dies ist ziemlich schlechter Programmierstiel, da für einen gut
* funktionierenden Stack noch weitere Methoden fehlen.
* Diese sind zum Beispiel swap(), peek() und clear(). So das es möglich
* ist Daten zu Tauschen (swap()), Daten zu löschen (clear()) oder nach
* Daten zu suchen (peek())
*/
public int getSize () {
// TODO Auto-generated method stub
return pos;
}
}

View File

@ -1,27 +0,0 @@
package records;
public class Rechteck extends Exception{
record Rectangle(double laenge, double breite) {
public Rectangle {
if (laenge <= 0 || breite <= 0) {
throw new java.lang.IllegalArgumentException(
String.format("Keine 0 oder negative Werte erlaubt."));
}
}
}
public static void main(String[] args) {
Rectangle r = new Rectangle(4.0, 3.0);
Rectangle r2 = new Rectangle(1.0, 2.0);
System.out.println("Fläche: " + r.laenge() * r.breite());
System.out.println("Fläche2: " + r2.laenge() * r2.breite());
}
}

View File

@ -1,28 +0,0 @@
package records;
public final class RechteckOhneRecords {
private final double laenge;
private final double breite;
public RechteckOhneRecords(double laenge, double breite) {
this.laenge = laenge;
this.breite = breite;
}
public static void main(String[] args) {
RechteckOhneRecords r = new RechteckOhneRecords(4, 3);
System.out.println("Fläche = " + r.laenge() * r.breite());
}
private double breite() {
// TODO Auto-generated method stub
return laenge;
}
private double laenge() {
// TODO Auto-generated method stub
return breite;
}
}

View File

@ -1,4 +1,3 @@
package Crypter;
/** /**

View File

@ -1,4 +1,3 @@
package Crypter;
import java.util.HashMap; import java.util.HashMap;

View File

@ -1,4 +1,3 @@
package Crypter;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;

View File

@ -0,0 +1,54 @@
package pr2.auffrischung.suchemax;
import java.util.ArrayList;
public class ArraySpielerei {
public static void main(String[] args) {
int[] arr;
// arr[0] = 1; geht nicht, weil Array noch nicht
// initialisiert ist.
arr = new int[5];
// dies funktioniert jetzt, da mit new das Array initialisiert wurde
arr[0] = 1;
System.out.println(arr); // liefert NUR die Referenz auf das im
// Heap liegende Array
System.out.println(arr[0]); // hier wird ein konkreter Wert aus dem
// Array ausgegeben
// Array Liste und ein Array anlegen, kopieren und casten
int[] einArray = {1, 2, 3, 4, 5};
int[] nochEinArray = new int[5];
for (int i = 0; i < nochEinArray.length; i++) {
nochEinArray[i] = i + 5;
}
for (int einmal : einArray) {
System.out.print(einmal + " ");
}
System.out.println();
for (int einmal : nochEinArray) {
System.out.print(einmal + " ");
}
System.out.println();
ArrayList<Integer> arr2 = new ArrayList<Integer>();
for (int i = 1; i <= 10; i++) {
arr2.add(i);
}
System.out.println(arr2.get(2));
}
}

View File

@ -5,9 +5,22 @@ import java.util.Random;
/** /**
* Ein einfacher Würfel. * Ein einfacher Würfel.
*/ */
public enum Wuerfel { public class Wuerfel {
D4(4), D6(6), D8(8), D10(10), D12(12); /** 4-seitiger Würfel. */
public static final int D4 = 4;
/** 6-seitiger Würfel. */
public static final int D6 = 6;
/** 8-seitiger Würfel. */
public static final int D8 = 8;
/** 10-seitiger Würfel. */
public static final int D10 = 10;
/** 12-seitiger Würfel. */
public static final int D12 = 13;
/** /**
* Zufallszahlengenerator. * Zufallszahlengenerator.
@ -24,8 +37,8 @@ public enum Wuerfel {
* *
* @param typ Anzahl der Seiten des Würfels. * @param typ Anzahl der Seiten des Würfels.
*/ */
private Wuerfel(int nr) { public Wuerfel(int numSides) {
this.numSides = nr; this.numSides = numSides;
} }
/** /**

View File

@ -3,7 +3,6 @@ package pr2.enums.eigene.test;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import pr2.enums.eigene.Wuerfel; import pr2.enums.eigene.Wuerfel;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
/** /**
@ -14,32 +13,32 @@ public class WuerfelTest {
/** /**
* Anzahl der Durchläufe (Gesetz der großen Zahl!). * Anzahl der Durchläufe (Gesetz der großen Zahl!).
*/ */
private static final int RUNS = 10000; private static final int RUNS = 10000000;
@Test @Test
void testFairnessD4() { void testFairnessD4() {
internalTestFairness(Wuerfel.D4, 2.5); internalTestFairness(new Wuerfel(Wuerfel.D4), 2.5);
} }
@Test @Test
void testFairnessD6() { void testFairnessD6() {
internalTestFairness(Wuerfel.D6, 3.5); internalTestFairness(new Wuerfel(Wuerfel.D6), 3.5);
} }
@Test @Test
void testFairnessD8() { void testFairnessD8() {
internalTestFairness(Wuerfel.D8, 4.5); internalTestFairness(new Wuerfel(Wuerfel.D8), 4.5);
} }
@Test @Test
void testFairnessD10() { void testFairnessD10() {
internalTestFairness(Wuerfel.D10, 5.5); internalTestFairness(new Wuerfel(Wuerfel.D10), 5.5);
} }
@Test @Test
void testFairnessD12() { void testFairnessD12() {
internalTestFairness(Wuerfel.D12, 6.5); internalTestFairness(new Wuerfel(Wuerfel.D12), 6.5);
} }
/** /**

View File

@ -2,29 +2,4 @@ package pr2.enums.filme;
public enum LieblingsFilme { public enum LieblingsFilme {
FILM1("The Last Boy Scout", "Tony Scott", 10),
FILM2("Per Anhalter durch die Galaxy", "Garth Jennings", 8),
FILM3("Die Bombe fliegt", "Tom Bussmann", 9);
private final String title;
private final String regie;
private final int rating;
private LieblingsFilme(String title, String regie, int rating) {
this.title = title;
this.regie = regie;
this.rating = rating;
}
@Override
public String toString(){
return "Filmtitel: " + title + "\nRegie: " + regie + "\nDer Film erhält " + rating + " Punkte von mir.\n";
}
public static String getFilm(LieblingsFilme film) {
return film.toString();
}
} }

View File

@ -2,17 +2,6 @@ package pr2.enums.filme;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
// TODO: Alle Filme ausgeben
// System.out.println(LieblingsFilme.FILM1);
// System.out.println(LieblingsFilme.FILM2);
// System.out.println(LieblingsFilme.FILM3);
for (LieblingsFilme filme : LieblingsFilme.values()) {
System.out.println(filme.toString());
}
System.out.println(LieblingsFilme.getFilm(LieblingsFilme.FILM2));
} }
} }

View File

@ -1,27 +1,4 @@
package pr2.enums.schnick; package pr2.enums.schnick;
public enum Move { public enum Move {
STEIN, PAPIER, SCHERE;
public static boolean checkMove(String c, String s) {
String move = c + s;
if (move == "rp"){
return false;
} else if (move == "pr") {
return true;
} else if (move == "rs") {
return false;
} else if (move == "sr") {
return true;
} else if (move == "ps") {
return false;
} else {
return true; // sp
}
}
} }

View File

@ -8,68 +8,4 @@ import java.util.Scanner;
*/ */
public class SchnickSchnackSchnuck { public class SchnickSchnackSchnuck {
public static void main(String[] args) {
String c = "";
String s = "";
int spielerKonto = 0;
int computerKonto = 0;
int int_rand = 0;
Random rand = new Random();
for (int i = 1; i <= 3; i++) {
System.out.println("Start Runde: " + i);
for (int j = 0; j < 1000000; j++) {
int_rand = rand.nextInt(3000);
}
if (int_rand < 1000) {
c = "r";
} else if (int_rand == 2000) {
c = "p";
} else {
c = "s";
}
Scanner eingabe = new Scanner(System.in);
System.out.println("Der Spieler trifft seine Auswahl: r (STEIN)" + " p (PAPIER) s (SCHERE) ");
s = eingabe.next();
Boolean rückgabe = Move.checkMove(c, s);
if (rückgabe == false) {
spielerKonto++;
} else if (rückgabe){
computerKonto++;
}
if (spielerKonto > computerKonto) {
System.out.println(
"Der Spieler hat " + spielerKonto + " der " + "Computer hat " + computerKonto + " Punkte.");
} else if (computerKonto > spielerKonto) {
System.out.println(
"Der Computer hat " + computerKonto + " der " + "Spieler hat " + spielerKonto + " Punkte.");
} else {
System.out.println("Beide habe bisher " + computerKonto + " Punkte.");
}
}
System.out.println("Spielende: ");
System.out.println("Der Spieler hat " + spielerKonto + " Punkte.");
System.out.println("Der Computer hat " + computerKonto + " Punkte.");
if (spielerKonto == computerKonto) {
System.out.println("Das Spiel endet unentschieden.");
} else if (spielerKonto > computerKonto) {
System.out.println("Der Spieler hat gewonnen.");
} else {
System.out.println("Der Computer hat gewonnen.");
}
}
} }

View File

@ -1,22 +1,7 @@
package pr2.enums.singleton; package pr2.enums.singleton;
public enum MyEnum { enum MyEnum {
A(100), A,
B(200), B,
C(300); C;
private final int a;
private MyEnum(int a) {
this.a = a;
}
public int getZahl() {
return a;
}
public String toZahl() {
return " " + a + " ";
}
} }

View File

@ -1,41 +1,8 @@
package pr2.enums.singleton; package pr2.enums.singleton;
public class SingletonBeweis { public class SingletonBeweis {
public static void main(String[] args) { public static void main(String[] args) {
// TODO: Singleton-Eigenschaft zeigen
System.out.println(MyEnum.A);
System.out.println(MyEnum.B);
System.out.println(MyEnum.C);
MyEnum zahl = MyEnum.A;
System.out.println(zahl.getZahl());
System.out.println(MyEnum.A.getZahl() == 100);
MyEnum a = MyEnum.A;
MyEnum b = MyEnum.B;
MyEnum c = MyEnum.C;
System.out.println("Ausgabe über String:");
System.out.println(a.toZahl());
System.out.println(b.toZahl());
System.out.println(c.toZahl());
System.out.println("Ausgabe über int:");
System.out.println(a.getZahl());
System.out.println(b.getZahl());
System.out.println(c.getZahl());
System.out.println("MyEnum.values() gibt die Referenz des erstellten "
+ "Arrays zurück. Die Enum-Aufzählung funktioniert nur mit "
+ "einer forEach-Schleife.");
System.out.println(MyEnum.values());
for (MyEnum einmal : MyEnum.values()) {
System.out.printf("%2s", einmal);
}
} }
} }

View File

@ -8,7 +8,7 @@ package pr2.generics.einfach;
/** /**
* Eine einfache, verkettete Liste. * Eine einfache, verkettete Liste.
*/ */
public class Liste<T> { public class Liste {
/** Referenz auf den ersten Knoten. */ /** Referenz auf den ersten Knoten. */
private ListeNode first; private ListeNode first;
@ -19,12 +19,11 @@ public class Liste<T> {
/** /**
* Fügt ein neues Element an das Ende der Liste an. * Fügt ein neues Element an das Ende der Liste an.
* *
* @param i das Element * @param data das Element
*/ */
public void add(String i) { public void add(Object data) {
@SuppressWarnings("unchecked") ListeNode nextNode = new ListeNode(data);
ListeNode nextNode = new ListeNode(i);
if (current == null) { if (current == null) {
// Liste komplett leer // Liste komplett leer
@ -32,7 +31,7 @@ public class Liste<T> {
current = nextNode; current = nextNode;
} }
else { else {
current.setNext(nextNode); current.next = nextNode;
current = nextNode; current = nextNode;
} }
} }
@ -43,18 +42,17 @@ public class Liste<T> {
* @param index Index, beginnend bei 0. * @param index Index, beginnend bei 0.
* @return Das Element oder {@code null}, wenn es nicht gefunden wurde. * @return Das Element oder {@code null}, wenn es nicht gefunden wurde.
*/ */
@SuppressWarnings("unchecked") public Object get(int index) {
public String get(int index) {
int count = 0; int count = 0;
T node = (T) first; ListeNode node = first;
while ((node != null) && (count < index)) { while ((node != null) && (count < index)) {
node = ((ListeNode<T>) node).getNext(); node = node.next;
count++; count++;
} }
if ((count == index) && (node != null)) { if ((count == index) && (node != null)) {
return ((ListeNode<T>) node).getData(); return node.data;
} }
else { else {
// index does not exist // index does not exist
@ -77,18 +75,13 @@ public class Liste<T> {
*/ */
public int size() { public int size() {
int count = 0; int count = 0;
T node = (T) first; ListeNode node = first;
while (node != null) { while (node != null) {
node = (T) ((ListeNode) node).getNext(); node = node.next;
count++; count++;
} }
return count; return count;
} }
public void add(int i) {
// TODO Auto-generated method stub
}
} }

View File

@ -3,31 +3,20 @@ package pr2.generics.einfach;
/** /**
* Interne Repräsentation der Knoten in der Liste. * Interne Repräsentation der Knoten in der Liste.
*/ */
class ListeNode<E> { class ListeNode {
/** Daten. */ /** Daten. */
String data; Object data;
/** Referenz auf den nächsten Knoten. */ /** Referenz auf den nächsten Knoten. */
E next; ListeNode next;
/** /**
* Legt einen neuen Knoten an. * Legt einen neuen Knoten an.
* *
* @param data daten, die gespeichert werden * @param data daten, die gespeichert werden
*/ */
protected ListeNode(String data) { ListeNode(Object data) {
this.setData(data);
}
public E getNext() {
return next;
}
public void setNext(E next) {
this.next = next;
}
public void setData(String data) {
this.data = data; this.data = data;
} }
public String getData() {
return data;
}
} }

View File

@ -20,12 +20,12 @@ public class ListeTest {
assertEquals(0, l.size()); assertEquals(0, l.size());
l.add( "Hallo"); l.add("Hallo");
assertEquals(1, l.size()); assertEquals(1, l.size());
l.add( ""); l.add("Hugo");
assertEquals(2, l.size()); assertEquals(2, l.size());
l.add( "Peter"); l.add("Peter");
l.add( "Alfons"); l.add("Alfons");
assertEquals(4, l.size()); assertEquals(4, l.size());
l.clear(); l.clear();
@ -37,7 +37,7 @@ public class ListeTest {
*/ */
@Test @Test
void testGet() { void testGet() {
Liste<String> l = new Liste<String>(); Liste l = new Liste();
l.add("Hallo"); l.add("Hallo");
l.add("Hugo"); l.add("Hugo");
l.add("Peter"); l.add("Peter");

View File

@ -2,17 +2,17 @@ package pr2.generics.pair;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
// TODO: Einkommentieren
var note1 = new Pair<String, Integer>("Peter", 1); // var note1 = new Pair<String, Integer>("Peter", 1);
var note2 = new Pair<String, Integer>("Frank", 3); // var note2 = new Pair<String, Integer>("Frank", 3);
var note3 = new Pair<String, Integer>("Sabine", 1); // var note3 = new Pair<String, Integer>("Sabine", 1);
//
var name = new Pair<String, String>("Peter", "Meier"); // var name = new Pair<String, String>("Peter", "Meier");
//
System.out.printf("%s:%d\n", note1.getFirst(), note1.getSecond()); // System.out.printf("%s:%d\n", note1.getFirst(), note1.getSecond());
System.out.printf("%s:%d\n", note2.getFirst(), note1.getSecond()); // System.out.printf("%s:%d\n", note2.getFirst(), note1.getSecond());
System.out.printf("%s:%d\n", note3.getFirst(), note1.getSecond()); // System.out.printf("%s:%d\n", note3.getFirst(), note1.getSecond());
//
System.out.printf("%s %s\n", name.getFirst(), name.getSecond()); // System.out.printf("%s %s\n", name.getFirst(), name.getSecond());
} }
} }

View File

@ -1,21 +1,5 @@
package pr2.generics.pair; package pr2.generics.pair;
public class Pair<K, V> { public class Pair {
private K data1;
private V data2;
public Pair(K data1, V data2) {
this.data1 = data1;
this.data2 = data2;
}
public K getFirst() {
return data1;
}
public V getSecond() {
return data2;
}
} }

View File

@ -4,15 +4,17 @@ package pr2.intro.coding_standard;
* Klasse dient als Beispiel für den Coding-Standard und die Namenskonventionen * Klasse dient als Beispiel für den Coding-Standard und die Namenskonventionen
* bei Java-Programmen. * bei Java-Programmen.
*/ */
public class CodingStandard { public
class
CodingStandard {
/* /*
* Konstante, die dem Rest der Welt etwas mitteilen soll. * Konstante, die dem Rest der Welt etwas mitteilen soll.
*/ */
public final static int KONSTANTE_MIT_TOLLEM_WERT = 3; public final static int konstanteMitTOLLEMWert = 3;
private int erstesFeld; private int ERSTES_Feld;
private double zweitesFeld; private double ZWEITES_Feld;
/* /*
* Legt eine neue Instanz an. * Legt eine neue Instanz an.
@ -20,10 +22,9 @@ public class CodingStandard {
* Erstes_Feld: das erste Feld. * Erstes_Feld: das erste Feld.
* ZweitesFeld: das zweite Feld. * ZweitesFeld: das zweite Feld.
*/ */
public CodingStandard(int erstesFeld, double zweitesFeld) public CodingStandard(int Erstes_Feld, double ZweitesFeld)
{ {
this.erstesFeld = erstesFeld; this.ERSTES_Feld = Erstes_Feld; this.ZWEITES_Feld = ZweitesFeld;
this.zweitesFeld = zweitesFeld;
} }
/* /*
@ -32,17 +33,18 @@ public class CodingStandard {
* parameter: Eingabewert für die Methode. * parameter: Eingabewert für die Methode.
* gibt einen Wert abhängig von {@code parameter} zurück. * gibt einen Wert abhängig von {@code parameter} zurück.
*/ */
public int methodeDieEtwasTut(int parameter) public int
Methode_Die_Was_Tut(int Parameter)
{ {
int result; int result;
if (parameter > KONSTANTE_MIT_TOLLEM_WERT) if (Parameter > konstanteMitTOLLEMWert)
result = 12; result = 12;
else else
{ {
result = 13; } result = 13; }
erstesFeld = result; zweitesFeld = 2 * result; ERSTES_Feld = result; ZWEITES_Feld = 2 * result;
return result; return result;
} }

View File

@ -5,10 +5,10 @@ package pr2.strukturierung.information_hiding;
*/ */
public class Rechner { public class Rechner {
/** Ergebnis des Taschenrechners. */ /** Ergebnis des Taschenrechners. */
public double wert; private double wert;
/** Speicher des Taschenrechners. */ /** Speicher des Taschenrechners. */
public double speicher; private double speicher;
/** /**
* Addiert zwei Werte und gibt das Ergebnis zurück. * Addiert zwei Werte und gibt das Ergebnis zurück.
@ -17,8 +17,9 @@ public class Rechner {
* @param b zweiter Operand. * @param b zweiter Operand.
* @return das Ergebnis. * @return das Ergebnis.
*/ */
public void addiere(double a, double b) { public double addiere(double a, double b) {
wert = a + b; wert = a + b;
return setWert(wert);
} }
/** /**
@ -28,8 +29,9 @@ public class Rechner {
* @param b zweiter Operand. * @param b zweiter Operand.
* @return das Ergebnis. * @return das Ergebnis.
*/ */
public void subtrahiere(double a, double b) { public double subtrahiere(double a, double b) {
wert = a - b; wert = a - b;
return setWert(wert);
} }
/** /**
@ -39,13 +41,25 @@ public class Rechner {
* @param b zweiter Operand. * @param b zweiter Operand.
* @return das Ergebnis. * @return das Ergebnis.
*/ */
public void multipliziere(double a, double b) { public double multipliziere(double a, double b) {
wert = a * b; wert = a * b;
return setWert(wert);
} }
/** /**
* Speichert den aktuellen Wert in der Variable {@speicher}. * Speichert den aktuellen Wert in der Variable {@speicher}.
*/ */
public void speichern() { public void speichern() {
speicher = wert; this.speicher = wert;
}
public double getWert() {
return this.wert;
}
public double setWert(double ergebnis) {
wert = ergebnis;
return wert;
}
public double getSpeicher() {
return this.speicher;
} }
} }

View File

@ -19,20 +19,20 @@ public class RechnerTest {
// 2 + 2 = 4 // 2 + 2 = 4
r.addiere(2.0, 2.0); r.addiere(2.0, 2.0);
assertEquals(4.0, r.wert, 0.0001); assertEquals(4.0, r.getWert(), 0.0001);
// 3 - 1 = 2 // 3 - 1 = 2
r.subtrahiere(3, 1); r.subtrahiere(3, 1);
assertEquals(2.0, r.wert, 0.0001); assertEquals(2.0, r.getWert(), 0.0001);
// 3 * 3 = 9 // 3 * 3 = 9
r.multipliziere(3, 3); r.multipliziere(3, 3);
assertEquals(9.0, r.wert, 0.0001); assertEquals(9.0, r.getWert(), 0.0001);
// 2 + 2 * 2 = 6 // 2 + 2 * 2 = 6
r.multipliziere(2, 2); r.multipliziere(2, 2);
r.speichern(); r.speichern();
r.addiere(2, r.speicher); r.addiere(2, r.getSpeicher());
assertEquals(6.0, r.wert, 0.0001); assertEquals(6.0, r.getWert(), 0.0001);
} }
} }

View File

@ -2,12 +2,12 @@ package pr2.strukturierung.jars_einbinden;
import javax.swing.JFrame; import javax.swing.JFrame;
// TODO: Einkommentieren
//import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFactory;
//import org.jfree.chart.ChartPanel; import org.jfree.chart.ChartPanel;
//import org.jfree.chart.JFreeChart; import org.jfree.chart.JFreeChart;
//import org.jfree.chart.plot.PiePlot3D; import org.jfree.chart.plot.PiePlot3D;
//import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.DefaultPieDataset;
/** /**
* Fenster mit der Torten-Grafik. * Fenster mit der Torten-Grafik.
@ -28,32 +28,32 @@ public final class PieChart {
*/ */
public static void main(String[] args) { public static void main(String[] args) {
// TODO: Einkommentieren
// final String title = "Welches ist Euer Lieblingsspiel?"; final String title = "Welches ist Euer Lieblingsspiel?";
//
// JFrame jframe = new JFrame(title); JFrame jframe = new JFrame(title);
// jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//
// DefaultPieDataset dataset = new DefaultPieDataset(); DefaultPieDataset<String> dataset = new DefaultPieDataset<String>();
// dataset.setValue("GTA V", 20); dataset.setValue("GTA V", 20);
// dataset.setValue("Fortnite", 30); dataset.setValue("Fortnite", 30);
// dataset.setValue("Elden Ring", 15); dataset.setValue("Elden Ring", 15);
// dataset.setValue("Horizon Forbidden West", 35); dataset.setValue("Horizon Forbidden West", 35);
//
// JFreeChart chart = ChartFactory.createPieChart3D( JFreeChart chart = ChartFactory.createPieChart3D(
// title, title,
// dataset, dataset,
// true, true,
// true, true,
// false); false);
//
// PiePlot3D plot = (PiePlot3D) chart.getPlot(); PiePlot3D plot = (PiePlot3D) chart.getPlot();
// plot.setForegroundAlpha(0.6f); plot.setForegroundAlpha(0.6f);
//
// ChartPanel chartPanel = new ChartPanel(chart); ChartPanel chartPanel = new ChartPanel(chart);
// chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
// jframe.setContentPane(chartPanel); jframe.setContentPane(chartPanel);
// jframe.pack(); jframe.pack();
// jframe.setVisible(true); jframe.setVisible(true);
} }
} }

View File

@ -8,7 +8,7 @@ public class A {
/** /**
* Konstante für die Vorzeichenumkehr. * Konstante für die Vorzeichenumkehr.
*/ */
public static int KONSTANTE = 100; public static final int KONSTANTE = 100;
/** /**
* Addiert zwei Zahlen. Wenn das Ergebnis größer ist als * Addiert zwei Zahlen. Wenn das Ergebnis größer ist als

View File

@ -15,7 +15,7 @@ package pr2.vererbung.finals;
* @return Ergebnis * @return Ergebnis
*/ */
public static int sub(int a, int b) { public static int sub(int a, int b) {
int result = a + b; int result = a - b;
return (result < KONSTANTE) ? (result * -1) : (result); return (result < KONSTANTE) ? (result * -1) : (result);
} }

View File

@ -2,4 +2,18 @@ package pr2.vererbung.geometrie1;
public class Figur { public class Figur {
private double flaeche;
public Figur(double flaeche) {
this.flaeche = flaeche;
}
public void setFlaeche(double flaeche) {
this.flaeche = flaeche;
}
public double getFlaeche() {
return this.flaeche;
}
} }

View File

@ -3,6 +3,23 @@ package pr2.vererbung.geometrie1;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
// TODO: Klassen nutzen
double breite1 = 2, breite2 = 4, breite3 = 10;
double hoehe1 = 2, hoehe2 = 5, hoehe3 = 10;
Figur a = new Rechteck(0);
Figur b = new Rechteck(0);
Figur c = new Rechteck(0);
((Rechteck) a).flaecheRechteck(breite1, hoehe1);
((Rechteck) b).flaecheRechteck(breite2, hoehe2);
((Rechteck) c).flaecheRechteck(breite3, hoehe3);
System.out.println(((Figur) a).getFlaeche());
System.out.println(((Figur) b).getFlaeche());
System.out.println(((Figur) c).getFlaeche());
} }
} }

View File

@ -1,5 +1,36 @@
package pr2.vererbung.geometrie1; package pr2.vererbung.geometrie1;
public class Rechteck { public class Rechteck extends Figur {
private double hoehe;
private double breite;
public Rechteck(double flaeche) {
super(flaeche);
}
public void flaecheRechteck(double b, double h) {
double flaeche = b * h;
setFlaeche(flaeche);
}
public double getBreite() {
return breite;
}
public void setBreite(double breite) {
this.breite = breite;
}
public double getHoehe() {
return hoehe;
}
public void setHoehe(double hoehe) {
this.hoehe = hoehe;
}
} }

View File

@ -29,11 +29,11 @@ public final class Spiel {
// Statistik ausgeben // Statistik ausgeben
System.out.println("Statistik für alle Würfel in Zahlen:"); System.out.println("Statistik für alle Würfel in Zahlen:");
System.out.println("Von " + Wuerfel.counter + " würfen"); System.out.println("Von " + Wuerfel.getCounter + " würfen");
System.out.println(wuerfel1.statistik()); System.out.println(wuerfel1.statistik());
System.out.println(); System.out.println();
System.out.println("Statsitik für alle Würfel in Prozent"); System.out.println("Statsitik für alle Würfel in Prozent");
System.out.println("Von " + Wuerfel.counter + " würfen"); System.out.println("Von " + Wuerfel.getCounter + " würfen");
System.out.println(wuerfel1.statistikProzent()); System.out.println(wuerfel1.statistikProzent());
System.out.println(); System.out.println();

View File

@ -10,7 +10,7 @@ public class Wuerfel {
/** Häufigkeit der Werte. */ /** Häufigkeit der Werte. */
private static int[] haeufigkeit = new int[6]; private static int[] haeufigkeit = new int[6];
public static double counter = 0; private static double counter = 0;
/** Zufallsgenerator. */ /** Zufallsgenerator. */
private Random random = new Random(); private Random random = new Random();
@ -49,7 +49,7 @@ public class Wuerfel {
for (int i = 0; i < haeufigkeit.length; i++) { for (int i = 0; i < haeufigkeit.length; i++) {
double prozent = (100/counter*haeufigkeit[i]); double prozent = (100 / counter * haeufigkeit[i]);
result.append(i + 1) result.append(i + 1)
.append(": ") .append(": ")
@ -59,4 +59,7 @@ public class Wuerfel {
} }
return result.toString(); return result.toString();
} }
public double getCounter() {
return counter;
}
} }