Hallo ich bekomm ich Zeile 26 immer den fehler:
cannot find symbol
symbol : method compare(Play.Card,Play.Card)
location: class Play
ind zeile 7:
on-static method game(Play.Player,Play.Player) cannot be referenced from a static context
Hoffe ihr könnt mir weiter helfen
cannot find symbol
symbol : method compare(Play.Card,Play.Card)
location: class Play
ind zeile 7:
on-static method game(Play.Player,Play.Player) cannot be referenced from a static context
Hoffe ihr könnt mir weiter helfen
Java:
class Play
{
Player player,cpu;
public static void main(String [] args)
{
game(player,cpu);
}
public void game(Player player, Player cpu)
{
player = new Player();
cpu = new Player();
Deck main= new Deck(32);
main.mix();
main.deal(main);
int i=1;
int a;
int b;
while(!player.mainStack.isEmpty() && !cpu.mainStack.isEmpty())
{
Card playerCard = player.mainStack.pop();
Card cpuCard = cpu.mainStack.pop();
boolean vergleich = compare(playerCard, cpuCard);
if (vergleich)
{
System.out.println("Spieler hat diesen Zug gewonnen");
playerCard.print();
System.out.println("vs");
cpuCard.print();
player.ablageStack.push(playerCard);// Player bekommt karte auf ablagesta
player.ablageStack.push(cpuCard);
a++;
}
else
{
System.out.println("Computer hat diesen Zug gewonnen");
playerCard.print();
System.out.println("vs");
cpuCard.print();
cpu.ablageStack.push(playerCard);// Player bekommt karte auf ablagesta
cpu.ablageStack.push(cpuCard);
b++;
}
if(player.mainStack.isEmpty())
{
player.mainStack=player.ablageStack;
player.ablageStack= new Deck(32);
}
if(cpu.mainStack.isEmpty())
{
cpu.mainStack=cpu.ablageStack;
cpu.ablageStack= new Deck(32);
}
if(player.mainStack.isEmpty() && player.ablageStack.isEmpty())
{
System.out.println("Computer hat gewonnen");
}
if(cpu.mainStack.isEmpty() && cpu.ablageStack.isEmpty())
{
System.out.println("Spieler hat gewonnen");
}
if(i==64)
{
if(a>b)
{
System.out.println("Spieler hat gewonnen" +a+ " zu " +b);
}
else if(a<b)
{
System.out.println("Computer hat gewonnen" +b+ " zu " +a);
}
else
{
System.out.println(" Unentschieden ");
}
}
System.out.println("Zug " +i);
i++;
}
}
class Player
{
public Deck ablageStack = new Deck(32);
public Deck mainStack = new Deck(32);
}
class Deck
{
public Card[] stack;//array an karte
private int top=0;
public Deck(int i) /*Konstrukteroe haben kein Datentyp*/
{
stack = new Card[i];
}
public void mix()
{
for (int i; i<32; i++)
{
//Card temp; //legt neue karte an
int k = ((int)(Math.random()*32));
Card temp = stack[i]; // kopiert satack i mti allen eigebschafften
stack[i]= stack[k]; // Carde i nimmt eigenschaften von Karte k an
stack[k]= temp; //karte k bekommt eigeschaften von k
}
}
public void deal(Deck main)
{
boolean counter= true;
for(int i=0; i<32; i++)
{
if(counter)
{
Card playerCard = pop();
push (new Card(playerCard.getValueInt(), playerCard.getColorInt())); //
counter = false;
}
else
{
Card cpuCard = pop();
push (new Card(cpuCard.getValueInt(), cpuCard.getColorInt())); //
counter = true;
}
}
}
public void push (Card element)
{
stack[top++] = element;
}
public Card pop()
{
return stack[--top];
}
public boolean isEmpty()
{
return top==0;
}
public boolean isFull()
{
return (top==stack.length);
}
}
class Card
{
private final String[] VALUE= {"7","8","9","10","B","D","K","A"};
private final String[] COLOR={"Karo","Herz","Pik","Kreuz"};
private int value= 0;
private int color= 0;
public Card ( int value, int color)//Konstruktor
{
this.value= value;
this.color= color;
}
/*public String getValue()
{
return VALUE[value];
}
public String getColor()
{
return COLOR[color];
}*/
public int getValueInt() /*??????*/
{
return value;
}
public int getColorInt()
{
return color;
}
public boolean compare(Card playerCard, Card cpuCard)
{
if (playerCard.getValueInt() > cpuCard.getValueInt())
{
return true;
}
else if (playerCard.getValueInt() < cpuCard.getValueInt())
{
return false;
}
else
{
if (playerCard.getColorInt() > cpuCard.getColorInt())
{
return true;
}
else if (playerCard.getColorInt() < cpuCard.getColorInt())
{
return false;
}
}
}
public void print()
{
System.out.println(getValueInt()+ " " + getColorInt());
}
}
}