C
calzone
Gast
Hallo,
hab mal wieder ein prob. . Es wird eine Variable nicht gefunden und ich weis ehrlich gesegt nicht warum.
Es ist die variable skart.
skart ist die Instanz der Klasse SkartCardset.
ich sprech sie in der main Meth der Klasse TestCardsGame mit skart.skartcards an ->Zeile 197
Hier mal der Quelltext:
hab mal wieder ein prob. . Es wird eine Variable nicht gefunden und ich weis ehrlich gesegt nicht warum.
Es ist die variable skart.
skart ist die Instanz der Klasse SkartCardset.
ich sprech sie in der main Meth der Klasse TestCardsGame mit skart.skartcards an ->Zeile 197
Hier mal der Quelltext:
Code:
class PlayerCards{
char ziffer;
char color;
PlayerCards(char color, char ziffer){
this.color = color;
this.ziffer = ziffer;
}
PlayerCards(char color){
this.color = color;
}
public String toString(){
String hilfsstring = color + ziffer;
return hilfsstring;
}
}
class SkartCardSet{
PlayerCards[] skartcards = new PlayerCards[32];
SkartCardSet(){
for(int i = 0; i < skartcards.length; i++){
skartcards[i] =new PlayerCards();
int j = 0;
if (i<8){
skartcards[i].color = 'x';
j = i+1;}
else if ((i>7) && (i < 16)){
skartcards[i].color = 'p';
j = i-7;
}
else if ((i > 15) && (i < 24)){
skartcards[i].color = 'h';
j = i - 15;
}
else if (i > 23){
skartcards[i].color = 'k';
j = i - 23;
}
switch (j){
case 1: skartcards[i].ziffer = 'a';
break;
case 2:skartcards[i].ziffer = 'k';
break;
case 3:skartcards[i].ziffer = 'd';
break;
case 4:skartcards[i].ziffer = 'b';
break;
case 5:skartcards[i].ziffer = 'x';
break;
case 6:skartcards[i].ziffer = '9';
break;
case 7:skartcards[i].ziffer = '8';
break;
case 8:skartcards[i].ziffer = '7';
break;
}
}
}
}
class TestCardsGame{
static void showCards(PlayerCards[] cards){
for(int i = 0; i < cards.length; i++){
System.out.println(cards[i].color +" "+cards[i].ziffer);
if (i == 7| i == 15 | i == 23)
System.out.println();
}
}
public static void main(String[] args){
System.out.println("Zeige alle Skart Karten ,so wie in SkartCardSet
eingerichtet");
SkartCardSet skart = new SkartCardSet();
showCards(skart.skartcards);
System.out.println("Zeige die Klass Card Stack");
CardStack stapel = new CardStack(test);
System.out.println(stapel.toString());
System.out.println("Erschaffe neuen KartenStapel und fülle in mit Skart
Karten");
stapel.createFullCardStack();
System.out.println(stapel.toString());
System.out.println("Entferne die letzte Karte");
stapel.removeCardOnTop();
System.out.println(stapel.toString());
System.out.println("Füge ein HerzAss dem Stapel hinzu");
PlayerCards herzass = new PlayerCards('h','a');
stapel.addCardOnTop(herzass);
stapel.toString();
System.out.println("Erschaffe leeren Stapel");
CardStack neuerStapel = new CardStack();
neuerStapel.toString();
}
}
//als Instanzvorlage
class CardStack{
String owner;
PlayerCards[] owningcards = new PlayerCards[1];
CardStack(String owner){
this.owner = owner;
owningcards[0] = new PlayersCards('0');//wenn color = 0 des ersten und
einzigen Objekts, bedeutet das der Stapel leer ist
}
public void addCardOnTop(PlayerCards[] card){
//als erstes werden alle objekte von owningcards in ein temp array
geschrieben
PlayerCards[] tempowningcards = new PlayerCards[owningcards.length];
for (int i = 0; i < owningcards.length;i++){
tempowningcards[i] = new PlayerCards();
tempowningcards[i].color = owningcards[i].color;
tempowningcards[i].ziffer = owningcards[i].ziffer;
}
//zweiter schritt das ur array owningcards mit beschrieben mit dem inhalt
des arrays temp und dem übergebenen arg
PlayerCards[] owningcards = new owningcards[tempowningcards.length +1];
for (int i = 0; i < tempowningcards.length +1; i++){
owningcards[i] = new PlayerCards();
owningcards[i].color = tempowningcards[i].color;
owningcards[i].ziffer = tempowningcards[i].ziffer;
if ( i == tempowningcards.length -1){
owningcards[i].color = card.color;
ownngcard[i].ziffer = card.ziffer;
}
}
}
public void removecardOnTop(){
PlayerCards[] tempowningcards = new tempowningcards[owningcards.length -1];
for (int i = 0;i < owningcards.length-1;i++){
tempowningcards[i] = new PlayerCards();
tempowningcards[i].color = owningcards[i].color;
tempowningcards[i].ziffer = owningcards[i].ziffer;
}
PlayerCards[] owningcards = new PlayerCards[tempowningcards.length];
for (int i = 0; i < tempowningcards.length; i++){
owningcards[i] = new PlayerCards();
owningcards[i].color = tempowningcards[i].color;
owningcards[i].ziffer = tempowningcards[i].ziffer;
}
}
public void createFullCardStack(){
for (int i = 0; i < skart.skartcards.length; i++){
owningcards[i].color = skart.skartcards[i].color;
owningcards[i].ziffer = skart.skartcards[i].ziffer;
}
}
public String toString(){
String hilfsstring ="";
for (int i = 0; i < owningcards.length; i++){
hilfsstring = hilfsstring + (owningcards[i].color +"
"+owningcards[i].ziffer);
if (owningcards[i].color == '0'){
hilfsstring = "Der Stapel ist leer ";
break;
}
}
hilfsstring = hilfsstring + "Der Owner ist "+owner;
return hilfsstring;
}
}