Liebe Community,
ich habe nun versucht ein Kartendeck zu programmieren und hab dafür zwei Klassen geschrieben. Zum einen eine Karte-Klasse und zum anderen eine KartenSpiel-Klasse. Meine Frage ist nun, ob die Klassen fehlerfrei geschrieben sind und wie ich das Kartendeck irgendwie anzeigen kann?
Liebe Grüße
[CODE lang="java" title="Karte"]public class Karte{
private final static int KARO= 0;
private final static int HERZ = 1;
private final static int PIK = 2;
private final static int KREUZ= 3;
private final static int BUBE= 11;
private final static int DAME= 12;
private final static int KOENIG= 13;
private final static int ASS = 1;
private final int farbe;
private final int wert;
//Konstruktor
public Karte(int f, int w){
farbe = f;
wert = w;
}
public String farbeInString(){
switch (farbe){
case KARO:
return "Karo";
case HERZ:
return "Herz";
case PIK:
return "Pik";
case KREUZ:
return "Kreuz";
}
System.out.println("Farbe falsch! : "+farbe);
return "-1";
}
public String wertInString() {
if ((wert>=2)&&(wert<=10))
return " " + wert;
switch (wert){
case 1:
return "A";
case 11:
return "B";
case 12:
return "D";
case 13:
return "K";
}
return "-1";
}
public String KarteInString(){
return farbeInString() + "-" + wertInString();
}
}[/CODE]
[CODE lang="java" title="KartenSpiel"]import java.util.*;
public class KartenSpiel{
private Karte[] stapel;
private int kartenImSpiel;
//Konstruktor
public KartenSpiel(){
stapel = new Karte[52];
int zaehler = 0;
for (int f=0; f<4; f++ ){
for (int w=1; w<14; w++ ){
stapel[zaehler] = new Karte(f, w);
zaehler++;
}
}
mischen();
}
public void mischen() {
Karte temp;
kartenImSpiel = 52;
Random rand = new Random();
for (int i=kartenImSpiel-1; i>=0; i--) {
int zuff = rand.nextInt(kartenImSpiel);
if (zuff!= i) {
temp = stapel;
stapel = stapel[zuff];
stapel[zuff] = temp;
}
}
}
public int kartenAnzahl() {
return kartenImSpiel;
}
public Karte gibEineKarte(){
if (kartenImSpiel == 0)
mischen();
kartenImSpiel--;
return stapel[kartenImSpiel];
}
public static void main(String args[]){
KartenSpiel test = new KartenSpiel();
test.gibEineKarte();
test.kartenAnzahl();
}
}[/CODE]
ich habe nun versucht ein Kartendeck zu programmieren und hab dafür zwei Klassen geschrieben. Zum einen eine Karte-Klasse und zum anderen eine KartenSpiel-Klasse. Meine Frage ist nun, ob die Klassen fehlerfrei geschrieben sind und wie ich das Kartendeck irgendwie anzeigen kann?
Liebe Grüße
[CODE lang="java" title="Karte"]public class Karte{
private final static int KARO= 0;
private final static int HERZ = 1;
private final static int PIK = 2;
private final static int KREUZ= 3;
private final static int BUBE= 11;
private final static int DAME= 12;
private final static int KOENIG= 13;
private final static int ASS = 1;
private final int farbe;
private final int wert;
//Konstruktor
public Karte(int f, int w){
farbe = f;
wert = w;
}
public String farbeInString(){
switch (farbe){
case KARO:
return "Karo";
case HERZ:
return "Herz";
case PIK:
return "Pik";
case KREUZ:
return "Kreuz";
}
System.out.println("Farbe falsch! : "+farbe);
return "-1";
}
public String wertInString() {
if ((wert>=2)&&(wert<=10))
return " " + wert;
switch (wert){
case 1:
return "A";
case 11:
return "B";
case 12:
return "D";
case 13:
return "K";
}
return "-1";
}
public String KarteInString(){
return farbeInString() + "-" + wertInString();
}
}[/CODE]
[CODE lang="java" title="KartenSpiel"]import java.util.*;
public class KartenSpiel{
private Karte[] stapel;
private int kartenImSpiel;
//Konstruktor
public KartenSpiel(){
stapel = new Karte[52];
int zaehler = 0;
for (int f=0; f<4; f++ ){
for (int w=1; w<14; w++ ){
stapel[zaehler] = new Karte(f, w);
zaehler++;
}
}
mischen();
}
public void mischen() {
Karte temp;
kartenImSpiel = 52;
Random rand = new Random();
for (int i=kartenImSpiel-1; i>=0; i--) {
int zuff = rand.nextInt(kartenImSpiel);
if (zuff!= i) {
temp = stapel;
stapel = stapel[zuff];
stapel[zuff] = temp;
}
}
}
public int kartenAnzahl() {
return kartenImSpiel;
}
public Karte gibEineKarte(){
if (kartenImSpiel == 0)
mischen();
kartenImSpiel--;
return stapel[kartenImSpiel];
}
public static void main(String args[]){
KartenSpiel test = new KartenSpiel();
test.gibEineKarte();
test.kartenAnzahl();
}
}[/CODE]