用lua语言基于面向对象**实现的一款文字版三国杀,5000余行代码实现了三国杀标准版108张卡牌的效果以及标准包、风、林、火、山包中除神将和左慈外53位武将的技能效果,并通过严谨测试。输入lua main.lua即可试玩,需安装好lua,建议在ubutnu系统下运行,否则会出现中文乱码。 项目亮点: 1、lua面向对象的实现基于云风大佬的代码,但原版代码不支持在声明类时对table赋值,即可以执行classA.t = {},但无法执行classA.t[1] = 1,本项目对云风大佬的代码进行改进,使得这一操作可以完成; 2、代码封装性好,可读性强。本项目对游戏过程中经常出现的操作(比如许多武将发动技能都需要的“弃置一张牌”的操作)进行了封装,大大缩减了代码行数,也使得技能实现的代码更容易看懂; 3、进行了逻辑层和IO层的分离。本项目将接收玩家输入的IO层单独用query模块实现,不与游戏逻辑层写在一起,避免了在编写具体卡牌或技能逻辑时出现大段的读取玩家输入的代码导致整体代码冗长混乱; 4、在深入了解游戏玩法的基础上,对游戏逻辑进行了较好的拆解和划分,整体代码实现逻辑清晰,扩展性强。例如,对玩家一个回合的行动流程进行了清晰划分,每个流程都由一个对应的函数完成;将每个卡的结算逻辑分为use(使用)和respond(响应),然后根据具体武将技能的不同,编写不同的use和respond方法;被动技能基于时机触发,在一个时机内处理相关技能,就算涉及到的技能多但结算链清晰有序。