java - 如何创建放置 4 张桌子卡片的类/方法?
问题描述
我正在尝试创建一个名为 Scopa 的纸牌游戏。老实说,我不知道自己在做什么,因此目前我正在观看有关如何创建 Uno 游戏的教程视频,并尝试对其进行调整以使其适用于我的游戏。然而,我坚持创建一种方法,将 4 张牌从一副牌放在桌子上开始游戏。这些桌牌可以被玩家拿走,并且可以添加更多的牌。每张卡都有一个特定的值,玩家可以通过它来获取它们(通过匹配值,例如 7 的硬币可以获取 7 的剑)。我也很困惑如何对其进行编程,以便桌面卡可以变化。任何建议都将不胜感激,我也是 Java 新手,所以如果你能用外行的术语解释它,那就更好了。谢谢。到目前为止,这是我的 Game 类的代码:
package scopa;
import java.util.ArrayList;
import java.util.Arrays;
public class Game {
private int currentPlayer;
private String[] playerIds;
private ScopaDeck deck;
private ArrayList<ArrayList<ScopaCard>> playerHand;
private ArrayList<ScopaCard> stockpile;
private ArrayList<ScopaCard> validRank;
boolean gameDirection;
public Game(String[] pids) {
deck = new ScopaDeck();
// deck.shuffle();
stockpile = new ArrayList<ScopaCard>();
playerIds = pids;
currentPlayer = 0;
gameDirection = false;
playerHand = new ArrayList<ArrayList<ScopaCard>>();
for (int i = 0; i < pids.length; i++) {
ArrayList<ScopaCard> hand = new ArrayList<ScopaCard>(Arrays.asList(deck.drawCard(3)));
playerHand.add(hand);
}
}
public void start(Game game) {
ScopaCard card1 = deck.drawCard();
validRank = card1.getRank();
stockpile.add(card1);
ScopaCard card2 = deck.drawCard();
validRank = card2.getRank();
stockpile.add(card2);
ScopaCard card3 = deck.drawCard();
validRank = card3.getRank();
stockpile.add(card3);
ScopaCard card4 = deck.drawCard();
validRank = card4.getRank();
stockpile.add(card4);
}
public ScopaCard getTableCards() {
return new ScopaCard(validRank);
}
}
解决方案
我看不到太多,因为我不太了解您的代码中发生了什么。如果可以,请打开视频并检查说明/评论,看看代码是否粘贴在任何地方,并将其与您的代码进行比较。如果不是,请尝试重新观看视频并检查代码的每个部分是否与视频相同。
推荐阅读
- azure - Prometheus 无法通过浏览器访问
- angular - 如何从Angular中的api内容分配传递字符串?
- angular - 如何使用 Razor 页面和 Angular 一起创建 .NET 5 应用程序?
- java - 什么是字符串到 ZonedDateTime 转换错误
- javascript - 如何从 .tolocalstring() 函数运行时间?
- node.js - createConnection MongoError:身份验证失败
- unix - 可以使用sort命令根据csv文件中的多列对文件进行排序
- python - 如何从事物列表中获得最高层?
- angular - ng2-smart-table 处理 http 请求错误
- flutter - 在 Flutter_Webview 中下载文件