CheeseChampion

This commit is contained in:
Tim
2020-09-14 09:06:07 +02:00
parent 86db7da2be
commit 830c997d39
3 changed files with 99 additions and 42 deletions

View File

@@ -2,15 +2,14 @@
public class CheeseChampion { public class CheeseChampion {
// TODO: Ersetze ??? durch die passende Datenstruktur // TODO: Ersetze ??? durch die passende Datenstruktur
private ??? eingang; private Queue<Maus> eingang;
private ??? seitengang; private Stack<Maus> seitengang;
private ??? ausgang; private Queue<Maus> ausgang;
public CheeseChampion() { public CheeseChampion() {
// TODO: Ersetze ??? durch die passende Datenstruktur eingang = new Queue<>();
eingang = ???; seitengang = new Stack<>();
seitengang = ???; ausgang = new Queue<>();
ausgang = ???;
} }
/** /**
@@ -20,7 +19,9 @@ public class CheeseChampion {
* @see java.util.Random * @see java.util.Random
*/ */
public void erzeugeMaeuse( int anzahl ) { public void erzeugeMaeuse( int anzahl ) {
// TODO: Erzeuge hier "anzahl" Mäuse mit zufälliger Stärke for (int i = 0; i < anzahl; i++) {
eingang.enqueue(new Maus(i, (int) (Math.random() * 100)));
}
} }
/** /**
@@ -29,7 +30,41 @@ public class CheeseChampion {
* Siehe im Buch auf Seite 88 für eine Beschreibung des Kampfes. * Siehe im Buch auf Seite 88 für eine Beschreibung des Kampfes.
*/ */
public void kampf() { public void kampf() {
// TODO: Implemenitere hier den Mäusekampf Maus maus1 = eingang.front();
Maus maus2 = seitengang.top();
if (maus1 != null) {
if (maus2 != null) {
if (maus1.getStrength() > maus2.getStrength()) {
seitengang.push(maus1);
eingang.dequeue();
} else {
ausgang.enqueue(maus2);
seitengang.pop();
}
} else {
seitengang.push(maus1);
eingang.dequeue();
}
} else {
if (maus2 != null) {
ausgang.enqueue(maus2);
seitengang.pop();
} else {
System.out.println("Fertig.");
while (!ausgang.isEmpty()){
System.out.print("#" + ausgang.front().getNumber() + ", ");
ausgang.dequeue();
}
System.out.println();
}
}
}
public void alleKämpfe() {
while (!eingang.isEmpty() || !seitengang.isEmpty()) {
kampf();
}
kampf();
} }
/** /**
@@ -53,5 +88,4 @@ public class CheeseChampion {
eingang.enqueue( new Maus(10, 38) ); eingang.enqueue( new Maus(10, 38) );
} }
} }

View File

@@ -4,6 +4,19 @@
*/ */
public class Maus { public class Maus {
TODO: Implementiere die Maus nach der Beschreibung private int number;
private int strength;
public Maus(int number, int strength) {
this.number = number;
this.strength = strength;
}
public int getStrength() {
return strength;
}
public int getNumber() {
return number;
}
} }

View File

@@ -1,26 +1,29 @@
#BlueJ package file #BlueJ package file
dependency1.from=Stack dependency1.from=CheeseChampion
dependency1.to=StackNode dependency1.to=Queue
dependency1.type=UsesDependency dependency1.type=UsesDependency
dependency2.from=StackTest dependency2.from=CheeseChampion
dependency2.to=Stack dependency2.to=Maus
dependency2.type=UsesDependency dependency2.type=UsesDependency
editor.fx.0.height=777 dependency3.from=CheeseChampion
editor.fx.0.width=1123 dependency3.to=Stack
editor.fx.0.x=101 dependency3.type=UsesDependency
editor.fx.0.y=23 editor.fx.0.height=1000
objectbench.height=95 editor.fx.0.width=1296
objectbench.width=776 editor.fx.0.x=-8
editor.fx.0.y=-8
objectbench.height=92
objectbench.width=1256
package.divider.horizontal=0.6 package.divider.horizontal=0.6
package.divider.vertical=0.8118081180811808 package.divider.vertical=0.8901220865704772
package.editor.height=433 package.editor.height=795
package.editor.width=653 package.editor.width=1145
package.editor.x=140 package.editor.x=0
package.editor.y=80 package.editor.y=0
package.frame.height=600 package.frame.height=1000
package.frame.width=800 package.frame.width=1296
package.numDependencies=2 package.numDependencies=3
package.numTargets=3 package.numTargets=4
package.showExtends=true package.showExtends=true
package.showUses=true package.showUses=true
project.charset=UTF-8 project.charset=UTF-8
@@ -30,23 +33,30 @@ readme.width=47
readme.x=10 readme.x=10
readme.y=10 readme.y=10
target1.height=50 target1.height=50
target1.name=StackNode target1.name=CheeseChampion
target1.showInterface=false target1.showInterface=false
target1.type=ClassTarget target1.type=ClassTarget
target1.width=160 target1.width=130
target1.x=70 target1.x=200
target1.y=60 target1.y=220
target2.height=50 target2.height=50
target2.name=StackTest target2.name=Maus
target2.showInterface=false target2.showInterface=false
target2.type=UnitTestTargetJunit4 target2.type=ClassTarget
target2.width=90 target2.width=80
target2.x=430 target2.x=70
target2.y=110 target2.y=70
target3.height=50 target3.height=50
target3.name=Stack target3.name=Queue
target3.showInterface=false target3.showInterface=false
target3.type=ClassTarget target3.type=ClassTarget
target3.width=160 target3.width=160
target3.x=80 target3.x=410
target3.y=300 target3.y=180
target4.height=50
target4.name=Stack
target4.showInterface=false
target4.type=ClassTarget
target4.width=160
target4.x=600
target4.y=180