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 {
|
||||
private final int SEITEN;
|
||||
private int augen;
|
||||
|
||||
public Würfel() {
|
||||
this(6);
|
||||
|
@ -12,8 +13,13 @@ public class Würfel {
|
|||
}
|
||||
|
||||
public int würfle() {
|
||||
//return 1 + (int)(Math.random() * SEITEN);
|
||||
return 3;
|
||||
augen = 1 + (int)(Math.random() * SEITEN);
|
||||
|
||||
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;
|
||||
|
||||
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 {
|
||||
Würfel w = new Würfel();
|
||||
private Spiel spiel;
|
||||
|
||||
public int würfle() {
|
||||
return w.würfle();
|
||||
public void starteSpiel(ArrayList<String> spielernamen, boolean starWarsModus) {
|
||||
|
||||
// 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 {
|
||||
System.out.println();
|
||||
System.out.println("Auswahlmöglichkeiten (Zifferneingabe):");
|
||||
System.out.println("1 -> Würfeln");
|
||||
System.out.println("9 -> Spiel beenden.");
|
||||
System.out.println("1 -> Spiel starten");
|
||||
System.out.println("9 -> Spiel beenden");
|
||||
System.out.println();
|
||||
System.out.print("Eingabe > ");
|
||||
|
||||
switch (kb.nextLine()) {
|
||||
case "1" -> System.out.println("Gewürfelt: " + api.würfle());
|
||||
case "1" -> new SpielStart(kb, api).verarbeiteEingabe();
|
||||
case "9" -> { break mainLoop; }
|
||||
default -> System.out.println("Eingabe nicht erkannt, bitte wiederholen.");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue