酒馆缺一个轻量小游戏留住等朋友的玩家。斗兽棋搬进比奇酒馆:七乘九棋盘八种棋子,鼠象互克、狮虎跳河,每日挑战酒馆掌柜三场,连胜奖励从 20000 金币起步封顶 150000。策划产出棋子、奖励、规则三张配置表,棋力分级交给程序。斗兽棋的规则简单但变化不少,鼠象互克是整套棋的灵魂:最强子有最弱的天敌,局局都有翻盘点。
八种棋子按阶级排列,两个特例单列:鼠可吃象、狮虎可跳河,特例写进棋子表而不写死在判定代码里。
local PIECES = {
{ name = "鼠", rank = 1, special = "可吃象" },
{ name = "猫", rank = 2 },
{ name = "狗", rank = 3 },
{ name = "狼", rank = 4 },
{ name = "豹", rank = 5 },
{ name = "虎", rank = 6, special = "可跳河" },
{ name = "狮", rank = 7, special = "可跳河" },
{ name = "象", rank = 8, special = "惧鼠" },
}
每日三场对局,单步 30 秒超时判负,连胜奖励三档递进,规则表同时定义棋盘尺寸与时长参数。
local REWARD = {
{ winStreak = 1, gold = 20000 },
{ winStreak = 2, gold = 60000 },
{ winStreak = 3, gold = 150000 },
}
local RULE = { secPerStep = 30, dailyGames = 3, boardW = 7, boardH = 9 }
判定逻辑验证三条:阶级吃子按大小、鼠吃象特例优先于阶级规则、象吃鼠被拒绝;超时判负与连胜计数逐场核对;奖励按连胜档位发放与表一致。上线盯连胜分布,三连胜占比超过四成说明掌柜棋力档位定低了。
鼠吃象的特例最初写在大判定之后,阶级规则先拦下了这一步,玩家拿鼠怼象永远失败,特例判定必须前置于通则。超时判负的计时从对手落子后起算,玩家切出界面计时照走,回来直接判负被投诉,切出暂停改为断线才续时。掌柜棋力只有一档,老玩家十连胜把奖励薅成了日收入,棋力分随机、贪心、搜索三档按连胜数递增。棋盘尺寸从九路改七路时,配置表的尺寸字段与判定代码里的硬编码不一致,判定全部改读配置。连胜中断后计数清零,玩家连败后拿不到保底,补了每日参与奖 5000 金币托底。对局记录回放功能在二期上线,败局复盘让棋类玩家的讨论从结果转向过程。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 付费玩家的付费点集中在商城,成长线里缺一个长期投入的钩子。成长基金让玩家在低等级时一次性买入,随等级提升…
实战应用:用在哪里 行会联赛打得不热闹,观战人数不到参赛人数的一半。联赛竞猜给观战者一张入场券:用竞猜币押注胜负,赔率随投注…
实战应用:用在哪里 七夕限时活动原计划七天,上线第二天下午整点活动面板突然关闭,奖励领了一半,玩家以为被砍了福利,两小时内工…
实战应用:用在哪里 HTTPS 证书过期一次,全服登录白屏了半个多小时,值班才发现证书没人管。证书续期机制把到期日写进系统变…
实战应用:用在哪里 从行会面板点进成员列表再点开个人名片,连按返回键直接退回了主城,中间两层界面全部跳过。界面堆栈管理用一张…
实战应用:用在哪里 限时商城的稀缺商品上架即被抢,玩家错过窗口感觉被区别对待。商城橱窗把每件限时商品的下架时间做成可视化倒计…