我正在制作一个疯狂的 8 点 Java 纸牌游戏,并为一个玩家的手制作了一系列纸牌,但是当我尝试打印出那只手时,它是一堆随机字符。我也有一个卡片课程,但这似乎很好。请帮忙。
错误:
Welcome to Crazy Eights!(Type 0 to start)
0
Your Hand:
[LnnajiO.Card;@73ae74f5
卡类:
import java.util.Random;
public class Card {
//All of the card numbers, in strings
final String[] FACESTRINGS = {"" , "Ace" , "Two", "Three", "Four", "Five", "Six",
"Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King" };
//All of the card numbers as integers
final int[] FACENUMS = {0,1,2,3,4,5,6,7,8,9,10,11,12,13};
final String[] SUITSTRINGS = {"Hearts", "Diamonds", "Spades", "Clubs"};
final int[] SUITNUMS = {1,2,3,4};
int FaceNumIndex;
int SuitIndex;
int cardFaceNumber;
String cardFaceString;
int suitFaceNumber;
String suitFaceString;
Random rand = new Random();
//Default Random Card that assignes a random suit and number
public Card(){
int tempSuit = rand.nextInt(3);
int tempNumber = rand.nextInt(13)+1;
FaceNumIndex = tempNumber;
cardFaceNumber = FACENUMS[tempNumber];
cardFaceString = FACESTRINGS[tempNumber];
suitFaceNumber = SUITNUMS[tempSuit];
suitFaceString = SUITSTRINGS[tempSuit];
}
//Overrides the default
public Card(int suit, int face){
//Return 1-13 for the face and 0-3 for the suit
FaceNumIndex = face;
SuitIndex = suit;
cardFaceNumber = FACENUMS[face];
cardFaceString = FACESTRINGS[face];
suitFaceNumber = SUITNUMS[suit];
suitFaceString = SUITSTRINGS[suit];
}
public void setFaceName(int faceName){
//Takes an int to set the Suit of the card input 1-13
FaceNumIndex = faceName;
cardFaceNumber = FACENUMS[faceName];
cardFaceString = FACESTRINGS[faceName];
}
public void setSuitName(int suitName){
//Takes an int 1-4 to set the suit name from the array
SuitIndex = suitName;
suitFaceNumber = SUITNUMS[suitName];
suitFaceString = SUITSTRINGS[suitName];
}
//Returns Face Values
public int getFace(){
return FACENUMS[FaceNumIndex];
}
public String getFaceName(){
return FACESTRINGS[FaceNumIndex];
}
//Return Suit Values
public int getSuit(){
return SUITNUMS[SuitIndex];
}
public String getSuitName(){
return SUITSTRINGS[SuitIndex];
}
//Compares this card to the returned class
public boolean isHigherThan(Card passCard, boolean AceHigher){
int tempCardSuit = passCard.getSuit();
int tempCardFace = passCard.getFace();
if (tempCardFace>FaceNumIndex){
return false;
}else if (tempCardFace<FaceNumIndex){
return true;
}else{
if (tempCardSuit>SuitIndex){
return false;
}else if(tempCardSuit<SuitIndex){
return true;
}else{
System.out.println("The Cards are equal");
return false;
}
}
}
//Override for previous isHigherThan
public boolean isHigherThan(Card PassCard){
return isHigherThan(PassCard, true);
}
public String toString(){
return cardFaceString + " of " + suitFaceString;
}
public boolean isHigherThan(int i, String string) {
// TODO Auto-generated method stub
return false;
}
}
同样对于这个“if”语句,我要让它检查player2手中任何一张牌的“suitFaceNumber”或“cardFaceNumber”是否与起始牌的“suitFaceNumber”或“cardFaceNumber”匹配,而不是一一做。
“如果”语句
if(player2Hand[0].cardFaceNumber==startingCard.cardFaceNumber ||
player2Hand[4].suitFaceNumber==startingCard.suitFaceNumber ){
}