首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要确定字符串格式IE D-A的两张卡之间的High Card

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

Stack Overflow用户
提问于 2016-02-02 07:00:02
回答 1查看 625关注 0票数 1

这是我第一次在Java Eclipse Mars中编程,我们有一个我一直坚持的活动。该活动是模拟一个有两个玩家的纸牌游戏。让我们称它们为P1和P2。第一个要求是:创建一副52张牌,第二个:创建一个方法来洗牌,第三个:是交替地将牌分配给P1和P2,但都有26张牌在他们自己的一堆上。第四: P1和P2从各自的牌堆中抽出一张牌,然后将他们的牌相互比较,看看谁的牌更高。第五:赢家拿着两张牌放入自己的那一堆。当玩家的纸牌用完时,游戏就结束了。

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

我只会放一些必要的代码。因为我的代码太乱了。

代码语言:javascript
复制
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 

//获胜可以得到两张在一轮中进行比较的牌。

我已经正确地将卡片分发给了两个堆,Pile1和Pile2都是它们各自堆的顶层卡片。

现在是两个玩家抽出他们最好的牌并进行比较的时候了。这就是现在的问题所在。我不知道如何将价值放入牌中,以便他们进行比较。以及如何从这一轮的失败者那里拿到牌,并将两张牌都放入胜利者的一副牌中。

顺便说一下,这就是这个游戏的工作原理。比较首先针对卡IE的等级进行,2-10,A,K,Q,J S-5击败D-3,因为5>3。第二次比较发生在卡具有相同等级时。我们现在去比较一下花色的牌,即钻石牌、红心牌、黑桃牌、梅花牌。D-5击败S-5,因为D>S

因此,对于任何能给我任何想法的人,我都要提前表示感谢:)

EN

回答 1

Stack Overflow用户

发布于 2016-02-02 07:47:39

虽然这不是我的第一个建议,但我在下面写了一些代码,可以在您的情况下工作。这将返回该卡的整数值,您可以只检查该整数值是更高还是更低。

代码语言:javascript
复制
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,可能会有点困惑,因为我猜您只是习惯于使用一个类。

对于“以及如何从这一轮的失败者那里获得卡片,并将两张卡片放在胜利者的一副牌中”,你可以这样做...

代码语言:javascript
复制
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.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35142084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档