BlackJack

Srb1ja

Mitglied
Guten Tag,

ich habe ein großes Problem.
Undzwar...

Ich bin etwas länger erkrankt gewesen in der Schule (11. KLasse Gymnasium) und nun steht die Informatik Klausur vor der Tür. Um genauer zu sein Morgen. Nun habe ich mir die in der Schule erstellten Dateien zuschicken lassen, von welchen ich nicht weiß, ob diese Fehlerfrei sind oder nicht. Desweiteren fehlt mir noch eine vollständige Klasse. Letzte neu erlernte funktion waren arrays, welches ich noch nicht vollständig nachvollzogen habe. Grob sind für mich arrays eine art Box von 0-X wobei X das limit -1 darstellt, da die Fächer bei 0 anfangen. Wir haben die jeweiligen Karten in die array funktion eingebunden und uns schematische "bildchen" angefertigt, welche klasse wie kooperiert.
Nun wäre meine Frage: wie sieht die letzte klasse, die des Coupiers aus?

Dies sind unsere bereits erstellten Sachen:

Spieler:

Java:
public class Spieler {

// Anfang Attribute
private int punktestand;
private int vermoegen;
private int anzahlAsse;
// Ende Attribute

// Anfang Methoden
public Spieler(int pVermoegen) {
punktestand = pVermoegen;
}

public int getVermoegen() {
return vermoegen;
}

public void gibEinsatz(int limit) {
vermoegen = vermoegen - limit;
}

public void nimmGewinn(int gewinn) {
punktestand = punktestand + gewinn;
}

public Karte nimmKarte(Karte pKarte) {
return pKarte;
}

public void neuesSpiel() {
punktestand = 0;
}

public int getPunktestand() {
return punktestand;
}

// Ende Methoden
}

Kartenstapel + Karte:

Java:
public class Kartenstapel {

// Anfang Attribute
private Karte[] stapel;
private int obersteKarte;
private final String[] farbe = {"Kreuz ", "Pik ", "Herz ", "Karo "};
// Ende Attribute
public Kartenstapel() {
Karte karte;
int pos = 0;

stapel = new Karte[52];
for (int f=0; f<4; f++) {
karte = new Karte (farbe[f] + "Ass", 11);
stapel[pos] = karte;
pos++;

for (int i=2; i<=10; i++) {
karte = new Karte(farbe[f] + i, i);
stapel[pos] = karte;
pos++;
}

karte = new Karte (farbe[f] + "Bube", 10);
stapel[pos] = karte;
pos++;

karte = new Karte (farbe[f] + "Dame", 10);
stapel[pos] = karte;
pos++;

karte = new Karte (farbe[f] + "König", 10);
stapel[pos] = karte;
pos++;
}

mische();
obersteKarte = -1;
}

// Anfang Methoden
public void mische() {

}

public Karte gibKarte() {
obersteKarte++;
return stapel[obersteKarte];
}
// Ende Methoden
}

EDIT

Habe nun die Bilder der Modelle gefunden. Die verstehe ich auch nicht so wirklich bzw die bedeutungen der Vorzeichen:

Spieler

- punktestand: int
- vermoegen: int
- anzahlAsse:int
c Spieler(pVermoegen: int)
+ getPunktestand(): int
+ getVermoegen(): int
+ gibEinsatz(limit: int): void
+ nimmGewinn(gewinn: int): void
+ nimmKarte(pKarte: Karte): void
+ neuesSpiel(): void

Kartenstapel

- stapel: Karte
- obersteKarte: int
- farbe: String[]
c Kartenstapel()
+ mische(): void
+ gibKarte(): Karte
+ zeige(): void

Karte

- name: String
- Wert: int
c Karte(pname: String pwert: int)
+ getName(): String
+ getWert(): int

Coupier // Leider keine Ahnung :(

?
?
?
?
?
?

Vielleicht könnte mir noch jemand die 2 (oder 3 klassen falls mir jemand an der 3. zur hand gehen könnte) noch näher erläutern.

Danke im Vorraus

- mit freundlichen Grüßen
 
Zuletzt bearbeitet:

Atze

Top Contributor
also was der coupier macht musst du dir wohl selbst zusammenreimen, bzw in welcher reihenfolge.
ich denke, er wird wohl die spieler verwalten, bzw das spiel, und die karten verteilen

mische(): void
gibKarte(): Karte
zeige(): void

etc.

die auszüge aus den klassendiagrammen, bzw methoden der klassen geben dir ja vor, was er tun könnte

und die vorzeichen dort zeigen die sichtbarkeit der attribute und methoden an (- = private, + = public). ob man den konstruktor (c) dort noch angeben muss weiß ich nicht, hab ich noch nie getan und auch noch nirgendwo gesehen.
 

Srb1ja

Mitglied
Coupier

- punktestand: int
c coupier(??: int)
+ mische(): void
+ gibKarte(): Karte
+ zeige(): void

So ca?

Müsste er nicht noch Spieler erstellen?
 

Atze

Top Contributor
ja, müsste er wohl. und die methoden

mische(): void
+ gibKarte(): Karte
+ zeige(): void

können ja bleiben wo sie sind, er muss sie ja nur aufrufen.

er hat dann wohl methoden wie

erzeugeSpiel()
verteileKarten()
überprüfeSpielerHand()
gibGewinn()

etc

über ihn läuft ja das spiel
 

Atze

Top Contributor
vielleicht könnte man dem dinge wie anzahl der spieler, gewinn, mindesteinsatz mitgeben. halt die eckdaten eines spiels, respektive rahmenbedingungen
 

Srb1ja

Mitglied
// Update

Ich denke jetzt mal:

Coupier muss...

Spiel erstellen
Spieler erstellen
Kartenstapel kennen
Kartenstapel mischen
Karten geben
Karten nehmen
Gewinn austeilen

Nur ich weiß halt nicht, wie das dann in der Klasse aussehen muss (im Klassendiagramm)
 

Ziegenpeter

Aktives Mitglied
Zwei kleine Anmerkungen für heute Nacht noch:

1. Der gute Mann (oder auch Frau) heißt Croupier, aber das nur so nebenbei ;)

2. Das ein Croupier Spieler erstellt ist nicht gerade sinnvoll. Das kann man sicherlich so machen, aber ich würde die Spieler sich anmelden lassen beim Croupier. D.h. eine übergeordnete Instanz erstellt Spieler und diese werden dann beim jeweiligen Croupier angemeldet. Aber du scheinst da ja an eine Aufgabe gebunden zu sein.

Zum Klassendiagramm schau dir mal den vorletzten Beitrag von Atze an, da steht eigentlich alles wichtige.
 

Ähnliche Java Themen

Neue Themen


Oben