在大程序开始前,先做一些小程序验证一下可能遇到的技术问题是不是都能解决,免得做了多一半才发现有些问题是根本不可能解决的;先把最基础个功能实现,不急于实现那些不重要的细枝末节,验证整体结构的可行性,细小的功能再以后的迭代中逐步添加上去,将每一步的风险都降低;架构先行,将不同功能的代码分割开来,不同的模块分别进化,减少风险。
设计:实现一款C++版的经典坦克大战游戏。
功能设计:
1)实现双人对战功能。获胜:但消灭对方所有坦克或者先炸毁对方总部。
2)战场由一个一个的格子构成,纵横为26*26格、坦克为2*2格、总部军旗2*2、子弹为2*1、石块与铁块:1*1
坦克与子弹每次移动一格、以战场左下角为坐标点原始点[x:0,y:0],横向x,纵向y。确定每个物体的坐标为[x1,x2]、[y1,y2]。
3)坦克事件:“()”表示技术实现
联机模式架构:
源码展示:
看似很复杂其实只要抓住主线就很简单了,最基础的类是Circle,代表一个圆,是碰撞基础元素,MoveCircle继承自Circle增加了速度和方向属性,MoveCircle分开两支为坦克和炮弹,坦克又分成用户可操作的坦克与电脑控制的敌军,两者的区别是在Aitank有一个Ai属性,这里用了一个策略模式,Aitank可以有不同类型的Ai(这次就只写了一种,但是支持更多)。其他的类都是辅助这根主线。
如果有想学习C/C++的同学,可来我们的C/C++技术学习QQ群:290256293,免费送整套系统的C/C++视频教程!我每晚上8点还会在群内直播讲解C/C++知识,这是一个仅供粉丝朋友们学习交流的群,欢迎大家前来学习哦~不是学习C/C++的小伙伴非诚勿扰哦下面是部分资料截图:
声明:本文内容来源于网络,如有侵权请联系删除
网友评论