我一直在尝试创建一个卡片应用程序来完成一次完美的洗牌。我在这段代码中遇到了上述错误。
public class Deck {
private List<Card> cards;
private int size;//number of cards in deck
public Deck(String[] faces, String[] suits, int[] values){
cards = new ArrayList<Card>();
for(String suit: suits)
for(int value = 0; value < values.length; value++){
Card a = new Card(faces[face], suit, values[face]);
cards.add(a);
}
size = cards.size();
}//ends deck
更具体地说,这一行是关于face变量的。
Card a = new Card(faces[face], suit, values[face]);
我在另一个类中创建了变量face,我已将其存储在名为Card的应用程序中。
public class Card {
private String suit;
private String face;
private int value;
public Card(String cardFace, String cardSuit, int cardValue){
face = cardFace;
suit = cardSuit;
value = cardValue;
}//ends Card
public String suit(){
return suit;
}//ends suit
public String face(){
return face;
}//ends face
我确信这是一个简单的解决方法,只需朝正确的方向寻找一点即可,谢谢。
最佳答案
替换
for(int value = 0; value < values.length; value++){
Card a = new Card(faces[face], suit, values[face]);
cards.add(a);
}
与
for(int value = 0; value < values.length && value < faces.length; value++){
Card a = new Card(faces[value], suit, values[value]);
cards.add(a);
}
上面给出的代码已解决以下问题:
- 使用循环计数器,
value
作为索引值。 - 检查
values
和faces
数组的长度,因为这些数组中的值是使用循环计数器value
访问的>.
关于java - 在java、ADT卡应用程序中找不到符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59383045/