user-interface - 记忆游戏 - 如何一次只能选择两张牌
问题描述
我已经在 Netbeans 上创建了一个记忆游戏 GUI,到目前为止,它运行良好。但是,我有两个问题:
- 它允许用户一次点击两张以上的牌,这基本上推翻了整个游戏的要点。
- 一旦两个项目匹配并且两者都显示“完成”图像,它们仍然可以再次单击。
Play 按钮“初始化”游戏:
for (int i = 0; i <= 15; i++) {
change[i] = 1;
}
String temp;
for (int x = 0; x <= 7; x++) {
for (int y = 1; y <= 2; y++) {
temp = Integer.toString(x);
set.add(temp);
}
}
for (int x = 0; x <= 15; x++) {
double index = Math.floor(Math.random() * (16 - x));
int index1 = (int) index;
cards.add(set.get(index1));
set.remove(set.get(index1));
}
16 张卡片中的每一张都有单独的代码,为它们分配一个随机排序的图像。在点击两张卡片后,用户按下猜测按钮。如果卡片匹配,则显示“完成”图像,如果不匹配,则返回。例如,这是 Guess 按钮代码(适用于所有 16 张卡片):
count = 0;
if (c1 == c2) {
cardsLeft = cardsLeft - 2;
for (int y = 1; y <= 2; y++) {
if (change[0] == 0) {
card1Button.setIcon(done);
change[0] = 2;
}
}
} else {
for (int y = 1; y <= 2; y++) {
if (change[0] == 0) {
card1Button.setIcon(back);
change[0] = 1;
}
}
}
选择两个已经匹配的任何一对时,我该怎么做才能禁用所有其他按钮?
解决方案
推荐阅读
- animation - Xamarin.Forms ScrollView - 随着它的扩展动画它的增长
- spring-boot - 错误 - 兔子模板发布确认 - 回复代码 = 403,回复文本 = ACCESS_REFUSED - 无法发布到内部交换
- google-chrome-extension - 内容脚本大量计算导致性能不佳(chrome扩展)
- java - 如何在 Switch case 中分配价格值?
- google-cloud-composer - 拒绝访问 Airflow 网络服务器
- fortran - 现代 Fortran:从后代调用祖先过程
- javascript - 为什么使用匿名函数作为全局对象?
- c - 指向作为二维数组的指针的指针
- azure - 为什么 Azure 存储 API 权限未在 Azure 门户中列出?
- segmentation-fault - 使用 scanf 的分段错误