- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在黑 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<nplayers.length;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 还是有其他方法可以做到这一点?
最佳答案
您可以通过创建一个包含您正在调用的方法的 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/
Google已正式发布其博客http://android-developers.blogspot.fr/2014/12/hello-world-meet-our-new-experimental.ht
我正尝试按照本文 https://developer.android.com/preview/j8-jack.html 中的步骤在我的 Android 项目中启用 Jack 工具链但只要我添加 and
系统:ubuntu 18.04 环境:VirtualBox 第一次在Ubuntu 18.04上编译AOSP源码,通过,第二次编译失败。 这是一条错误消息。 [ 10% 538/4980] Ensuri
我在使用最新的 Android Studio(预览版 4)和使用 Jack 进行编译时遇到问题。 我收到这个错误: FAILURE: Build failed with an exception. *
如 developer.android 网站所述 "The Jack toolchain is deprecated, as per this announcement. If your projec
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 8年前关闭。 Improve this qu
我使用的是 Android Studio 版本 v2.1.2,当我尝试签署发布版本时 Proguard 不起作用,构建严重失败。 According to this link from develop
尝试在 python 中使用 pyaudio 时出现以下错误。 Python 2.7.10 (default, Oct 14 2015, 16:09:02) [GCC 5.2.1 20151010]
升级我的项目以启用 Jack 和 Java8 功能后,我的 16gb macbook 似乎无法再构建我的项目。我看到内存使用率越来越高,但进程总是卡在同一点。 我的 Gradle 控制台: Execu
假设我拥有一个社交媒体网站。我想实现一个 iframe,允许用户通过第 3 方网站注册我的网站 - 很像 facebook 的“like this”iframe,但用于注册。 (顺便说一句,这只是一个
我正在尝试在 Eclipse 中编写一个黑 jack 程序,但当该程序处理 Ace 时遇到问题。我询问用户是否希望 A 值 1 或 11。确实如此,但当我输入值时,它会给出错误消息 "Exceptio
我正在使用 ROS 运行大量 docker 容器,用于控制机器人。其中一个容器必须通过 sound_play 包播放一些音频文件。但是它返回错误 Cannot connect to server so
所以我正在开发一个黑 jack 程序,但我有点卡住了。我会警告大家,我对编程真的很陌生,而且,我正在项目中期......所以有一些松散的结局和未使用的变量,以及一些不必要的逻辑(用于测试),但这就是我
我不太确定如何解决。所以我正在编程 blackJack 并且我有我的函数声明(如图所示),对于我的 add_card_to_hand 函数,我不知道该怎么做。我有 2 个参数,一手牌是我通过引用传递的
我正在尝试在 Jack 中设置回调函数。这通常非常简单,使用函数“jack_set_process_callback”(在设置“process”回调的情况下)。 API中的定义是这样的: int ja
我目前无法将 Jack 集成到我的 QUnit 中。除了不知道从哪里开始,我也对如何实际使用它感到困惑 (Jack)。网络上没有很多示例,所以我想知道是否有人有使用 Jack 模拟 AJAX 调用/通
Android Studio 2.2 Gradle Android 工具 2.2.0 Gradle Wrapper 2.14.1-all 我正在使用 apt 插件编译 ButterKnife(版本 8
我需要像这样的兔子聚类的建议,任何人都可以提供引用。 有服务器 1 和 2,那里有大耳兔服务器 1 和 2。每个 jack 兔服务器创建一个 jack 兔文件夹。 如果server1访问jack ra
我在黑 jack 游戏中需要帮助。我在数组中有一副牌,每次我取出一张牌并处理它时,数组都会被重新分配为小于大小的一个。所以我有这个循环,向每个第 n 个玩家发两张牌 deck=crea
我在 HP Pavilion dm1 4200sg 上网本上运行 Ubuntu 12.04 工作室。这几乎是一个全新的安装。我尝试通过运行 来启动 jackd 服务器 jackd -R -d alsa
我是一名优秀的程序员,十分优秀!