当前位置: 首页 > wzjs >正文

淘宝的网站架构做电商网站公司

淘宝的网站架构,做电商网站公司,烟台做网站要多少钱,简单广告设计软件补杠功能的实现 接下来,我们来实现补杠功能。补杠是指在已经碰牌的情况下,又摸到一张相同的牌,可以组成杠。 功能设计 自摸补杠: 如果玩家自摸到一张牌,且这张牌可以与已碰的牌组成杠,则可以进行自摸补杠…

补杠功能的实现

接下来,我们来实现补杠功能。补杠是指在已经碰牌的情况下,又摸到一张相同的牌,可以组成杠。

功能设计
  1. 自摸补杠

    • 如果玩家自摸到一张牌,且这张牌可以与已碰的牌组成杠,则可以进行自摸补杠。

    • 自摸补杠后,玩家需要从牌堆中再摸一张牌。

  2. 吃牌补杠

    • 如果玩家通过吃牌形成杠,则称为吃牌补杠。

    • 吃牌补杠后,玩家不需要再摸牌,直接出牌即可。

实现步骤
  1. 判断是否可以补杠

    • 检查玩家是否已经碰牌。

    • 检查新摸到的牌是否可以与已碰的牌组成杠。

  2. 执行补杠操作

    • 如果可以补杠,更新玩家的牌组。

    • 发送补杠操作的消息给所有玩家。

  3. 处理自摸和吃牌的区别

    • 自摸补杠后,玩家从牌堆中再摸一张牌。

    • 吃牌补杠后,玩家直接出牌。

代码实现
// 判断是否可以补杠
func canPung(user *User, card int) bool {for _, record := range user.Records {if record.Type == "pung" && record.Card == card {return true}}return false
}// 执行补杠操作
func pung(user *User, card int) {if canPung(user, card) {// 添加杠操作记录user.Records = append(user.Records, Record{Type: "pung", Card: card})// 发送补杠消息msg := &Message{Type: 5,Data: map[string]interface{}{"userId": user.Id,"card":   card,},}user.Room.Broadcast(msg)// 自摸补杠,再摸一张牌if user.LastDrawnCard == card {user.DrawCard()}}
}

托管功能的实现

接下来,我们来实现托管功能。托管是指在倒计时结束后,系统自动为玩家出牌。

功能设计
  1. 倒计时

    • 每个玩家在操作时都有一个倒计时。

    • 如果倒计时结束,玩家还没有操作,则触发托管。

  2. 自动出牌

    • 如果玩家可以弃牌,则自动弃牌。

    • 如果玩家有其他操作,则不做任何操作。

实现步骤
  1. 设置倒计时

    • 在玩家操作时,设置一个倒计时定时器。

    • 定时器每秒触发一次,检查倒计时是否结束。

  2. 触发托管

    • 如果倒计时结束,触发托管操作。

    • 根据玩家的牌组,选择一个合适的牌进行操作。

  3. 取消定时器

    • 如果玩家在倒计时内进行了操作,则取消定时器。

代码实现
// 设置倒计时
func startTimer(user *User, duration int) {user.Timer = time.NewTimer(time.Duration(duration) * time.Second)go func() {<-user.Timer.Cif user.NeedAutoPlay() {autoPlay(user)}}()
}// 自动出牌
func autoPlay(user *User) {if user.CanDiscard() {user.DiscardCard()}
}// 取消定时器
func cancelTimer(user *User) {if user.Timer != nil {user.Timer.Stop()user.Timer = nil}
}


文章转载自:

http://AfyIEuZx.cnfjs.cn
http://BGxj2GMv.cnfjs.cn
http://a6JJEAUv.cnfjs.cn
http://6QuP7o24.cnfjs.cn
http://8PIel7LA.cnfjs.cn
http://kYT3gLJv.cnfjs.cn
http://xnyls7c8.cnfjs.cn
http://IPb40thx.cnfjs.cn
http://ioovjTRn.cnfjs.cn
http://v64e1ihD.cnfjs.cn
http://d9W8vtUy.cnfjs.cn
http://NxkLPvmA.cnfjs.cn
http://d4Ss1K2B.cnfjs.cn
http://5oIsgqpr.cnfjs.cn
http://qKBAbX9D.cnfjs.cn
http://dSnIwYRx.cnfjs.cn
http://EdXYAH4i.cnfjs.cn
http://6wqvI2PS.cnfjs.cn
http://lsFvMBEW.cnfjs.cn
http://IijgCLsM.cnfjs.cn
http://UlWYaql4.cnfjs.cn
http://iCrd5OKa.cnfjs.cn
http://iSX97RTc.cnfjs.cn
http://X6NTVDQF.cnfjs.cn
http://SCeGKslQ.cnfjs.cn
http://F2tkEr9f.cnfjs.cn
http://QZZvKqfp.cnfjs.cn
http://SCcPvxTl.cnfjs.cn
http://4D99C1KY.cnfjs.cn
http://ljt2TErc.cnfjs.cn
http://www.dtcms.com/wzjs/604155.html

相关文章:

  • 住房和城乡建设部网站职责响应式网站免费
  • 织梦网站地图怎么做xml河北省老区建设促进会网站
  • 网站内容分享自己做的网页怎么上传到网站
  • 发布推广信息的网站大连建网站公司
  • 郑州网站建设三猫网络长春网站建设翻译
  • 公司网站代码公司logo标志设计免费
  • 代做cad平面图的网站做网站内容需要自己填的
  • 做网站的计划书网上设计兼职平台有哪些
  • 体育类网站 设计网新企业网站管理系统
  • 淘宝客商城网站建设抽奖页面设计模板
  • 加强校园网站建设北京平台网站建设哪里好
  • 做h5那个网站好网站推广优化业务
  • qq发网站链接怎么做东莞企业网站制
  • 厦门网站建设h5wordpress如何加跳转
  • 诸暨城乡与建设局网站wordpress-4.9.8
  • 广元市利州区建设局网站市场运营和市场营销的区别
  • 网站怎么做关键词在哪做服装设计资源网站
  • 网站文字列表页模板垦利网站制作
  • 引流推广网站2017免费网站空间
  • 建网站难吗?wordpress常用页面
  • 可以直接玩游戏的网站手机网站开发流程
  • 在线html网站开发wordpress设置投稿
  • 承德专业做网站的公司中文旅游网站html模板
  • 广州建设网站下载大连微网站开发
  • 微信订阅号做微网站吗wordpress首页显示字数插件
  • 做电子商务网站 语言做网站 徐州
  • 国内网站建设公司标志设计图案
  • 网站开发年度总结网站设计 下拉式菜单怎么做
  • 西安优化网站推广三九手机网官网
  • 公司营销型网站公司秦皇岛建设局网站