我试图创建一个非常简单的战争游戏。用户和电脑每回合吸1张牌,他们要么赢,要么输,要么输。当卡片不在时,游戏结束。我有4个班。我的战争班大部分时间只是在测试甲板上是否有效。我需要做对半平分甲板所以每个玩家抽1张卡每回合(由比赛结束共有26个),我不知道该怎么做。我猜我需要一个for循环,但除此之外,我不知道如何给每个玩家一张卡片。在类战争中忽略用户输入,就像我说的,我只是在测试一些东西。我在这里显示了3个类,我的最后一个是JApplet,在这里不需要,所以我没有包含它。如何将一副牌分成两半?
编辑:感谢您的帮助球员。我有最后一个问题,然后我应该很好。我想在我的JApplet类中显示Card.toString,但是当我调用Card card = new Card();它拒绝工作。我猜这是因为构造函数。我将如何去获取该toString来显示,或绕过构造函数。
编辑:把事情做好,感谢您的帮助球员。
import java.util.ArrayList;
import java.util.Random;
public class Card {
private int suit, number;
String [] suits = {"Heart" , "Diamond" , "Spade" , "Club"}; //suits
String [] numbers = { "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "10" ,
"Jack" , "Queen" , "King" , "Ace" }; //card values
String card = "";
public Card(int suits, int numbers)
{
suit = suits;
number = numbers;
}
public String toString() //displays card suit/value
{
String finalCard = numbers[number] + " of " + suits[suit];
return finalCard;
}
}
import java.util.ArrayList;
import java.util.Random;
public class FullDeck {
private ArrayList<Card> cards = new ArrayList<Card>();//card array list
public FullDeck()
{
for(int a =0; a<=3; a++) //loops through suits
{
for(int b =0; b<=12;b++) //loops through values
{
cards.add(new Card(a,b)); //creates adds cards to list
}
}
}
public Card drawRandomCard()
{
Random generator = new Random(); //picks random card
int index = generator.nextInt(cards.size());
return cards.remove(index); //removes card from list
}
public String toString()
{
String result = "Cards remaining in deck: " + cards; //not currently used
return result;
}
}
import java.util.Scanner;
public class War {
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
Card C;
FullDeck hand1 = new FullDeck();
FullDeck hand2 = new FullDeck();
System.out.println("Enter number of cards to be dealt: ");
int numberCards = scan.nextInt();
System.out.println("Cards drawn: ");
for (int i = 0; i < numberCards; i++) {
C = hand1.drawRandomCard();
System.out.println(C.toString());
}
}
}
为每个玩家提供一副套牌,每套牌都由原来的一半制作^^ – moonwave99
简单的方法就是让双方的玩家拥有完整的套牌,并且每当一张牌被抽出时,从两套牌中移除该牌。 .. –
为什么你需要拆分甲板,如果当你调用'drawRandomCard()'它将牌从甲板上移开?如果玩家和电脑依次调用'drawRandomCard()',那么它将自动发生,每个人最终会得到26张卡片。 –