sách gpt4 ai đã đi

java - 黑 jack 打印发牌

In lại 作者:太空宇宙 更新时间:2023-11-04 07:57:01 26 4
mua khóa gpt4 Nike

我在黑 jack 游戏中需要帮助。我在数组中有一副牌,每次我取出一张牌并处理它时,数组都会被重新分配为小于大小的一个。所以我有这个循环,向每个第 n 个玩家发两张牌

        deck=createCardArray();
shuffle(deck);
int[] players = createPlayers(n);
int[] points = createPoints(n);

for(int i = 1 ; i<= players.length; i++){
Card a = dealCard(deck);
updatePoints(players, points, i, a);
Card b = dealCard(deck);
updatePoints(players, points, i, b);
printStats(players, points, a, b);
}

我想做的是在向每个玩家发两张牌后打印出牌和最终分数。所以我有这个方法 printstats 看起来像这样:

public static void printStats(int[] nplayers, int[] points, Card a, Card b){
for (int i=0; i<>
System.out.println("Player " + nplayers[i] + ": Points " + points[i]);
System.out.println("Card 1: " + a.showCardSuit() + " " + a.showCardValue());
System.out.println("Card 2: " + b.showCardSuit() + " " + b.showCardValue());
System.out.println();
}
}

它的作用是每次迭代并输出每次的牌点和玩家。但是当我运行这个时,它只给出最后一个玩家的两张牌。我明白为什么会发生这种情况。但我想要一个关于如何解决这个问题的建议。

我应该创建一个新的 2d 数组长度播放器和大小 2Xn 还是有其他方法可以做到这一点?

1 Câu trả lời

您可以通过创建一个包含您正在调用的方法的 Player 类来改进设计。一个简单的实现如下所示。

   public class Player{
Card a;
Card b;

public Card getA() {
return a;
}
public void setA(Card a) {
this.a = a;
}
public Card getB() {
return b;
}
public void setB(Card b) {
this.b = b;
}

public int points(){
//calculation for returning point value
int points = 0;
return points;
}

}

现在,您只需使用一个包含每个玩家的数组,而不是使用 2 个数组。当您循环访问此数组时,您可以使用 setA()setB() 方法为玩家提供卡片。每个玩家都有牌后,您再次循环遍历数组并使用 getA()getB() 打印出牌。使用 points() 为您提供了一种简单的方法来计算每个玩家手牌的分数,而无需拖动额外的数组。

如果您使用 List 或 ArrayList,而不是使用显式的 A、B 属性来保存卡片,则可以使其更加有用。这将使您可以使用相同的系统进行其他纸牌游戏,而这些游戏可能不仅仅使用 2 张纸牌。

关于java - 黑 jack 打印发牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13463439/

26 4 0
Bài viết được đề xuất: python - 更改列表中的每第 n 个项目
Bài viết được đề xuất: python - pandas - 根据另一列更改列中的值
Bài viết được đề xuất: html - 背景色改透明后卡住
Bài viết được đề xuất: c - C 中的全局变量链表队列? (初始化元素不是常量)
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com