利用Greenfoot制作简单的小游戏——记忆翻牌游戏(三)

本文是关于使用Greenfoot制作记忆翻牌游戏的第三部分,主要介绍如何实现翻牌后,相同点数的牌从牌桌上移除的功能。通过遍历扑克牌集合,检查并对比翻牌的点数,当找到匹配的牌时,将其从牌桌上和集合中移除。详细代码和实现步骤在文中进行了说明。
摘要由CSDN通过智能技术生成

前两篇的文章
记忆翻牌游戏(一)
记忆翻牌游戏(二)


接上回,对于上篇中的翻牌效果,虽然实现了鼠标点击翻牌,但是可以发现,已经翻开的扑克牌,依然被放置在牌桌上,没有被移除。
此篇就来实现移除效果。

先来看看最终效果。

在这里插入图片描述
上篇我们已经可以通过鼠标点击翻牌,要想实现移除效果,则需要对扑克牌进行配对检查。
基本思路如下:

  • 遍历扑克牌集合中的每一张扑克牌,如果牌是第一张被翻开的,记录下此时牌的点数,若是第二张被翻开的,也记录下牌的点数;
  • 将第一张牌的点数与第二张牌的点数进行比较,若点数相同,则移除这两张牌,若不同,则将两张牌恢复为初始状态(即背面朝上)。

在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)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值