前两篇的文章
记忆翻牌游戏(一)
记忆翻牌游戏(二)
接上回,对于上篇中的翻牌效果,虽然实现了鼠标点击翻牌,但是可以发现,已经翻开的扑克牌,依然被放置在牌桌上,没有被移除。
此篇就来实现移除效果。
先来看看最终效果。
上篇我们已经可以通过鼠标点击翻牌,要想实现移除效果,则需要对扑克牌进行配对检查。
基本思路如下:
- 遍历扑克牌集合中的每一张扑克牌,如果牌是第一张被翻开的,记录下此时牌的点数,若是第二张被翻开的,也记录下牌的点数;
- 将第一张牌的点数与第二张牌的点数进行比较,若点数相同,则移除这两张牌,若不同,则将两张牌恢复为初始状态(即背面朝上)。
在Table类的act()方法中添加以下配对检查的代码
- 首先定义所需要的变量
Card card1 = null, card2 = null; //用来保存两张牌的对象
int count = 0; //表示牌桌上被翻开的是第几张牌
int card1Value = 0,card2Vlaue = 0;//记录两张牌的点数
- 接下来循环遍历扑克牌集合
整体框架
for (int i=0; i< cards.size(); i++) {
//用for循环遍历集合cards中的所有牌
if (cards.get(i).getFaceup() == true) {
//如果遍历到的这张牌是翻开的
count++; //用count将牌桌上翻开的牌数累加
if (count == 1) {
//如果是第一张翻开的牌
}
if (count == 2) {
//如果是第二张翻开的牌
}
}
}
通过count的值来确定当前被翻开的牌是第几张,为1则表示为第一张,只需保存其点数。
if (count == 1) {
//如果是第一张翻开的牌
card1 = cards.get(i)