Hallo liebes Java-Forum,
wir haben die Aufgabe bekommen das Spiel Krieg, was auch unter anderen Namen bekannt ist, zu programmieren. Folgende Ausgabenstellung gab es:
Leider bin ich noch kein Profi in OOP, ein Konzept habe ich mir aber schon ausgedacht.
[CODE lang="java" title="Main"]public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Für 10 Runden wählen Sie die 1 für ein langes Spiel die 2");
int wahl = sc.nextInt();
Spiel s1 = new Spiel();
s1.spielen(wahl);
}[/CODE]
[CODE lang="java" title="Karte"]public class Karte {
private int Wert;
public Karte(int Wert) {
this.Wert=Wert;
}
public int getWert() {
return Wert;
}
public void setWert(int wert) {
Wert = wert;
}
}[/CODE]
[CODE lang="java" title="Spieler"]public class Spieler {
private Deck karten;
private Deck gewKarten;
}[/CODE]
[CODE lang="java" title="Deck/Stapel"]public class Deck {
ArrayList<Karte> karten = new ArrayList<Karte>();
public void mischen() {
Collections.shuffle(karten);
}
public int getAnzahl() {
int zahl=0;
for (int i= 1; i<this.karten.size();i++) {
zahl = i;
}
return zahl;
}
public void auflistenKarten() {
for(Karte i:karten) {
if(i instanceof Karte) {
System.out.println(i);
}
}
}
}[/CODE]
[CODE lang="java" title="Spiel"]public class Spiel {
private Spieler eins;
private Spieler zwei;
public void vorbereiten() {
//Karo Karten
Karte karo7= new Karte(1);
Karte karo8= new Karte(2);
Karte karo9= new Karte(3);
Karte karo10= new Karte(4);
Karte karoBauer= new Karte(5);
Karte karoDame= new Karte(6);
Karte karoKoenig= new Karte(7);
Karte karoAss= new Karte(8);
//Pic Karten
Karte pic7 = new Karte(1);
Karte pic8 = new Karte(2);
Karte pic9 = new Karte(3);
Karte pic10 = new Karte(4);
Karte picBauer = new Karte(5);
Karte picDame = new Karte(6);
Karte picKoenig = new Karte(7);
Karte picAss = new Karte(8);
//Herz Karten
Karte herz7 = new Karte(1);
Karte herz8 = new Karte(2);
Karte herz9 = new Karte(3);
Karte herz10 = new Karte(4);
Karte herzBauer = new Karte(5);
Karte herzDame = new Karte(6);
Karte herzKoenig = new Karte(7);
Karte herzAss = new Karte(8);
//Kreuz Karten
Karte kreuz7 = new Karte(1);
Karte kreuz8 = new Karte(2);
Karte kreuz9 = new Karte(3);
Karte kreuz10 = new Karte(4);
Karte kreuzBauer = new Karte(5);
Karte kreuzDame = new Karte(6);
Karte kreuzKoenig = new Karte(7);
Karte kreuzAss = new Karte(8);
}
public void spielen(int t) {
if(t==1) {
vorbereiten();
for (int i=0; i<10;i++) {
}
}else {
}
}
}[/CODE]
Nun komme ich leider nicht weiter dabei den Spielern die Karten zuzuweisen. Die Karten müssen ja quasi im Portfolio eines Spielers aufgenommen werden.
Idealerweise habe ich das so vor, dass in einer Schleife bevor die Karten aufgedeckt werden, dies bestätigt werden muss und man dann den Namen der Karte sieht und deren Wertung. Danach soll die höhere in das Deck gewonnenKarten des Spielers. Diese sollen am Ende, also entweder nach 10 Runden oder bis alle Karten gegeneinander ausgespielt wurden, gezählt werden.
Leider komme ich gerade nicht weiter, wie ich es am besten realisieren kann.
Ich hoffe mir kann geholfen werden.
MfG
wir haben die Aufgabe bekommen das Spiel Krieg, was auch unter anderen Namen bekannt ist, zu programmieren. Folgende Ausgabenstellung gab es:
Leider bin ich noch kein Profi in OOP, ein Konzept habe ich mir aber schon ausgedacht.
[CODE lang="java" title="Main"]public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Für 10 Runden wählen Sie die 1 für ein langes Spiel die 2");
int wahl = sc.nextInt();
Spiel s1 = new Spiel();
s1.spielen(wahl);
}[/CODE]
[CODE lang="java" title="Karte"]public class Karte {
private int Wert;
public Karte(int Wert) {
this.Wert=Wert;
}
public int getWert() {
return Wert;
}
public void setWert(int wert) {
Wert = wert;
}
}[/CODE]
[CODE lang="java" title="Spieler"]public class Spieler {
private Deck karten;
private Deck gewKarten;
}[/CODE]
[CODE lang="java" title="Deck/Stapel"]public class Deck {
ArrayList<Karte> karten = new ArrayList<Karte>();
public void mischen() {
Collections.shuffle(karten);
}
public int getAnzahl() {
int zahl=0;
for (int i= 1; i<this.karten.size();i++) {
zahl = i;
}
return zahl;
}
public void auflistenKarten() {
for(Karte i:karten) {
if(i instanceof Karte) {
System.out.println(i);
}
}
}
}[/CODE]
[CODE lang="java" title="Spiel"]public class Spiel {
private Spieler eins;
private Spieler zwei;
public void vorbereiten() {
//Karo Karten
Karte karo7= new Karte(1);
Karte karo8= new Karte(2);
Karte karo9= new Karte(3);
Karte karo10= new Karte(4);
Karte karoBauer= new Karte(5);
Karte karoDame= new Karte(6);
Karte karoKoenig= new Karte(7);
Karte karoAss= new Karte(8);
//Pic Karten
Karte pic7 = new Karte(1);
Karte pic8 = new Karte(2);
Karte pic9 = new Karte(3);
Karte pic10 = new Karte(4);
Karte picBauer = new Karte(5);
Karte picDame = new Karte(6);
Karte picKoenig = new Karte(7);
Karte picAss = new Karte(8);
//Herz Karten
Karte herz7 = new Karte(1);
Karte herz8 = new Karte(2);
Karte herz9 = new Karte(3);
Karte herz10 = new Karte(4);
Karte herzBauer = new Karte(5);
Karte herzDame = new Karte(6);
Karte herzKoenig = new Karte(7);
Karte herzAss = new Karte(8);
//Kreuz Karten
Karte kreuz7 = new Karte(1);
Karte kreuz8 = new Karte(2);
Karte kreuz9 = new Karte(3);
Karte kreuz10 = new Karte(4);
Karte kreuzBauer = new Karte(5);
Karte kreuzDame = new Karte(6);
Karte kreuzKoenig = new Karte(7);
Karte kreuzAss = new Karte(8);
}
public void spielen(int t) {
if(t==1) {
vorbereiten();
for (int i=0; i<10;i++) {
}
}else {
}
}
}[/CODE]
Nun komme ich leider nicht weiter dabei den Spielern die Karten zuzuweisen. Die Karten müssen ja quasi im Portfolio eines Spielers aufgenommen werden.
Idealerweise habe ich das so vor, dass in einer Schleife bevor die Karten aufgedeckt werden, dies bestätigt werden muss und man dann den Namen der Karte sieht und deren Wertung. Danach soll die höhere in das Deck gewonnenKarten des Spielers. Diese sollen am Ende, also entweder nach 10 Runden oder bis alle Karten gegeneinander ausgespielt wurden, gezählt werden.
Leider komme ich gerade nicht weiter, wie ich es am besten realisieren kann.
Ich hoffe mir kann geholfen werden.
MfG