java - 我正在努力在我的 Uno 游戏中实现distributeCards 方法,我可以就如何处理该方法提出一些建议吗?
问题描述
该方法应该遍历 playerHand 数组并使用 playerHand[i][j] = new UnoCard 绘制一张新的随机牌,直到每个玩家的手牌大小为 START_HAND。在移动到下一个玩家之前,我还应该能够填满每个玩家的手牌。
我已经尝试按照下面的方式进行设置,但我不确定我应该去哪里成功获得我的结果。任何帮助将不胜感激!
public static int nPlayers;
public static int currentPlayer;
public static UnoCard playerHand[][];
public static UnoCard currentCard;
public static final int CARDS_IN_DECK = 112;
public static final int START_HAND = 7;
public static boolean direction = true; // true for regular direction, false for reverse direction
public static int winner;
public Uno(int nPlayers) {
this.playerHand = new UnoCard[nPlayers][CARDS_IN_DECK];
this.currentPlayer = 0;
this.nPlayers = nPlayers;
}
public static void distributeCards() {
for (int i = 0; i < playerHand.length; i++) {
playerHand[][] = new UnoCard();
}
}
解决方案
我不完全确定我理解您遇到的问题,但我会尽力提供帮助。
看起来您没有正确填充数组。由于您有一个二维数组,因此您需要一个嵌套循环来执行此操作:
for (int i = 0; i < playerHand.length; i++) {
for (int j = 0; j < playerHand[i].length; j++){
playerHand[i][j] = new UnoCard();
}
}
请注意[i][j]
分配中的 - 我们将卡片分配给 2D 数组中的特定单元格。
推荐阅读
- mysql - 为什么简单地选择一个select语法就可以保存null?
- mockito - Mockito(如何正确模拟嵌套对象)
- flutter - 如何使用 SizeChangedLayoutNotifier?
- go - 避免Golang界面中的getter的解决方案
- php - 从 mysql 5.7.28 中检索阿拉伯语脚本
- python - 获取元组列表中的特定元素
- c++ - 如何在 Visual Studio Code 的 CMake/Build 输出控制台中解决奇怪的字符
- c# - Razor,.Net 核心:可选字段被创建为具有空值的对象
- docker - 章鱼工作环境中无法识别术语 docker
- python - setuptools 包或 setup.py 是否用于安装以外的任何其他用途?喜欢在包中查找要导入的模块?