当前位置: 首页 > 知识库问答 >
问题:

我需要确定字符串格式IE D-A的两张卡之间的High Card

强宾白
2023-03-14

这是我第一次用Java Eclipse Mars进行编码,我们有一个活动我一直在做。该活动是模拟两名玩家的纸牌游戏。我们把它们叫做P1和P2。要求是:第一:创建一副52张牌,第二:创建一种洗牌方法,第三:交替将牌分配给P1和P2,直到它们自己的牌堆上都有26张牌。第四:是P1和P2从各自的牌堆中抽取一张牌,然后相互比较,看看谁的牌更高。第五:胜利者拿下两张牌并放入自己的牌堆。当玩家从牌堆中用完牌时,游戏结束。

我现在做的部分是第三部分。我现在只需要知道如何给这些卡片赋值,这样比较部分就可以完成了。

我只会输入必要的代码。因为我的编码太乱了。

String[] CurrentDeck = new String[52];
// This array contains the deck of cards to be distributed to each player
// This contains elements in this format:: "D-A", "D-K", "D-Q", "D-J", "D-10", "D-9", "D-8", "D-7", "D-6", "D-5", "D-4", "D-3", "D-2",... and so on.

String[] Pile1 = new String[52];
String[] Pile2 = new String[52];
// These represent the pile of cards for Player 1 and 2 respectively.
// They both start with 26 cards each.
// The reason they are 52 in size is because their pile can have 52 cards in it since 

//赢了会得到一轮比较过的两张牌。

我已经将这些卡正确地分发到了两个堆中,第一排[0]和第二排[0]都是各自堆中的顶部卡。

现在是两个玩家抽出他们的顶级卡片并进行比较的时候了。这就是现在的问题。我不知道如何将价值放入卡片中让他们进行比较。以及如何从这轮的失败者那里得到这张卡片,并将两张卡片放在获胜者的套牌中。

顺便说一句,这就是游戏的运作方式。首先比较牌的秩,即2-10、A、K、Q、J,S-5比D-3早5次

所以提前感谢谁能给我任何想法:)

共有1个答案

松霖
2023-03-14

虽然这不是我的第一个建议,但我在下面编写了一些适用于您的代码。这将返回卡的整数值,您可以检查整数值是高还是低。

public static int checkValue(String card)
{        
    String[] name = card.split("-");

    switch(name[1])
    {
        case "J":
        return 11;
        case "Q":
        return 12;
        case "K":
        return 13;
        case "A:
        return 1;
        default:
        return Integer.parseInt(name[1]);
    }
}

就我个人而言,我会为卡片创建一个全新的类,但如果您刚刚开始使用Java,可能会有点困惑,因为我猜您只是习惯于使用一个类。

对于“以及如何从这一轮的失败者手中获得牌,并将这两张牌放在胜利者的牌组中”,你可以做如下操作。。。

String winCardsP1 = "", winCardsP2 = "";
// ...

// When a player wins
winCardsP1 += Pile2[i] + " ";
// OR
winCardsP2 += Pile1[i] + " ";
// ...

// Then to create the final array...
Pile1 = winCardsP1.split(" ");
Pile2 = winCardsP2.split(" ");

// This will make a new array with all the cards they won. 
// You will have to adjust your loop in order to compensate 
// looping through the decks each time, and when they have no cards they lose.

// The '...' stands for code in between the assignments.
 类似资料:
  • 问题内容: 我有一个字符串,例如:“这是应该使用的URL http://www.google.com/MyDoc.pdf ” 我只需要提取从http开始并以pdf结尾的URL:http: //www.google.com/MyDoc.pdf 这使我的输出为“应使用的http://www.google.com/MyDoc.pdf” 需要帮助。 问题答案: 这种问题是针对正则表达式进行的: 正则表达式

  • 我有一个变量,它包含以下值: 我目前正在使用以下代码将其格式化为字符串:.使用此代码,我得到以下值: 我需要这个更准确。我想要得到的精确值在以下精度范围内: 我在以下链接上做了一些研究:http://www.w3.org/TR/NOTE-datetime 以下是我的发现: 此配置文件没有指定可以使用多少位数来表示每秒的小数部分。允许分数秒的采用标准必须规定最小位数(大于或等于一的数字)和最大位数(

  • 我需要把绳子接上 到目前为止,我有这个,但不知道如何截断实际的“字符串分隔符”:

  • 问题 你要在C和Python直接来回转换字符串,但是C中的编码格式并不确定。 例如,可能C中的数据期望是UTF-8,但是并没有强制它必须是。 你想编写代码来以一种优雅的方式处理这些不合格数据,这样就不会让Python奔溃或者破坏进程中的字符串数据。 解决方案 下面是一些C的数据和一个函数来演示这个问题: /* Some dubious string data (malformed UTF-8) *

  • 我错过了什么?