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

Java纸牌游戏“滑冰”

楚嘉纳
2023-03-14

我尝试在Java实施纸牌游戏“滑冰”

规则:

有32张牌。每张牌在游戏中只存在一次。

颜色是:梅花、黑桃、红心、钻石

这些值是:王牌、国王、王后、杰克、十、九、八、七

那些牌被洗牌了。有三个队员

第一回合:每位玩家获赠3张牌。然后将2张牌放入滑板中。

第二回合:每名玩家再获4张牌。

第三回合:每名玩家再获3张牌。

想要的输出:露出的每个玩家的牌(每张牌都要存在一次)

我的输出:钻石七(32次)

我的代码:

班卡:

package skat;

public class Card
{
    private static String color, value;

    public static String getColor()
    {
        return color;
    }
    public static void setColor(String color)
    {
        Card.color = color;
    }
    public static String getValue()
    {
        return value;
    }
    public static void setValue(String value)
    {
        Card.value = value;
    } 

    @Override
    public String toString()
    {
        return color + " " + value;
    }
}

类主:

package skat;

import java.util.Random;

public class Main
{
    public static void main(String[] args)
    {
        Card[] game = new Card[32];

        genCardDeck(game);
        shuffleCardDeck(game);

        Card[] player1 = new Card[10];
        Card[] player2 = new Card[10];
        Card[] player3 = new Card[10];
        Card[] skat = new Card[2];

        dealCards(game,player1,player2,player3,skat);
        printCardDeck(game);
    }
    public static void genCardDeck(Card[] deck) //Generate the deck
    {
        final String colors[] = {"Clubs","Spades","Hearts","Diamonds"};
        final String values[] = {"Ace","King","Queen","Jack","Ten","Nine","Eight","Seven"};

        int i = 0;
        for (String f : colors)
        {
            for (String w : values)
            {
                deck[i] = new Card();
                deck[i].setColor(f);
                deck[i].setValues(w);
                i++;
            }
        }
    }
    public static void printCardDeck(Card[] deck) //Print out the deck
    {
        for (Card c : deck)
        {
            System.out.println(c);
        } 

    }
    public static void shuffleCardDeck(Card[] deck) //Shuffle the card deck
    {
        Random rand = new Random();
        for (int i = 0; i < deck.length; i++) { 
            int randomNum = rand.nextInt(deck.length); 
            Card temp = deck[i]; 
            deck[i] = deck[randomNum]; 
            deck[randomNum] = temp;
        }
    }
    public static void dealCards(Card[] deck, Card[] player1,
    Card[] player2, Card[] player3, Card[] skat) //Deal the cards
    {
        //Round 1
        int i;
        for(i=0;i<9;i++)
        {
            if(i<3)
                player1[i]=deck[i]; //Player 1
            else if(i<6)
                player2[i-3]=deck[i]; //Player 2
            else
                player3[i-6]=deck[i]; //Player 3 
        }
        for(i=0;i<2;i++)
        {
            skat[i]=deck[i]; //Skat
        }

        //Round 2
        for(i=0;i<12;i++)
        {
            if(i<4)
                player1[i]=deck[i+3]; //Player 1
            else if(i<8)
                player2[i-4]=deck[i+3]; //Player 2
            else
                player3[i-8]=deck[i+3]; //Player 3 
        }

        //Round 3
        for(i=0;i<9;i++)
        {
            if(i<3)
                player1[i]=deck[i+7]; //Player 1
            else if(i<6)
                player2[i-3]=deck[i+7]; //Player 2
            else
                player3[i-6]=deck[i+7]; //Player 3 
        }
    }
}

共有1个答案

井翰
2023-03-14

我修好了。现在它按预期工作。

固定代码:

班卡:

package skat;

public class Card
{
    private String color, value;

    public String getColor()
    {
        return color;
    }
    public void setColor(String color)
    {
        this.color = color;
    }
    public String getValue()
    {
        return value;
    }
    public void setValue(String value)
    {
        this.value = value;
    } 

    @Override
    public String toString()
    {
        return color + " " + value;
    }
}

类主:

package skat;

import java.util.Random;

public class Main
{
    public static void main(String[] args)
    {
        Card[] game = new Card[32];

        genCardDeck(game);
        shuffleCardDeck(game);

        Card[] player1 = new Card[10];
        Card[] player2 = new Card[10];
        Card[] player3 = new Card[10];
        Card[] skat = new Card[2];

        dealCards(game,player1,player2,player3,skat);
        printCardDeck(game,player1,player2,player3,skat);
    }
    public static void genCardDeck(Card[] deck) //Generate the deck
    {
        final String colors[] = {"Clubs","Spades","Hearts","Diamonds"};
        final String values[] = {"Ace","King","Queen","Jack","Ten","Nine","Eight","Seven"};

        int i = 0;
        for (String f : colors)
        {
            for (String w : values)
            {
                deck[i] = new Card();
                deck[i].setColor(f);
                deck[i].setValues(w);
                i++;
            }
        }
    }
    public static void printCardDeck(Card[] deck, Card[] player1,
    Card[] player2, Card[] player3, Card[] skat) //Print out the deck
    {
        System.out.print("Player 1: "); //Print player 1
        for (Card p1 : player1)
        {
            System.out.print(p1 + ", ");
        }
        System.out.println("\n");

        System.out.print("Player 2: "); //Print player 2
        for (Card p2 : player2)
        {
            System.out.print(p2 + ", ");
        }
        System.out.println("\n");

        System.out.print("Player 3: "); //Print player 3
        for (Card p3 : player3)
        {
            System.out.print(p3 + ", ");
        }
        System.out.println("\n");

        System.out.print("Skat: "); //Print Skat
        for (Card sk : skat)
        {
            System.out.print(sk + ", ");
        }
    }
    public static void shuffleCardDeck(Card[] deck) //Shuffle the card deck
    {
        Random rand = new Random();
        for (int i = 0; i < deck.length; i++) { 
            int randomNum = rand.nextInt(deck.length); 
            Card temp = deck[i]; 
            deck[i] = deck[randomNum]; 
            deck[randomNum] = temp;
        }
    }
    public static void dealCards(Card[] deck, Card[] player1,
    Card[] player2, Card[] player3, Card[] skat) //Deal the cards
    {
        //Round 1
        int i;
        for(i=0;i<9;i++)
        {
            if(i<3)
                player1[i]=deck[i]; //Player 1
            else if(i<6)
                player2[i-3]=deck[i]; //Player 2
            else
                player3[i-6]=deck[i]; //Player 3 
        }
        for(i=9;i<11;i++)
        {
            skat[i-9]=deck[i]; //Skat
        }

        //Round 2
        for(i=11;i<23;i++)
        {
            if(i<15)
                player1[i-8]=deck[i]; //Player 1
            else if(i<19)
                player2[i-12]=deck[i]; //Player 2
            else
                player3[i-16]=deck[i]; //Player 3 
        }

        //Round 3
        for(i=23;i<32;i++)
        {
            if(i<26)
                player1[i-16]=deck[i]; //Player 1
            else if(i<29)
                player2[i-19]=deck[i]; //Player 2
            else
                player3[i-22]=deck[i]; //Player 3 
        }
    }
}
 类似资料:
  • 我试图用Java实现纸牌游戏“Skat” 规则: 有32张卡片。每张牌在游戏中只存在一次。 颜色有:梅花、黑桃、红心、钻石 价值观是:王牌,国王,王后,杰克,十,九,八,七 那些牌被洗牌了。有三名球员 第一轮:每位玩家有3张牌。然后将两张卡片放入Skat。 第二轮:每位玩家再获赠4张牌。 第三轮:每位玩家再获得3张牌。 期望输出:每个玩家的牌都被展示(每张牌都应该存在一次) 我的产量:钻石七(32

  • 本文向大家介绍java实现24点纸牌游戏,包括了java实现24点纸牌游戏的使用技巧和注意事项,需要的朋友参考一下 本文题目为大家分享了java实现24点纸牌游戏的具体代码,供大家参考,具体内容如下 题目 24点游戏是经典的纸牌益智游戏。 常见游戏规则: 从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏

  • 我在做一个匹配的纸牌游戏,但我不明白如何实际做到这一点。我希望有人能帮我解释一下我能做些什么来解决这个问题。 以下是规格: 在一个对的纸牌游戏中,目标是翻出对匹配的纸牌。 https://en.wikipedia.org/wiki/contension_(游戏)以下是我们考虑的配对变化的规则。 在游戏开始时,有n张牌面朝下,其中n是4的倍数。每种卡片有4张,卡片上标有字母a、b、....例如,如果

  • 本文向大家介绍Java编写的24点纸牌游戏,包括了Java编写的24点纸牌游戏的使用技巧和注意事项,需要的朋友参考一下 任意4个1-13数字,加减乘除计算24点。 实现原理: 1)排列组合4个数字 2)计算每次排列组合的可能性 Cal24.java Combination.java 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 我正在尝试创建一个MVC模式的回合制卡牌游戏。我对正确的设计有些怀疑。 我创建了一个由这些类组成的模型: 卡(使用套装) 套牌(40张牌,抽取牌法,剩余牌数) 表 套装(enum) 玩家(手牌,人名,手牌数,收藏牌我想) 游戏模型(引用了Deck、Table,并在构造函数中包含两个玩家) 我将在用户按下“新游戏”按钮时创建两个Player对象和GameModel(计算机和Player)。这样做对吗

  • 这是我关于堆栈溢出的第一个问题,所以如果我的问题中有一个新手错误,请原谅,请随时更正,因为我计划在未来几个月内更多地使用此网站。 不管怎样,我是高中12年级的学生,我被一个家庭作业问题卡住了。所以基本上我们被分配了一个创建战争游戏(纸牌游戏)的项目,我们被要求每天做一小部分。到目前为止,直到今天一切都很顺利,因此我向你们提出了这个问题。 以下是该项目的内容: 卡片 它有什么: 私有int值:卡的值