- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一款纸牌游戏(特别是为那些知道这是什么的人设计的牌组构建游戏!),在整个游戏过程中,玩家将“购买”牌以添加到他们的牌组中,并且每张牌都有一个关联的点值用它。我有一个 JTextField,每次将卡添加到玩家牌库时我都想更新它,但我不太确定如何去做。我尝试添加这个:
int deckScore = 0;
for (Card d : player_1_deck)
{
deckScore += d.getValue();
}
deckScoreTextBox.setText(Integer.toString(deckScore));
但我不太确定它会起作用(提示:它没有)。然而,如果我将它放在每个卡槽的 mouseClickEvent 下,它确实可以工作。这样做的问题是,其他玩家将能够将牌添加到你的牌组中并拿走牌,这不会立即更新。我的 google-foo 让我认为我需要使用某种监听器,但我仍然是一个菜鸟,不太确定它是如何工作的,并且在理解教程和指南时遇到困难。如果我是正确的并且实际上需要一个听众,那么类似的东西如何工作?如果没有,我还有什么其他选择?
我不确定需要什么 SSCCE,因为这是一个比我的应用程序更广泛的问题,但您可以从上面的代码片段中看到,我的文本框名为 DeckScoreTextBox,并且我使用 DeckScore 作为我的变量。
最佳答案
嗯,这就是 encapsulation 的地方 进去。
假设您的牌组位于数组列表中:
ArrayList<Card> deck = new ArrayList<>();
现在,当您向套牌中添加或删除牌时,您可能只需调用列表的add
和remove
函数即可。
有一个更好的想法:创建两个函数 addCard
和 removeCard
,这些将是操作牌组中的卡片的唯一方法(以及shuffle
等),并且仅在影响牌数的函数中解决牌组值的重新计算问题。
您还可能想要创建一个单独的类 Deck
并将字段 deck
设为私有(private),这样您就可以 100% 保证每个人(= 如果您单独编程的话)只使用安全函数addCard
,...并且不直接调用列表的函数。
它看起来如何:
class Deck {
private ArrayList<Card> deck = new ArrayList<>();
//only this class can see and work with this field
...
//everyone can see and call this method
public void addCard(Card newCard) {
deck.add(newCard);
gui.updateDeckValue(); //or something like that
}
}
关于java - 制作纸牌游戏,每次将纸牌添加到玩家牌库时都需要 JTextField 进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20768138/
我正在尝试模拟“发现它!”的套牌用 Python 制作的卡片。对于那些不知道什么是“Spot it!”的人is- 这是一种流行的纸牌游戏,一副牌有 55 张牌,每张牌上有 8 个随机符号(例如球、波浪
我目前正在尝试解决与其他人编写的程序相关的问题,该程序使用 Jackcess 版本 1.1.8 将信息写入 Access 数据库。在向给定 Access 表添加 400 万行的运行中,出现以下异常:
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我是一名优秀的程序员,十分优秀!