Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将.rank转换为整数值?_Java_Loops - Fatal编程技术网

Java 如何将.rank转换为整数值?

Java 如何将.rank转换为整数值?,java,loops,Java,Loops,试图用Java创建21点游戏,但无法理解如何从数组中获取数值 这是我的牌组代码: //Represent a playing card public class Card { //Instance variables: int suit; //0=clubs, 1=diamonds, 2=hearts, 3=spades int rank; //1=ace, 2=2,..., 10=10, 11=J, 12=Q, 13=K //Constructor:

试图用Java创建21点游戏,但无法理解如何从数组中获取数值

这是我的牌组代码:

//Represent a playing card
public class Card
{
    //Instance variables:
    int suit; //0=clubs, 1=diamonds, 2=hearts, 3=spades
    int rank; //1=ace, 2=2,..., 10=10, 11=J, 12=Q, 13=K

    //Constructor:
    public Card (int theSuit, int theRank)
    {
        suit = theSuit;
        rank = theRank;
    }

    //Print the card in a human-readable form:
    public void printCard()
    {
        String[] suits = {"Clubs", "Diamonds", "Hearts", "Spades"};
        String[] ranks = {"narf", "Ace", "2", "3", "4", "5", "6", "7",
            "8", "9", "10", "Jack", "Queen", "King"};
        System.out.print(ranks[rank] + " of " + suits[suit]);
    }
}
看,我使用了Card cardOne=deck.cards[(int)(Math.random()*52)];获得第一张和第二张牌供玩家查看,但我正在努力找出如何将该牌的值(4颗红桃对应4张牌,黑桃杰克对应10张牌等)保存为整数值,以确定玩家的点数

对不起,如果这让人困惑的话,英语不是我的第一语言

提前谢谢


-John

如果您有一个0到51(含)的整数,您可以将其转换为0-3和0-12范围内的两个数字,如下所示:

suit = n / 13;       // will be in range 0 to 3
rank = n % 13;       // will be in range 0 to 12


除非您打算用
n
做其他事情,否则您选择哪一个可能无关紧要。如果您确实计划使用
n
来代表一张牌,则您必须决定是否希望订单为club ace、diamond ace、heart ace、spade ace、club-2、diamond-2等。。。或者俱乐部A,俱乐部2,俱乐部3,俱乐部4。。。club king,diamond ace,diamond-2,…

只需创建一个
int[]
数组,该数组具有索引与
等级排列的点值

String[] ranks = {"narf", "Ace", "2", "3", "4", "5", "6", "7",
            "8", "9", "10", "Jack", "Queen", "King"};
int[] points = {0, 1, 2, 3, 4, 5, 6, 7,
            8, 9, 10, 10, 10, 10};
然后,当您的随机数生成一个
int
值(我们称之为
index
)时,您可以执行以下操作:

String rank = ranks[index];
int numberOfPoints = points[index];
String rank = ranks[index];
int numberOfPoints = points[index];