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

无法为多个玩家创建手牌

齐泰
2023-03-14

我的程序要求用户输入牌数和玩家数。我只是想打印出每个玩家的卡片。ex.(球员1:黑桃王牌,红桃两枚。球员2:梅花两枚等)我已经把它打印出来了,但它似乎只打印出一套卡片,尽管玩家的数量中输入了2张。这是我的密码。

手类:

public class Hand 
{
	private int handSize;			//how many cards in the hand
	private int cardsInHand;		//counter
	private Card [] hand;
	
	
	public Hand ()
	{
		hand = new Card[52];
		handSize = 5;
		cardsInHand = 0;
	}
	
	public Hand (int handSize)
	{
		hand = new Card [handSize];
		this.handSize = handSize;
		
	}

	public void addCard (Card card)
	{
		if (cardsInHand >= handSize) 
		{
			Card[] temp = new Card[hand.length*2];
			for (int i=0; i < cardsInHand; i++)
			{	
				temp[i] = hand[i];
				hand = temp;
			}
		}
		
	}
public class Deck 
{
	
	private Card [] deck;
	private int nextCard;
	
	
	public Deck()
	{
		deck = new Card[52];
        int iCardCount=0; 	// Holds how many cards have been created.
        for ( int suit = 0; suit <= 3; suit++ ) 
        {
            for ( int face = 1; face <= 13; face++ ) 
            {
                deck[iCardCount] = new Card(iCardCount);
                iCardCount++;
            }
        }
        nextCard = 0;
	}
 
    public Card dealACard ()
	{
		if (nextCard < 52)
		{
			System.out.println( deck[nextCard++]);
		}
		else
		{
			System.out.print("\nError, out of cards." );	
		}
		return (null);
	}
   
	public Hand dealAHand (int n)
	{	
		Hand hand = new Hand(n);
		Card deal = new Card(n);
		
	
		for (int i = 0; i < n; i++) 
		{ 
			hand = dealACard();
		}
		return hand;
	}

我的司机:

System.out.println ("How many cards in the hand? ");
int iHand = kb.nextInt();
Hand newHand = new Hand(iHand);
System.out.println("How many players are playing? ");
int iPlayers = kb.nextInt();
Deck secondDeck = new Deck();
secondDeck.shuffle();
secondDeck.dealAHand(iHand);

我得到的输出:

How many cards in the hand? 
5
How many players are playing? 
2
the TWO of SPADES
the ACE of HEARTS
the TEN of DIAMONDS
the QUEEN of CLUBS
the NINE of HEARTS

我想让它打印出两套卡片,而不是一套,但从逻辑上讲,我不知道该怎么做。任何帮助都会很好,谢谢。

共有1个答案

上官高翰
2023-03-14

你只有一个Hand的例子,就像D.Wallace说的,你只给dealAHand打过一次电话。在开始编写代码之前,您应该对解决方案的结构进行更多的研究。

 类似资料:
  • 在我创建的游戏中,我只希望僵尸能够每分钟击中玩家2次,而不是拿走洞健康条,因为它会让玩家快速受伤。 这是检查玩家和僵尸碰撞的代码。我这样做是为了让玩家只受到10点伤害,但这样玩家就再也不会受到伤害了。我尝试使用if语句来检查玩家是否无敌,并且在if语句中有一个for循环,当int达到30000时,该循环会使玩家死亡,但僵尸仍然会以如此快的速度伤害玩家,以至于洞健康条被拿走。

  • 我在stackoverflow的帮助下设法拼凑了以下jQuery: 上面的脚本为我在Wordpress中的每个父类别添加了各种属性(第一个li与te类'cat-在父类别中'),并将href的ID添加到子类别(嵌套的ul与类'孩子')。这是为了创建一个引导手风琴风格的导航下拉框。请参阅下面输出的html: 问题是当我在Wordpress中创建新的父菜单项时,我必须编辑我的jquery脚本来添加新的c

  • 我想在Eclipse中用for创建10个txt文件,但是为什么我这么做的时候会出错?

  • 我目前正在试验托管。NET CoreCLR在C应用程序中基本上实现某种插件系统。 我使用corerun源代码作为基础,开始并探索如何构建本机主机—其他教程/文档通常以某种方式失败 最后我让它工作了,我可以初始化运行库,创建AppDomain并执行.NET Core程序集。 我的下一步是运行多个程序集,因此我只是创建了第二个测试程序集,并尝试以与第一个测试程序集相同的方式执行它。 实际上,我的应用程

  • 我正在使用以下JPA查询,我得到了java.lang.IllegalArgumentException:无法为具有多个返回异常的查询创建TypeQuery。 谁能告诉我我的问题有什么错吗.....我是JPA的新成员,我不知道这里有什么问题。如果有人有想法,请告诉我。

  • 好的,我有一个手臂和旋转关节相连的球员。我想要的是手臂身体向接触点旋转。 我试图计算接触点与身体的角度,并用 但它在更新方法上表现得很奇怪。它绕着手臂身体的中心旋转,而不是绕着旋转关节连接的身体旋转。 我也在考虑一个关节,但我不知道哪个能像我想要的那样工作。 我将不胜感激任何帮助!