【问题标题】:How to convert .rank into an integer value?如何将 .rank 转换为整数值?
【发布时间】:2014-12-09 04:42:22
【问题描述】:

试图用Java创建一个二十一点游戏,但无法理解如何从数组事物中获取数值。

这是我的纸牌代码:

//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,黑桃 J 为 10 等)为整数用于确定玩家多少分的值?

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

提前致谢!

-约翰

【问题讨论】:

    标签: java loops


    【解决方案1】:

    只需创建一个int[] 数组,其中包含索引与ranks 数组对齐的点值。

    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];
    

    【讨论】:

      【解决方案2】:

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

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

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

      除非您打算使用n 做其他事情,否则您选择其中的哪一个可能并不重要。如果您确实打算使用n 来表示一张牌,您必须决定您是否希望顺序是梅花王牌、钻石王牌、红心王牌、黑桃王牌、梅花王牌、钻石王牌 2 , 等等 ... 或 club-ace, club-2, club-3, club-4 ... club-king, diamond-ace, diamond-2, ...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-18
        • 2016-04-01
        • 1970-01-01
        相关资源
        最近更新 更多