Objective-C下的简单版三国杀
任务
-
安装配置Mac OS和Xcode
-
熟悉Mac OS按键操作
-
熟悉Xcode项目结构,编译运行第一个Xcode项目,项目创建流程详见tutorial
-
选取并设计N(N>10)个三国英雄
实现场景输出(log形式即可):随机选择两名英雄,挑战M(M<=10)个回合,其中每个回合各英雄可发动不同技能,从而导致不同的结果发生(英雄各属性变化及每个回合的输赢)。
要求:
- 输出随机选择的英雄及其关键属性,输出单挑中每回合的过程、结果,以及最终胜负结果
- 需要用到多态
- 输出程序设计和运行过程中,相关设计体现的oo特性(数据隐秘性、封装性、继承、多态)
验收要点:
- 输出随机选择的英雄及其关键属性,输出单挑中每回合的过程、结果,以及最终胜负结果
- 类的设计与封装
- 类与类之间的继承关系与多态的体现
*********************** 代码简析 *************************
代码详情请参考我的gitee:
类
Person:定义了人物的基本属性,以及一些英雄之间通用的方法,例如普通攻击,展示状态等等
模版
Hero:每个英雄都必须实现技能1、大招以及使用这些技能减去相应的能量的方法
英雄类
以张飞为模版,每个英雄都有不同的技能以及机制
定义
实现细节
main函数,定义
ChooseHero选择出战的两方英雄,使用了随机数arc4random
HeroFighting 英雄所有回合的战斗,最多进行十个回合(由于属性的约束,一般不会超过五个回合)
OneRound 单次的战斗,如果有一方血量降为0以下,则结束战斗!回合结束完毕,加上能量后则展示双方状态
一方英雄攻击一方,按概率使用普通攻击、技能1或者大招(如果能量够,则使用,不然重新选择招数直至伤害不为-1)。然后展示伤害。
某次运行结果
2020-10-03 23:29:38.582665+0800 First-HomeWork[13494:1572354] 孙权 VS 刘备
2020-10-03 23:29:38.582862+0800 First-HomeWork[13494:1572354] 回合1
2020-10-03 23:29:38.582897+0800 First-HomeWork[13494:1572354] 技能1:年少有为,孙权速度和攻击力都提升一
2020-10-03 23:29:38.582918+0800 First-HomeWork[13494:1572354] 刘备受到0.0滴伤害
2020-10-03 23:29:38.582931+0800 First-HomeWork[13494:1572354] 技能1:刘备使用仁德,自身血量得到加强三滴、但是速度减慢二
2020-10-03 23:29:38.582944+0800 First-HomeWork[13494:1572354] 孙权受到0.0滴伤害
2020-10-03 23:29:38.582959+0800 First-HomeWork[13494:1572354] 孙权:血量20.0滴,速度13,攻击力3.7 能量9
2020-10-03 23:29:38.582971+0800 First-HomeWork[13494:1572354] 刘备:血量21.0滴,速度2,攻击力2.2 能量9
2020-10-03 23:29:38.582984+0800 First-HomeWork[13494:1572354] 回合2
2020-10-03 23:29:38.582995+0800 First-HomeWork[13494:1572354] 孙权使出了普通攻击
2020-10-03 23:29:38.583006+0800 First-HomeWork[13494:1572354] 刘备受到3.7滴伤害
2020-10-03 23:29:38.583016+0800 First-HomeWork[13494:1572354] 技能1:刘备使用仁德,自身血量得到加强三滴、但是速度减慢二
2020-10-03 23:29:38.583122+0800 First-HomeWork[13494:1572354] 孙权受到0.0滴伤害
2020-10-03 23:29:38.583160+0800 First-HomeWork[13494:1572354] 孙权:血量20.0滴,速度13,攻击力3.7 能量10
2020-10-03 23:29:38.583174+0800 First-HomeWork[13494:1572354] 刘备:血量20.3滴,速度2,攻击力2.2 能量8
2020-10-03 23:29:38.583185+0800 First-HomeWork[13494:1572354] 回合3
2020-10-03 23:29:38.583196+0800 First-HomeWork[13494:1572354] 技能1:年少有为,孙权速度和攻击力都提升一
2020-10-03 23:29:38.583208+0800 First-HomeWork[13494:1572354] 刘备受到0.0滴伤害
2020-10-03 23:29:38.583218+0800 First-HomeWork[13494:1572354] 刘备使出了普通攻击
2020-10-03 23:29:38.583229+0800 First-HomeWork[13494:1572354] 孙权受到2.2滴伤害
2020-10-03 23:29:38.583240+0800 First-HomeWork[13494:1572354] 孙权:血量17.8滴,速度14,攻击力4.7 能量9
2020-10-03 23:29:38.583254+0800 First-HomeWork[13494:1572354] 刘备:血量20.3滴,速度2,攻击力2.2 能量9
2020-10-03 23:29:38.583723+0800 First-HomeWork[13494:1572354] 回合4
2020-10-03 23:29:38.583739+0800 First-HomeWork[13494:1572354] 技能1:年少有为,孙权速度和攻击力都提升一
2020-10-03 23:29:38.583755+0800 First-HomeWork[13494:1572354] 刘备受到0.0滴伤害
2020-10-03 23:29:38.583769+0800 First-HomeWork[13494:1572354] 终极技能:刘备三顾茅庐,瞬时将自身血量的三分之一变成一击
2020-10-03 23:29:38.583781+0800 First-HomeWork[13494:1572354] 孙权受到6.8滴伤害
2020-10-03 23:29:38.583795+0800 First-HomeWork[13494:1572354] 孙权:血量11.0滴,速度15,攻击力5.7 能量8
2020-10-03 23:29:38.583807+0800 First-HomeWork[13494:1572354] 刘备:血量20.3滴,速度2,攻击力2.2 能量6
2020-10-03 23:29:38.583818+0800 First-HomeWork[13494:1572354] 回合5
2020-10-03 23:29:38.583830+0800 First-HomeWork[13494:1572354] 终极技能:制衡术,孙权将血量的1/4、速度的1/4、攻击力之和转为一击
2020-10-03 23:29:38.583958+0800 First-HomeWork[13494:1572354] 刘备受到23.5滴伤害
2020-10-03 23:29:38.583971+0800 First-HomeWork[13494:1572354] 孙权战胜了刘备
2020-10-03 23:29:38.583984+0800 First-HomeWork[13494:1572354] 孙权:血量11.0滴,速度15,攻击力5.7 能量4
2020-10-03 23:29:38.583996+0800 First-HomeWork[13494:1572354] 刘备:血量0.0滴,速度2,攻击力2.2 能量6
Program ended with exit code: 0
感想:
本次作业的目的主要是熟悉Objective C的语法,但是思考技能也用了一点时间。主要是英雄太多了。不过写完耗费时间也不多,颇有所获!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」