淮安掼蛋源码之--选牌与出牌

原文:淮安掼蛋源码之--选牌与出牌

“掼蛋”一直是人们茶余饭后经久不衰的娱乐项目之一,淮安掼蛋 偶尔带点“彩头”(数额不大的钱财输赢)以增加刺激也是正常的事。本文介绍:淮安掼蛋源码之--选牌与出牌。

<1>选牌.

选牌结束,检查要出的牌,添加到出牌数组中.

void SeatUnit::checkSelCardEnd()
{
    CardGroup::MODE mode = _pCards->getMode();
    _ayToCards->removeAllObjects();
    CCArray *array;CCObject *pObj;
    if(mode==CardGroup::MODE_SINGLE){
        array = _pCards->getArray();
        CCARRAY_FOREACH(array, pObj){
            CardUnit *one = (CardUnit*)pObj;
            one->setSelColor(false);
            one->setSelAction();
            if(!one->getIsActivate())continue;
            _ayToCards->addObject(one);
        }
    }else{
        array = _pCards->getArray();
        CCARRAY_FOREACH(array, pObj){
            CardUnit *one = (CardUnit*)pObj;
            if(!one->getIsSel())continue;
            _ayToCards->addObject(one);    //被选中的牌加入到要出的牌的牌组中
        }
        //展开
        if(_ayToCards->count()>0){
            _pCards->expandCardSel();
            _isExpand = true;
        }
        
    }
    codeSelCard();
}


<2>出牌.

选完牌后,点击clickGo进行出牌,出牌分为2步,1是发送出牌信息4006给服务器,2是收到服务器回调信息4001后,在其回调函数cfDesk中,调用runShowCards,在runShowCards中调用my_play_a_card进行出牌.也就是将手牌移除掉自己选中的牌.

void SeatUnit::my_play_a_card() //出牌的具体实现(调用时机是收到clickGo回调信息后,出牌)
{
    if(_ayToCards->count()==0)return;
    CCPoint showPoint = _pCardShow->getPosition();
    CCObject *pObj;
    CCARRAY_FOREACH(_ayToCards, pObj){
        CardUnit *one = (CardUnit*)pObj;
        CCPoint point = one->getLocForSrc()-showPoint;
        _pCards->removeCard(one);
        one->getSprite()->setPosition(point);
        _pCardShow->addCard(one);
    }
    _pCardShow->tidyCard(1);
    _ayToCards->removeAllObjects();
    _pCards->reviseCardLoc();
    itCardGroup();
}


总结:出牌就是将自己手中要出的牌从手牌数组中删除,同时挪动到出牌数组中.但是并没有进行removeChild和addChild这些操作,所以要想好,出牌的过程是怎样的,变化的是数据的交换,要把握本质.


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是一种常见的扑克牌游戏,也是一种很好的编程练习。下面是一个使用Node.js的游戏源码的简单解释。 Node.js是一个基于V8引擎的JavaScript运行时环境,可以让JavaScript代码在服务器端运行。使用Node.js可以创建一个实时网络应用,这个应用可以处理多个客户端的请求。 游戏源码使用Node.js实现了在网络上的玩法。游戏的核心逻辑是通过WebSocket来实现实时通信。WebSocket是一种在单个TCP连接上进行全双工通信的协议。 源码中使用了Express框架来构建Web应用,并使用了ws库来处理WebSocket通信。Express是一个流行的Web应用程序框架,它可以帮助开发者更轻松地构建Web应用。ws库是一个用于WebSocket通信的库,可以让开发者更简单地创建WebSocket服务器游戏源码中,服务器端负责管理游戏逻辑和处理客户端的请求,客户端通过WebSocket与服务器进行通信,并根据服务器端的指示进行游戏操作。比如,服务器会发送当前游戏的状态、当前玩家的手牌等数据给客户端,客户端可以根据这些数据进行相应的操作,比如出牌或者叫牌等。 游戏源码使用了一些设计模式,比如观察者模式和状态机模式。观察者模式用于管理游戏中的各个对象之间的关系,状态机模式则用于管理游戏的各个状态和状态转换。 总结来说,游戏源码使用了Node.js的特性来实现一个基于WebSocket的实时网络游戏。通过这个源码的学习,可以帮助开发者更好地理解Node.js和WebSocket的使用,并提高编程能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值