Spielstart implementiert
Spielstart mit Anzeige einer rudimentären Gewinnkarte für den ersten Spieler implemetiert.refactoringFassade
parent
ace5d60a33
commit
eb75d9f924
|
@ -0,0 +1,32 @@
|
||||||
|
package de.hs_mannheim.informatik.games.kniffel.domain;
|
||||||
|
|
||||||
|
public class Gewinnkarte {
|
||||||
|
private Kategorie[] kategorien;
|
||||||
|
private final int KATEGORIE_ANZAHL = 6;
|
||||||
|
|
||||||
|
public Gewinnkarte() {
|
||||||
|
kategorien = new Kategorie[KATEGORIE_ANZAHL];
|
||||||
|
|
||||||
|
for (int i = 1; i <= kategorien.length; i++) {
|
||||||
|
kategorien[i-1] = new Kategorie(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
for (Kategorie k : kategorien) {
|
||||||
|
sb.append(k.getName() + ": ");
|
||||||
|
|
||||||
|
if (k.isOffen())
|
||||||
|
sb.append("offen");
|
||||||
|
else
|
||||||
|
sb.append(k.getPunkte());
|
||||||
|
|
||||||
|
sb.append(System.lineSeparator());
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
package de.hs_mannheim.informatik.games.kniffel.domain;
|
||||||
|
|
||||||
|
public class Kategorie {
|
||||||
|
private String name;
|
||||||
|
private final int AUGEN;
|
||||||
|
private int punkte;
|
||||||
|
|
||||||
|
public Kategorie(int augen) {
|
||||||
|
this.AUGEN = augen;
|
||||||
|
this.name = this.AUGEN + "er";
|
||||||
|
this.punkte = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int punkteErmitteln(Würfel[] würfel) {
|
||||||
|
int punkte = 0;
|
||||||
|
|
||||||
|
for (Würfel w : würfel) {
|
||||||
|
if (w.getAugen() == AUGEN)
|
||||||
|
punkte += AUGEN;
|
||||||
|
}
|
||||||
|
|
||||||
|
return punkte;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPunkte() {
|
||||||
|
if (punkte == -1)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return punkte;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOffen() {
|
||||||
|
return punkte == -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
package de.hs_mannheim.informatik.games.kniffel.domain;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class Spiel {
|
||||||
|
private Spieler[] spieler;
|
||||||
|
private int spieleranzahl;
|
||||||
|
private int aktuellerSpieler;
|
||||||
|
private Würfelbecher becher;
|
||||||
|
|
||||||
|
public Spiel(ArrayList<String> spielernamen) {
|
||||||
|
spieleranzahl = spielernamen.size();
|
||||||
|
spieler = new Spieler[spieleranzahl];
|
||||||
|
|
||||||
|
for (int i = 0; i < spielernamen.size(); i++) {
|
||||||
|
spieler[i] = new Spieler(spielernamen.get(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
aktuellerSpieler = (int)(Math.random() * spieleranzahl);
|
||||||
|
|
||||||
|
becher = new Würfelbecher();
|
||||||
|
becher.würfle();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Gewinnkarte getGewinnkarteAktuellerSpieler() {
|
||||||
|
return spieler[aktuellerSpieler].getGewinnkarte();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
package de.hs_mannheim.informatik.games.kniffel.domain;
|
||||||
|
|
||||||
|
public class Spieler {
|
||||||
|
private String name;
|
||||||
|
private Gewinnkarte gewinnkarte;
|
||||||
|
|
||||||
|
public Spieler(String name) {
|
||||||
|
this.name = name;
|
||||||
|
this.gewinnkarte = new Gewinnkarte();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Gewinnkarte getGewinnkarte() {
|
||||||
|
return gewinnkarte;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -2,6 +2,7 @@ package de.hs_mannheim.informatik.games.kniffel.domain;
|
||||||
|
|
||||||
public class Würfel {
|
public class Würfel {
|
||||||
private final int SEITEN;
|
private final int SEITEN;
|
||||||
|
private int augen;
|
||||||
|
|
||||||
public Würfel() {
|
public Würfel() {
|
||||||
this(6);
|
this(6);
|
||||||
|
@ -12,8 +13,13 @@ public class Würfel {
|
||||||
}
|
}
|
||||||
|
|
||||||
public int würfle() {
|
public int würfle() {
|
||||||
//return 1 + (int)(Math.random() * SEITEN);
|
augen = 1 + (int)(Math.random() * SEITEN);
|
||||||
return 3;
|
|
||||||
|
return augen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAugen() {
|
||||||
|
return augen;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
package de.hs_mannheim.informatik.games.kniffel.domain;
|
||||||
|
|
||||||
|
public class Würfelbecher {
|
||||||
|
private final int WÜRFELANZAHL = 5;
|
||||||
|
private Würfel[] würfel;
|
||||||
|
|
||||||
|
public Würfelbecher() {
|
||||||
|
würfel = new Würfel[5];
|
||||||
|
|
||||||
|
for (int i = 0; i < WÜRFELANZAHL; i++) {
|
||||||
|
würfel[i] = new Würfel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void würfle() {
|
||||||
|
for (int i = 0; i < WÜRFELANZAHL; i++) {
|
||||||
|
würfel[i].würfle();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,12 +1,21 @@
|
||||||
package de.hs_mannheim.informatik.games.kniffel.facade;
|
package de.hs_mannheim.informatik.games.kniffel.facade;
|
||||||
|
|
||||||
import de.hs_mannheim.informatik.games.kniffel.domain.Würfel;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import de.hs_mannheim.informatik.games.kniffel.domain.Gewinnkarte;
|
||||||
|
import de.hs_mannheim.informatik.games.kniffel.domain.Spiel;
|
||||||
|
|
||||||
public class KniffelApi {
|
public class KniffelApi {
|
||||||
Würfel w = new Würfel();
|
private Spiel spiel;
|
||||||
|
|
||||||
public int würfle() {
|
public void starteSpiel(ArrayList<String> spielernamen, boolean starWarsModus) {
|
||||||
return w.würfle();
|
|
||||||
|
// TODO: StarWars über Vererbung einbauen?
|
||||||
|
spiel = new Spiel(spielernamen);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Gewinnkarte getGewinnkarte() {
|
||||||
|
return spiel.getGewinnkarteAktuellerSpieler();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
package de.hs_mannheim.informatik.games.kniffel.tui;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
import de.hs_mannheim.informatik.games.kniffel.facade.KniffelApi;
|
||||||
|
|
||||||
|
public class SpielStart {
|
||||||
|
private Scanner kb;
|
||||||
|
private KniffelApi api;
|
||||||
|
|
||||||
|
public SpielStart(Scanner kb, KniffelApi api) {
|
||||||
|
this.kb = kb;
|
||||||
|
this.api = api;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void verarbeiteEingabe() {
|
||||||
|
ArrayList<String> spielernamen = new ArrayList<>();
|
||||||
|
|
||||||
|
System.out.println("Bitte Spielernamen (max. 6, leere Eingabe für Abbruch) eingeben:");
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
for (int i = 1; i <= 6; i++) {
|
||||||
|
System.out.print("Spieler " + i + ": ");
|
||||||
|
String name = kb.nextLine();
|
||||||
|
|
||||||
|
if (name.isEmpty())
|
||||||
|
break;
|
||||||
|
|
||||||
|
spielernamen.add(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (spielernamen.size() == 0) {
|
||||||
|
System.out.println("Keine Spieler eingegeben, zurück zum Hauptmenü.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println(spielernamen.size() + " Mitspieler eingeben.");
|
||||||
|
System.out.print("Möchten Sie den StarWars-Modus spielen? (j/n): ");
|
||||||
|
|
||||||
|
String sw = kb.nextLine();
|
||||||
|
|
||||||
|
api.starteSpiel(spielernamen, sw.toLowerCase().equals("j"));
|
||||||
|
|
||||||
|
new SpielrundeSpielen(kb, api).verarbeiteEingabe();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
package de.hs_mannheim.informatik.games.kniffel.tui;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
import de.hs_mannheim.informatik.games.kniffel.facade.KniffelApi;
|
||||||
|
|
||||||
|
public class SpielrundeSpielen {
|
||||||
|
private Scanner kb;
|
||||||
|
private KniffelApi api;
|
||||||
|
|
||||||
|
public SpielrundeSpielen(Scanner kb, KniffelApi api) {
|
||||||
|
this.kb = kb;
|
||||||
|
this.api = api;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void verarbeiteEingabe() {
|
||||||
|
System.out.println("Gewinnkarte");
|
||||||
|
System.out.println(api.getGewinnkarte().toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -25,13 +25,13 @@ public class TuiMain {
|
||||||
do {
|
do {
|
||||||
System.out.println();
|
System.out.println();
|
||||||
System.out.println("Auswahlmöglichkeiten (Zifferneingabe):");
|
System.out.println("Auswahlmöglichkeiten (Zifferneingabe):");
|
||||||
System.out.println("1 -> Würfeln");
|
System.out.println("1 -> Spiel starten");
|
||||||
System.out.println("9 -> Spiel beenden.");
|
System.out.println("9 -> Spiel beenden");
|
||||||
System.out.println();
|
System.out.println();
|
||||||
System.out.print("Eingabe > ");
|
System.out.print("Eingabe > ");
|
||||||
|
|
||||||
switch (kb.nextLine()) {
|
switch (kb.nextLine()) {
|
||||||
case "1" -> System.out.println("Gewürfelt: " + api.würfle());
|
case "1" -> new SpielStart(kb, api).verarbeiteEingabe();
|
||||||
case "9" -> { break mainLoop; }
|
case "9" -> { break mainLoop; }
|
||||||
default -> System.out.println("Eingabe nicht erkannt, bitte wiederholen.");
|
default -> System.out.println("Eingabe nicht erkannt, bitte wiederholen.");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue