第一篇:坦克世界地图战术分析
战役地图高阶指南!坦克世界地图攻略
第1页:海岸争霸
【地图标示地区战术要领】
如图所示,红方主流开局是以少量精锐重坦和TD(加起来3个比较合适)在E点贴山布防,狙击对手,主力中坦和重坦沿A方向进攻,控制住地图中央,分出一个小组(两辆)去C点控制山下视野,另外可以考虑分出一组坦克沿海岸发动侧翼牵制。蓝方主流是在F区域布置少量TD,主力沿B方向进攻,适当争夺C点,但是精力应该放在狙击D点红方主力上。如开局侦察到对方主力爬山,可考虑全军由左侧小路发起突击,如采用这套方案,切忌迟疑,全速推进。
这个图的打法非常简单,抢山!高速有效的抢下山头,居高临下,胜利自然
手到擒来。很多人喜欢结对冲下路,但是却有一个极其致命的毛病,喜欢窝在“死亡区域”,由于山下道路的两侧,各有一个山体做遮挡,只需两到三个高级的重坦或者TD在此防守,就能阻挡住大量敌军。绝大多数人,冲击到死亡区域这里之后,就不再前进,而是开始原地攻击,磨蹭半天。一旦山丢了,窝在死亡区域里的人,就是山坡上敌方坦克最好的靶子。对方可以居高临下,肆无忌惮的打击你整个车身,而由于受到火炮仰角的限制,死亡区域里的坦克却无法有效还击,最后被活活蹂躏到死!
【战术总结】
开局双方都偏左路。地势狭窄。火炮横行。右路远。需长途奔袭。迂回起来收效较小。中路山地,混战中可蚕食敌人。是关键的地方。
第2页:湖边的角逐
【地图标示地区战术要领】
这幅地图的主要战场,是地图中央的高地B、B1区域。战斗中,双方通过Ⅰ,Ⅱ基地与B区之间的山路到达高地的顶端。由于双方基地到高地顶端的距离相等,所以发生在B区的战斗大多是重坦相持,对射。赢得B区战斗的胜利就可以利用地势威胁对方的基地,居高临下给对方以致命一击。当然处于相持阶段时,由于移动速度缓慢,移动轨迹简单而成为对方自行火炮的靶子。B1是B区的一个衍生区域,在B1区域可以监视到双方的基地及C区的情况,视野广阔,射程较远的坦克及自行反坦克炮可以在这个区域居高临下射击对方的目标,同时还可以利用这一区域的突出的山体作为掩护,防止对方自行火炮的火力打击。
A区和A1区是发起发起侧翼攻击的绝佳战场。战斗开始后,从Ⅱ对基地出发的战车在快速抢占A区后,可以对上尚处于爬坡过程中的Ⅰ队坦克形成威胁。与A区不同,A1区域发起的进攻则对Ⅰ队的坦克有利,从Ⅰ队基地出发,沿着A区的悬崖向Ⅱ队方向进发,很快可以形成对Ⅱ队基地的威胁,特别是Ⅱ队中因为射程较近而不得不前出的自行火炮会成为Ⅰ队坦克的猎物。当然在A1区域行进,松软的河滩会削弱中型坦克机动性的优势,当与对方重型坦克遭遇时无法以灵活多变的机动来赢得胜利。
C区便于发起迂回攻击和利用Ⅰ,Ⅱ基地通往C区道路的村庄发起伏击。从路程上来说,C区对于Ⅰ队比较有利。另外C区由于房屋,树木众多,速度较快的坦克可以利用这些作为掩护,快速行进到对方基地附近对B区鏖战的对方坦克进行包抄或直接占领双方基地。C区的面积宽广,便于机动,如果选择在这一侧
进行防守的话,必须投入更多的坦克,但这势必会影响到往B区的兵力分配。一种较为不错的办法是快速解决B区的战斗,占领B1区域,利用居高临下的地势优势来支援C区作战的己方坦克。
此外在Ⅰ、Ⅱ基地附近的D、E区域,可以作为自行反坦克炮及射程较近的自行火炮的防守区域。
【战术总结】
无论抢山,成功与否,这个战术的主旨思想就是稳中求胜,兼顾进攻与防守,互相照应衔接配合,因为火炮的攻击以及威慑力那是相当巨大,因此必须要在火炮能起到作用的前提下,并且保证火炮安全的前提下进行进攻与布防。这种策略兼顾两翼的防守与进攻。当然右翼的进攻主要是偷袭,打黑枪,因为选择了T30和潘兴的组合。
有个弊端就是兵力分散,如果敌军集团冲一路,第一时间很难守住,这时就要考验指挥的临场应变能力。既然是个团队,每一辆车在这个团队中都有他的作用,我比较倾向的是协同作战,虽然兵力分散,但是可以互相照应,这就不是真正意义上的兵力分散,进攻则左右中同时进攻,防守则来回照应一起防守。哪个地方缺人要立马有人顶替上去。
对火炮的要求就是,前期优先打击敌军抢山部队,中期,优先打击A4位置潜在的TD或者被照亮的TD,后前优先打击敌军火炮。当然战场瞬息万变,一要靠指挥的临场应变,也要靠队员的个人意识与对地图的理解。
第3页:卡累利阿
【战术思路】
这张地图山谷繁多。战略侧重点在右路,经常发生双方主力火拼事件,一碰面必有一方头破血流人仰马翻。右路火拼正酣时左路多发生迂回战,多利用山坡岩石狙击和躲避。确认敌军主攻方向,右翼重型阻击敌军进攻。当敌军大部队在左翼时,则相反,右翼变成主攻方向,左翼防守。最后形成两翼合为的局面。以防待攻、以逸待劳,通过了解敌人兵力部署由战役第二阶段转守为攻。利用攻击节奏的转换寻求缺口撕开对方防御。
【战术总结】
在卡累利阿场景中,共同三条路线可使敌我双方遭遇。狭路相逢勇者胜,穿
过猛烈炮火和坦克残骸达到对方基地,谁就是胜利者!在这幅地图上作战,火力的支持虽必不可少,但如何利用地形和各类战车的特点指挥作战的重要性同样不可小觑。巧用沼泽地带和北方的灌木林隐蔽战车,并在恰当的时机给予敌方淬不及防的致命一击,才是该场景的精髓所在。
第4页:拉斯维利
【地图标示地区战术要领】
这个地图左侧的峡谷,红方有防守和攻击优势,蓝方则处于劣势。红方有2个火力点(地图上红色1号圈),同时炮火可以覆盖峡谷中间位置的高坡,蓝方如果从峡谷强攻,刚爬上山坡就可以遭遇对方所有力量的攻击,要强攻过去很难。同时蓝方的峡谷出口,因为有一个岩石的遮挡,导致自行火炮的射界不够开阔,同时蓝方的峡谷出口没有多少掩体。
地图中间的通道可以说是一条死亡之路。道路的两头,红蓝双方都可以进行伏击,同时红色2号圈和蓝色1号圈的位置,都是TD和自行火炮绝佳的伏击阵地,从这几个位置,炮火可以完全覆盖整个道路,几乎没有死角!对于双方而言,中间道路只适合中后期对方力量被削弱的情况下强行突破,不适于早期突击。
【战术总结】
这个地图真正的争夺焦点和突破点,是地图右侧的交战区域,这里房屋密布,自行火炮几乎无法覆盖到。只能依靠坦克自己的力量突破。一旦突破之后,前往基地的道路上,对方可供伏击和埋伏的地点都有限,双方交火距离也较近,很容易就可以攻进对方基地。
第5页:马利诺夫卡
【地图标示地区战术要领】
这幅地图被玩家评为最沉闷的一张地图,一望无际的旷野上,冒险冲锋的坦克显得格外突出,将招致对方坦克的集火射击,生存几率极低。然而事实上,这幅地图是最需要玩家进行团队配合的。
地图左下角的A1区域,空旷,鲜有遮蔽物,在战斗开始的初期,不适合双方展开进攻,只能相持。A2区的低地位置极佳,由于地势较低,所以在A1区域相持的坦克是看不到A2区域的情况。利用A2区域快速突进,直插对方的基地,侦察对方的布置,不过这种战术需要选择时机,因为势单力薄的冒然突进,必死无疑。
A3区域是一块狭长的高地,位于湖的右侧。虽然同样处于平原之上,但是沿地图右侧公路行进的坦克是无法观察到A3区域的情况。于是从A3区域进攻可以避开同样选择迂回进攻的对方坦克的侦察,而直插对方基地。此外由于A3区域的地势较高,所以还可以用来监视A2区的情况,当然这也会带来一定的威胁,成为在A1区右侧相持坦克的射击目标。
介于A2和A3区域对双方基地形成的威胁,C、D两个区域的灌木丛和树林可以作为自行反坦克炮绝佳的防守地域,同时也可以作为射击较短的自行火炮的隐蔽位置。
地图右侧的E区是本地图最长距离的迂回路线,利用树木的及建筑的掩护,可以选择从这里来绕到对方基地的后边,猎杀近战能力低下的自行火炮。同时E区中点的高地可以利用地势来监视A3与E区直接的道路,因为这一道路,是选择迂回进攻的坦克最多选择的路线。
【战术总结】
综上所述,这张地图并不是一味的蹲坑地图。2号队伍由于正面防守的劣势,所以B区域对于队伍至关重要。这张地图的基本战术就是如何抢夺B区域。当然
对于湖边的沼泽地等地方的迂回,奇袭等等也要看战场情况决定。
第6页:小镇争夺战
【地图标示地区战术要领】
这是一幅令敌我双方都感觉很困难的地图,因为在这张地图中,不是狭路相逢的遭遇战,就是在敌人火力之下的拼命机动。
A区是一条一边是悬崖一边是凸起的山间公路,两个入口分别在ⅠⅡ基地的右侧,与其他区域完全隔绝。选择这一区域发起进攻,直接威胁到双方基地的侧翼,但是由于道路狭长,无法机动,对于重型坦克和自行反坦克炮比较有利。
A1区域是通向双方基地的隘口,即便赢得了遭遇战,冲出了隘口,仍将面临来自对方基地和道路两侧的火力打击。当然当A1、A同时发起经进攻时,会形成一个足以削弱防守阵线的钳形攻势。
地图中央B区C区的修道院和小镇,作用与“地图湖边的角逐”中的中央高地类似,B区的修道院可以用来监视双方基地附近的大部分情况,掩护A1区发起的进攻。当然占领这一地区的前提是快速沿B,C区之间的道路行进,占领B区,否则就会被沿该道路进攻的敌方坦克及沿C区中央道路行进的敌方坦克发现,失去意义。
地图最左侧的D区同样是一条山间的公路,但是与A区不同的是,在D区右侧有通过两个路口相连的D1、D2、D3三块高地,从Ⅰ,Ⅱ基地触发的玩家可以从沿小路爬上D1和D3,利用地势的优势来监视来整个战场,也可以移动到D2区来发现来自C区的敌人。此外埋伏在D1、D2、D3与D区相连的路口可以用地势的优势来消灭企图从D区迂回的敌人。
【战术总结】
小镇争夺战比拼的重点是双方火力,很容易出现基地互换的情况。地图两侧都是山谷地形,因此轻坦和火炮难以发挥自身的优势。中路小镇路面狭窄,侧方路面狙击视野良好。一般只有总攻时才会出现大量坦克前行的局面。需要注意的是,攻击路线和防御路线在两线都要严格注意。
(提示:以上内容为会员自行转载或发布,不代表本站观点,其内容的真实性与准确性,请慎重判断。)
第二篇:断桥战术实例分析
断桥战术实例分析
下面笔者通过一下实例,给大家分享一下斗地主的打法,斗地主有一定的技巧和策略的,不是你想怎么打就怎么打,你的每一种决定都直接影响你最后的结局!其实很多时候只要你稍微的注意一下,稍微的仔细一点,就会发现想要赢其实并不难!下面我们看分析:
【例一】(堵塞)
Q
□22AKQQQ108
7776655443
庄家 K
2AKQJJ1010 □2AAAKKJJ
998876543下家 上家 10998654
43实战过程:
庄家以一对3开牌,扑克牌技下家放过。上家顺过一对4,庄家过一对5,上家一对J,庄家放过。上家打单张lO,庄家打K,下家打A,庄家拆2 1不准下家上手,正解。庄家上手后,继续打一对 6,上家打一对9。然后拆K打,庄家过A,下家打2,庄家打小王!胜招,上家只有忍让。庄家连打两个三连一,形成如下残局:
庄家:210
下家:KQJJ10109 98876543
上家:K王2AAK 8653
当庄家打出lO,下家过一张K,上家用大王吃住。但是牌已经堵塞,手中已经没有小对子传递给对方了,只好认输。
分析:本局牌中庄家拆2打下家的A是正解,用小王打下家的2是取胜的关键。
【例二】(堵塞)
庄家:K Q
□ □AKQJJ1010 99998776533
下家:22KKQQJ8 776555443
上家:22AAAKQL 10108866443
实战过程:
这副牌庄家炸一炸是轻而易举的事,但庄家想炸两炸,于是先打一张5,试探一下牌情。下家过一张7,上家立即拆2顶住。然后打一对4,庄家过一对7,下家一对Q止住。然后打4,上家又顶2,继续打一对6。庄家一对10,下家一对K止住。然后下家打3到8的连子,手上剩一对
5、一对2和单张J,下家担心打一对5后再用一对2收时会挨炸,手中的单J赢不了牌,故先打单张J,败着。上家用A顶住,一张单牌都不让庄家过。然后打一对8,庄家过一对J,下家出一对2报双。庄家四张9炸出。
残局如下:
K Q
庄家:口口AKQ8633
下家:55
上家:AAKQJ10103
下家报双,庄家打单张6,上家打J,庄家下Q,上家打K。庄家打A以后,又打8,上家打A不让庄家的K通过。但此时牌已堵塞,上家的一对10交不到下家的一对5手里去。只得眼睁睁地看着庄家过一张K,然后又抛一对王,一对3收尾。庄家保全了两炸。
分析:现回头来看上家的牌。假设上家手里最后留下的不是一对lO,而是一对4的话,情况就完全变了。由这个思路反推回去,如果上家开始打的是一对6,而不是一对4,残局阶段就不能形成堵塞。由此可见,小有小的作用,牌手要根据实际情况,灵活保留牌张。特别是下家,在某些时候更要有意识的留有小牌作传递。由此引出另一种战法:“反堵塞法”。
让我们重新I~I:N牌牌技文章例五来讨论防家的“反堵塞”。
Q
庄家 :□22AKQQQ108 7776655433
下家:2AKQJJ1010 998876543
上家:K
□2AAKKJJ 1099865443
分析:这手牌,庄家采用的是重点打击下家,不让下家上手,对上家则采取忍让,过得了的牌就过,过不了的牌就等。上家应该意识到,自己的牌力并不弱,庄家敢做庄,其牌力也不会差,那么,下家牌力应该不强。自己的牌力虽强,但牌型太差,没有取胜的希望。如果同伴牌力不强,但牌型好,却有机会取胜,这种机会或许要靠上家来制造!上家对自己的牌有了清楚地认识之后,在打法上就应该采取对地主力顶,对下家主动配合的方法,当庄家出一对3,下家放过了后,上家估计下家对子可能不好,于是先打较大的一对J。庄家放过,上家改打单张10,庄家打 K,下家打A,庄家拆2盖住,上家放过。庄家上手后,又打出一对5,上家一对9,庄家放过。上家拆K打单张,庄家打A,下家打2,庄家用小王吃住以后,打出两个三带一,形成残局如下: 庄家:21066
下家:KQJJ10109 98876543
上家:K
□2AAK865443
庄家打出一对6,上家一对A吃住以后,打单张8点,庄家过10,剩单张2,下家过K。上家大王止住后,打一对4,下家一对8上手后,全部打完,以胜利告终。
庄家在实施堵塞战术中,往往是在最关键的时刻出手攻击防家之间的联系,使其有劲使不上,只得望‘‘桥’’兴叹!其实造成这种结果的原因,不少是由于防守方自己一个不经意的小失误造成的。比如例五,庄家打一对3,上家顺过一对4就是一个不经意的失误,造成了以后“桥”的堵塞。若把一对4改成其他稍大
一点的对子,既起到了一定的阻击作用,同时也为以后传递给同伴创造了条件,最终将是另外一种结果扑克牌技文章。想知道更多请访问
http://
第三篇:坦克大战迭代式需求分析
坦克大战
动手写一个练习项目:
一.系统分析:
需求分析:
启动游戏后:
1.展现出一个800*600的游戏界面,游戏界面不可调整大小,游戏界面点击右上角的红叉后关闭。
2.信息统计功能,在游戏界面左上角,当前屏幕子弹数,当前敌军坦克数。
3.我方坦克,颜色为红色,形状为原型,具有一个炮筒,和坦克的移动方向保持一致。
根据键盘的方向键,坦克的移动方向分为左、左上、上、右上、右、右下、下、左下。
当按住Ctrl键的时候,能够发送炮弹,多次按键,多次发送。
坦克有血量,满血为100,每次被击中,都会掉血10,直到0后,坦克死亡,游戏结束。
4.敌军坦克
形状:原型
颜色:蓝色
移动:随机移动
血量:当被一发炮弹击中的时候,立即死亡消失。
5.碰撞
当子弹碰撞坦克时,子弹消失。
当敌军坦克碰撞到我方坦克时,敌军坦克消失。
当子弹碰撞到墙壁时,子弹消失,不可穿透墙壁。
当坦克碰撞到坦克时,不可穿越。
当坦克碰撞到四周的游戏界面时,不可走出游戏界面。
二.系统设计
1.目录规范:
src/com/neusoft 下存放实体类。
涉及的类有:
TankClient:游戏的主类,其中包含了坦克,子弹,墙壁 Tank:坦克类 Missile:炮弹类
2.命名规范:
类名:首字母大写,驼峰标识。表示动作,要采用动词。方法名:首字母小写,驼峰标识。静态变量:全部大写
以上,命名简单含义明确,要做到见名知意。
3.工具及其环境
采用MyEclipse6.5进行开发,JDK1.6,windows2003操作系统。
三.开发计划
1.采用迭代式开发
v1.完成游戏界面开发,添加响应事件,能够关闭窗口。完成 完成 v2.我方坦克开发,展现、移动。完成
v3.炮弹开发,一枚炮弹从我方坦克发出,向屏幕下方飞去。完成 v4.按键发送炮弹,当按住ctrl键的时候,炮弹才会发出去。完成 v5.炮筒开发,随着坦克的移动方向不同,炮筒的方向不同。完成
v6.基数统计,在主屏幕的左上角统计当前游戏屏幕内的炮弹数。完成
敌军坦克开发,敌军坦克随机移动,能够发送炮弹。添加十辆坦克到游戏界面。v7.碰撞开发,子弹碰到敌军坦克时,坦克爆炸,消失,子弹消失。
v8.墙壁开发,子弹遇到墙壁,消失,不可穿透,坦克遇到墙壁停止,调转方向。v9.游戏细节限制,坦克之间不可穿越。我方坦克血条。游戏结束时候提示。
版本:
MyProject_001_TankWar版本:完成v1、v2、v3、v4、v5功能。MyProject_002_TankWar版本: 1.修改子弹画图方法,由原来的Tank类中移动到TankClient类中,降低耦合度。
2.解决“java.util.ConcurrentModificationException”bug,使用Iterator迭代器对子弹的容器进行迭代,并调用Iterator自身的remove方法,取代容器自身的方法。3.满足v6、v7 MyProject_003_TankWar版本:
添加十辆坦克到游戏界面。敌军坦克随机移动,能够发送炮弹。解决敌军炮弹自残的问题。解决边界问题,坦克无法走出游戏边界。MyProject_004_TankWar版本:
1.使我方坦克可以被攻击,被攻击后掉血,每次掉 十分之一,直到死亡。2.增加血条,初始状态满血,每被攻击一次,就会掉十分之一的血。MyProject_004_TankWar版本:
计划完成,一键重新开始游戏。游戏结束提示。坦克大招,随机血包。
项目笔记:
虽然工作了几年,没有仔细学过JAVASE,所以总是感觉自己基础薄弱,其中的原因有自身的因素,也有外界因素,在大公司没办法,可能一个方向就够你干很多年,机会少。这是我第一个认认真真自己写的项目。
得到的收获:
1.面向对象思想,分析问题域,定义对象、方法。
2.开发的阶段性,之前我的做法一般都是瀑布式,说实在的却是如书上所说郁闷,干的满头大汗,都三而竭了,还没看到成绩,难免垂头丧气,影响士气。感觉到了原型法的好处,写项目分版本,快速建立原型,在此基础上逐渐丰富,很好的开发方式,值得使用。3.了解到了持有对方引用,这种模式,很好,降低了耦合,增强了内聚。
心中迷惑:
1.低耦合、高内聚,这个概念还是模糊,不知道合适的力度,类与类之间,耦合度多低算低呢?除了持有对方引用,还有其他的办法降低耦合度么?
2.总是感觉面向对象过程中,对象的确定和方法的确定很灵活、可以说不同的人有不同的看法,那么什么样的设计才是完美,最优的方案呢?
第四篇:坦克大战大报告
大作业题目:坦克大战程序
一、需求分析
功能需求
坦克大战其中包括对主战坦克的编写、坦克的初始位置的编写、坦克的移动方向的编写、坦克的速度的编写、坦克的子弹速度的编写、敌军的子弹速度的编写、设置游戏难度的编写、子弹的编写、敌军坦克的编写、构造函数的编写,初始化敌军坦克的位置和状态的编写、键盘控制坦克的移动的编写、发弹的编写、判断是否被击中的编写、判断是否击中敌军的编写等。通过上下左右键进行对坦克的移动,通过F键发射子弹,其它坦克可以随机移动。构造主窗口中所需要的类,并将坦克加到窗口中,实现坦克的四个方向的移动并创建炮弹类,并让屏幕中的坦克能发射炮弹,让坦克可以朝对方信息统计功能,在游戏界面左上角,显示当前屏幕子弹数。.(1)、我方坦克,形状为一辆坦克图片,和坦克的移动方向保持一致。根据键盘的方向键,坦克的移动方向分为上、下、左、右。当按住F键的时候,能够发送炮弹,多次按键,多次发送。坦克有血量,满血为100,每次被击中,都会掉血10,直到0后,坦克死亡。(2)、敌军坦克,形状为一个黄色圆,移动为随机移动,血量为当被一发炮弹击中的时候,立即死亡消失。(3)、补血包,当我方坦克碰撞到补血包时,可补血,敌方坦克碰撞到时,穿过补血包,不会补血。补血包随机出现。.(4)、碰撞:当子弹碰撞坦克时,子弹消失。当敌军坦克碰撞到我方坦克时,相互穿过。当子弹碰撞到墙壁时,子弹消失,不可穿透墙壁。当坦克碰撞到坦克时,可穿越。当坦克碰撞到四周的游戏界面时,不可走出游戏界面。
运行需要
(1)数据精确性
在进行存取款金额时,需求数据记录定位精确,要求输入数精确金额。(2)时间特性
系统要求用户进行相应操作后系统的响应时间应尽量短,不能超过一定的时间范围本设 计暂规定为1-2s。(3)适应性
要求平台具有很好的更新能力,平台应该能够对并发事件,对于“不可靠”数据具有较强的识别处理能力。(4)可维护性
为满足系统在以后运行过程中出现问题能够修正以及系统需要升级等要求,系统应该具有可维护、可扩充、可更新的性能。(6)兼容性适合
Windows2003及以上版本的操作系统。(7)安全性
系统运行应该满足具有一定能够避免黑客、病毒等恶意攻击的安全防范措施。但相对如此简单的平台,应考虑到这些东西。
二、类的设计
1、类的设计:
坦克大战游戏主要涉及到的对象有地图、坦克、炮弹、血包。因此,整个系统的功能可以由以下几个类完成:
TankMap类: 此类主要功能是利用java中AWT包来实现坦克游戏的主窗口,以及对其他类的调用和实例化;游戏地图的初始化,重绘地图上的其他元素。
Blood类:此类主要是定义玩家坦克的生命值,有可以控制玩家坦克的加血等操作的方法。
Tank类:此类主要定义的是游戏中的坦克,可以实例化出玩家坦克,在此类中有坦克的移动,开火等方法。
EnemyTank类:此类主要定义的是游戏中的敌方坦克,可以实例化出敌方坦克,在此类中有敌方坦克的移动,开火等方法。
Shell类:此类主要定义的是游戏中的炮弹类,其中有炮弹的大小以及移动等因素。Explor类:此类定义的是坦克被攻击后的爆炸,其中有坦克击毁后爆炸的图形变化。
2、方法的设计: TankMap类的方法:
init():初始化地图以及地图上的元素
paint():绘制地图以及地图上的元素
update():重绘地图以及地图上的元素
Main():程序入口,创建TankMap对象 Tank类的方法:
Move():按照指定的方向,实现坦克的移动
checkDirection():判断用户点击的方向键,更新坦克运动方向
Fire():当用户单击F键时,发射炮弹
getRec():获取坦克当前所处位置的矩形
isLive():判断坦克的生命值是否为0
setLife(int life):设定坦克生命值
Draw():在指定的地图上绘制坦克
Tank():构造方法,初始化坦克,指定坦克所在地图 Shell类的方法:
Move():按照发射该炮弹的坦克的方向移动
getRec():获取炮弹当前所处位置的矩形
Draw():在指定地图上绘制炮弹
hitTank():打击指定坦克
Shell():构造方法,初始化炮弹 Blood类的方法:
getRec():获取血包当前所处位置的矩形
Draw():在指定地图上绘制血包
Blood():构造方法,初始化血包
三、编码实现及说明
TankMap类:
public class TankMap extends Frame {
public static final int MAPWIDTH=800;public static final int MAPHEIGHT=600;Random r=new Random();public int time=0;int s=1;//城墙数 Tank t=null;public static java.util.List
java.util.List
walls=new enemys=new public
public java.util.ArrayList
java.util.List
explors=new java.util.ArrayList
} public void paint(Graphics g){
Color c=g.getColor();g.setColor(Color.PINK);g.fillRect(0,0,MAPWIDTH,MAPHEIGHT);g.setColor(Color.RED);g.drawString(“当前炮弹数目:”+shells.size(),20,40);g.drawString(“生命值:”,20,60);g.fillRect(65,55,t.getLife(),5);g.setColor(c);t.draw(g);public int enemyCount=10;
public static void main(String[] args){
} public void drawImage(){ } public void init(){
this.setSize(MAPWIDTH,MAPHEIGHT);this.setTitle(“TankWar”);
this.setVisible(true);
this.addKeyListener(new DirectionHandler());
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent arg0){ } System.exit(0);TankMap tv=new TankMap();tv.init();});for(int i=0;i
}
if(r.nextInt(10)==9 && bloods.size()==0)
for(int i=0;i } for(int i=0;i } for(int i=0;i } for(int i=0;i } for(int i=0;i } Shell s=shells.get(i);if(s.isLive && s.isgood){ } s.draw(g);s.hitTanks(enemys);s.hitTank(t);}else if(s.isLive&&!s.isgood){ Wall w=walls.get(i);w.wallb(t);w.draw(g); Blood b=bloods.get(i);b.bloodb(t);b.draw(g);Explor e=explors.get(i);e.draw(g);EnemyTank et=enemys.get(i);et.draw(g);bloods.add(new Blood());bloods.remove(0);if(r.nextInt(30)==7 && bloods.size()==1)public void update(Graphics g){ } class PaintThread implements Runnable{ public void run(){ while(true){ repaint();time++;paint(g); } } } } try{ } Thread.sleep(100);e.printStackTrace();}catch(InterruptedException e){ class DirectionHandler extends KeyAdapter{ } public void keyPressed(KeyEvent arg0){ } t.checkDirection(arg0); Tank类: public class Tank { public static final int WIDTH=50,HEIGHT=50,xspeed=10,yspeed=10;public int x=400,y=300;public Direction direction = Direction.STOP;TankMap tm;boolean isLive = true;boolean isgood = true;int life = 100;public int zhuanxiang=1;public boolean isLive(){ } public void setLive(boolean isLive){ } public int getLife(){ } public void setLife(int life){ } public Tank(){} public Tank(TankMap t){ } public void draw(Graphics g){ if(zhuanxiang==1){ tm=t;this.life = life;return life;this.isLive=isLive;return isLive; } } ImageIcon icon=new ImageIcon(“tank_shang.gif”);Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);else if(zhuanxiang==-2){ } else if(zhuanxiang==2){ } else { } /*Color c = g.getColor();g.setColor(Color.RED);g.fillOval(x,y,WIDTH,HEIGHT);g.setColor(c);*/ move(direction);ImageIcon icon=new ImageIcon(“tank_xia.gif”);Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);ImageIcon icon=new ImageIcon(“tank_zuo.gif”);Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);ImageIcon icon=new ImageIcon(“tank_you.gif”);Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);public void move(Direction d){ if(d==Direction.STOP){ }else if(d==Direction.UP){ zhuanxiang=1;y-= yspeed;if(y<=20)y=20;}else if(d==Direction.RIGHT){ zhuanxiang=-2;x+=xspeed;if(x>=800-WIDTH)x=800-WIDTH;}else if(d==Direction.DOWN){ zhuanxiang=-1;y+=yspeed; } } } if(y>=600-HEIGHT)y=600-HEIGHT;}else if(d==Direction.LEFT){ zhuanxiang=2;x-=xspeed;if(x<=0)x=0;public void checkDirection(KeyEvent k){ } public void fire(){ tm.shells.add(new if(k.getKeyCode()==KeyEvent.VK_UP){ } if(k.getKeyCode()==KeyEvent.VK_F){ } fire();direction=Direction.UP;direction=Direction.RIGHT;direction=Direction.DOWN;direction=Direction.LEFT;}else if(k.getKeyCode()==KeyEvent.VK_RIGHT){ }else if(k.getKeyCode()==KeyEvent.VK_DOWN){ }else if(k.getKeyCode()==KeyEvent.VK_LEFT){ Shell(this.x+WIDTH/2,this.y+HEIGHT/2,this.direction,tm,Color.RED,} public Rectangle getRec(){ } return new Rectangle(this.x,this.y,this.WIDTH,this.HEIGHT);true));EnemyTank类: public class EnemyTank extends Tank { public static final int WIDTH=20,HEIGHT=20,xspeed=3,yspeed=3;public int x=400,y=300;public Direction direction = Direction.DOWN;public boolean islive = true;Color color = Color.YELLOW;TankMap tm;Random r=new Random();int randomCount = r.nextInt(10)+5; public EnemyTank(){} public EnemyTank(int wx,int wy,Color c){ } @Override public void draw(Graphics g){ } public void move(){ if(randomCount==0){ } randomCount--;if(r.nextInt(40)>36){ } if(direction==Direction.UP){ ImageIcon icon=new ImageIcon(“tank_shang.gif”);Image enemytankImage=icon.getImage();y-=yspeed;if(y<=HEIGHT)y=HEIGHT;fire();Direction dirs[]=Direction.values();direction = dirs[r.nextInt(dirs.length-1)];randomCount = r.nextInt(10)+5;Color c = g.getColor();g.setColor(color);g.fillOval(x, y, WIDTH, HEIGHT);g.setColor(c);move();x=wx;y=wy;color=c;}else if(direction==Direction.RIGHT){ ImageIcon icon=new ImageIcon(“tank_you.gif”);Image enemytankImage=icon.getImage();x+=xspeed;if(x>=800-WIDTH)x=800-WIDTH;}else if(direction==Direction.DOWN){ ImageIcon icon=new ImageIcon(“tank_xia.gif”);Image enemytankImage=icon.getImage();y+=yspeed;if(y>=600-HEIGHT)y=600-HEIGHT;}else if(direction==Direction.LEFT){ ImageIcon icon=new ImageIcon(“tank_zuo.gif”); } } } Image enemytankImage=icon.getImage();x-=xspeed;if(x<=0)x=0;@Override public void fire(){ tm.shells.add(new Shell(this.x+WIDTH/2,this.y+HEIGHT/2,this.direction,tm,Color.BLUE} public Rectangle getRec(){ } return new Rectangle(this.x,this.y,this.WIDTH,this.HEIGHT);,false));Blood类: public class Blood { public final int WIDTH=30,HEIGHT=30;public int x= new Random().nextInt(770),y= new Random().nextInt(570);TankMap tm;{ } public boolean bloodb(Tank t){ if(t.isLive&&this.getRec().intersects(t.getRec())){ if(t.getLife()<=60){ } else { System.out.println(“blood up”);t.setLife(100);System.out.println(“恭喜你,补血啦啦啦!”);t.setLife(t.getLife()+40);tm.bloods.remove(this); ImageIcon icon=new ImageIcon(“blood.JPG”);Image tankImage=icon.getImage();g.drawImage(tankImage,x,y,null);public void draw(Graphics g) } } } } tm.bloods.remove(this);return false;public Rectangle getRec(){ } return new Rectangle(this.x,this.y,this.WIDTH,this.HEIGHT);Shell类: public class Shell { public final int WIDTH=5,HEIGHT=5,xspeed=8,yspeed=8;public int x,y;Direction dir = Direction.STOP;public boolean islive=true;TankMap tm=null;Color color=Color.RED;boolean isgood=true;boolean isLive=true;//构造方法 public Shell(){} public Shell(int xd,int yd,Direction d,TankMap t){ } public Shell(int xd,int yd,Direction d,TankMap t,Color c,boolean g){ } public void draw(Graphics g){ if(islive){ Color c = g.getColor();g.setColor(color);g.fillOval(x,y,WIDTH,HEIGHT);g.setColor(c);move(dir);x=xd;y=yd;dir=d;tm=t;color=c;isgood=g;x=xd;y=yd;dir=d;tm=t;}else{ } } tm.shells.remove(this);public void move(Direction d){ } public Rectangle getRec(){ } public boolean hitTank(Tank t){ if(this.isLive&&t.isLive&&this.getRec().intersects(t.getRec())){/return new Rectangle(this.x,this.y,this.WIDTH,this.HEIGHT);if(d==Direction.UP){ } y-=yspeed;if(y<=0)islive=false;}else if(d==Direction.RIGHT){ x+=xspeed;if(x>=800)islive=false;}else if(d==Direction.DOWN){ y+=yspeed;if(y>=600)islive=false;}else if(d==Direction.LEFT){ x-=xspeed;if(x<0)islive=false;/用户坦克生命值减20 t.setLife(t.getLife()-20); } public boolean hitTanks(List } return false;if(t.getLife()<=0){ } this.islive=false;Explor e=new Explor(x-3,y-3,this.tm);tm.explors.add(e);return true;t.setLive(false);t.direction=Direction.STOP;JOptionPane.showMessageDialog(tm, “Game Over!”);System.exit(0); } } EnemyTank e;for(int i=0;i } return false;e = enemyTanks.get(i);if(this.getRec().intersects(e.getRec())){ } System.out.println(“hittanks”);e.setLive(false);tm.enemys.remove(e);this.islive=false;Explor ex=new Explor(x-3,y-3,this.tm);tm.explors.add(ex);return true;过程收获 这已经是本学期第二个小程序了,有了第一份的基础,做第二次的时候明显熟练的很多,效率比之前也提高了很多,求助老师与同学也少了许多,基本可以独自完成坦克大战这一小游戏 可能是收以前学习的知识影响吧,在刚刚学习的时候总摆脱不了思维定势的阴影,总是找不到感觉,老师讲的都会,可到自己写的时候却完全无从下手,“难道我真的一无是处,什么都做不了?”,我已经近乎崩溃了,或许是我的性格原因吧,很快我就说服自己,走出了阴霾,我想起曾听一位说过的话:我的天资愚钝,也许别人花一天就能做完的事我肯能要话十天,但我知道,我花一天去做一件事永远没有花十天时间做的好,那样也就永远赶不上别人。所以我不停的看老师的代码,不停的问助教老师,就这样不厌其烦的,有了长足的进步。 java体系知识点很多,很多东西是要记忆的,可能会学了后面忘了前面,所以,一定要有“一百万次理论”的实践,那样没有什么事是做不好的。这又将是我人生的一笔弥足珍贵的财富,我相信这绝不是一笔意外的财富。在java学习过程中出现的不足,在学习中由于为了追求学得快,导致敲的代码很少,所以很多的知识都不牢固,很容易忘记,每当提到有关的问题是只知道但很难解决;需要通过很多时间去查资料。这样让我导致出现了不自信和有了不乐意敲代码想法。所以我们学编程的要想满足别人的要求,必须先满足自己,多敲代码,让自己有实力有信心。 学生签名: 日期:2014年4月15日 陆战之王—坦克 坦克之所以有“陆战之王”的称号是由于1916年6月24日英军与法军发起了索姆河战役,在于9月3日发起的第三次进攻中,英军于9月15日第一次使用新式兵器——坦克.这是战争史上第一次使用坦克,对守备方的德国步兵产生了心理震撼,使他们放弃阵地不战自退。称为“陆战之王”。坦克从诞生至今,已走过了90年的发展历程。在短暂的时间内,坦克从无到有,从弱到强,迅猛发展,由名不见经传的水柜,到冠冕堂皇地登上陆战之王的宝座。90年的风雨历程,坦克以履带和钢甲给机械化战争打下了深深的烙印,并促进了坦克作战理论的长足发展。随着科学技术的发展,坦克获得了新的发展动力,在未来的战争中,坦克仍将大有用武之地。 张军锋,祝延军,陈哲强.坦克的诞生、演化及其发展趋势[J][1] 未来与发展, 2008,(02).世界坦克代的划分 随着科学技术的不断发展,坦克技术发生了重大变革,坦克的性能得到相应提高,各国军队装备的坦克也不断更新换代。坦克从1915年问世以来,究竟它有多少代了,至今坦克专家们还没有仔细地划分。但是坦克的发展大体上可分为两个大的发展阶段:从第一次世界大战到第二次世界大战时期,是坦克初露锋芒、走向成熟到称雄战场的阶段;第二次世界大战后以来,是坦克的飞跃发展阶段。20世纪60年代以前发展的坦克,按战斗全重、火炮口径分为重、中、轻型坦克,60年代以来发展的坦克,按用途分为主战坦克和特种坦克。 [3] 金中.世界坦克“代”的划分[J].国外坦克, 2005,(01).通用性使各国不会放松对坦克技术的研究 各国之所以如此关注,原因在于坦克技术具有通用性。同样的一种弹,装在坦克上就是陆基反坦克装备,装在飞机和直升机上就是空射反坦克导弹,发射平台不同、毁伤原理是一样的。 而现在从世界范围来看,反坦克导弹的穿甲能力仍然是各军事强国关注的重点。冷战时期,美国非常重视如何对付苏联庞大的装甲部队,策略之一就是发展反坦克导弹,并强调由直升机装载,以便能迅速集中和转移火力。 洛·马公司的AGM-114“地狱火”就是这一策略的产物。它们虽然没有在假想的美苏大战中一试身手,但几乎参与了自越南战争以来直至伊拉克战争的所有局部战争,成为美军30多年来主要的直升机载反坦克导弹,并已逐渐垄断美军空射反导弹领域。 针对海湾战争中暴露的问题,美军对“地狱火”的导引头、自动驾驶仪、战斗部、电子引信等进行了重新设计,因此被称为“地狱火Ⅱ”,其射程由原来的8000米增至9000米,飞行速度增至马赫数1.1,激光导引头不但引进了先进的抗干扰措施,能有效避免敌方实施的主动和被动光电干扰,特别是减小了自然因素的影响,因为在海湾战争中使用的“地狱火”有时会错误地接收灰尘与水蒸气散射的激光,反而对目标反射的激光“视而不见”。 2002年下半年,为了满足伊拉克战争的需要,洛·马公司在不到一年时间内完成了对“地狱火Ⅱ”的改进,使其特别适用于对付躲在洞穴、地下工事、建筑物等封闭空间内的人员。所以直到目前为止,“地狱火Ⅱ”(包括其改进型)的市场占有率仍保持世界第一的位置。坦克仍然在世界装备版图中占有重要地位 进入21世纪之后,反对恐怖主义行动成了世界的主流。根据国际政治、军事的变化,发达国家正在开发和研制适合未来作战形式的先进坦克,许多发展中国家正在大力改进和提升现有坦克的作战性能。世界坦克装备的版图有了新的动向。 目前欧洲(含北约国家及美国和加拿大)是世界上装备坦克最多的地区,总数达56000余辆,占世界坦克总数的50%,其中俄罗斯位居榜首。不仅数量上领先,论质量也是欧洲的坦克明星荟萃,大腕云集。“豹”式主战坦克装备了欧洲的10个国家,“勒克莱尔”、“挑战者”、“公羊”主战坦克个个身手不凡。 中东地区历来是一个火药桶,这也使中东地区成为装备坦克密度最大的地区之一。以色列成为坦克密度最大的国家,每一万平方公里国土面积拥有1662辆坦克,而且,以色列军队中性能先进的“梅卡瓦”坦克占到1681辆,其装甲实力可见一斑。 主战坦克在现代城市战中仍有重要用武之地 集火力、防护力和机动性于一身的主战坦克,自诞生之日起就被视为现代陆军的中坚力量。冷战结束令这“陆战之王”一度被冷落,但随着伊拉克战争、加沙冲突,主战坦克在激烈的城市战中再一次显出独特优势,它在各国陆军中的地位也因此得到重新巩固。 主战坦克在城市战中的效能曾广受质疑,1995年俄军装甲部队在格罗兹尼惨败的一幕让许多人心有余悸。尽管如此,更多的实践表明,在战术合理且情报支援充分的前提下,坦克在现代城市作战中所起的作用仍难以取代。在伊拉克战场上,主战坦克坚固的装甲不仅有效减少了人员伤亡,其强大的火力也可以在第一时间为部队提供火力支援,为友军提供可靠的心理支撑。 作为不对称战争的重要表现形式,城市战对作战装备的技战术性能的要求更加苛刻。原本为大规模野战而设计的主战坦克也必须进行相应升级,以消除新的作战环境带来的不良影响。 主战坦克从诞生到现在已经发展了三代。从80年代以后,高新技术纷纷应用于主战坦克,美、德、法、英、俄罗斯等国相继推出新一代主战坦克。在这方面,美国的M1A2-TUSK、德国的“豹2”-PSO、法国的“勒克莱尔”-AZUR与以色列的“梅卡瓦”-4等都是杰出代表。虽然这些不同车型的基本性能各具特色,但其整体设计思路却有许多相通之处。考虑到传统的穿甲弹在城市战中的威力不足,这些坦克都特意增加了榴弹(爆破弹)所占的比重,以充分发挥清除障碍和杀伤敌方人员的效用。有的军工企业还特别开发了“可编程榴弹”,能确保弹丸在飞临目标正上方的瞬间引爆,从而达到最大程度的破坏效果。 除了主炮,新型城市战坦克在辅助武器的选择上也下了一番工夫。目前最受青睐的要属“顶置武器站系统”。 该设备实际上是一挺安装在炮塔顶部的遥控机枪,拥有配套的摄像机、激光测距仪和稳定装置,坦克乘员在车内即可操纵,大大保障了机枪手的安全。此外,为克服坦克主炮俯仰角度不足的缺陷,以色列人还在其“梅卡瓦”坦克上加装了一门60毫米口径的迫击炮,专门用来打击隐藏于固定工事后方的目标。 目前,人们对新型主战坦克在城市战中的表现也赞赏有加,认为出众的环境适应能力是保证其自如应对“不对称挑战”的关键,适当的升级改造物有所值。美国第四代主站坦克 为适应未来作战需要,美国准备在2015年开始生产、装备名为“未来作战系统”的全新隐身坦克。这种武器系统之所以被称为“未来作战系统”,原因是它突破了传统主战坦克设计的概念,作战时其全部重量只有15~20吨,相当于现代步战车的重量,为当代传统主战坦克战斗全重的44.4%一23.1%。这种坦克战场生存能力的提高,不是靠采用新型装甲及辅助措施,而主要是靠隐身技术、提高车辆的行驶速度、降低车体高度和采用新型高速火炮等高技术措施。虽然“未来作战系统”并不过多强调装甲防护,但是,它也将采用新型的主动与被动相结合的防御方式。其车体、炮塔的正面和侧面,将采用电磁装甲,在炮塔的周围,将装有美国国防高级研究计划局正在发展的一种主动式小型低成本拦击弹装置(s LID),能自动探测并拦击来自各个方向的反坦克导弹、炮弹等目标。“未来作战系统”采用反射雷达波能量低的复合材料和涂料,大大降低了雷达信号特征。同时,该坦克摒弃传统的柴油发动机,甚至燃气发动机,而采用混合式电源供电的全电式驱动装置或核能驱动装置,以及太阳能电源供电驱动装置。采用这些驱动装置一方面可以降低其红外特征,减少燃料 [5] 邱春彦.未来作战系统——美国第四代主战坦克[J].科学24小时, 2002,(06).[9] 劲松.防护力出色的“挑战者”[J].金属世界, 1999,(01)英国的主战坦克最具有代表性的是“挑战者”号主战坦克 1983年5月,“挑战者”主战坦克开始装备英国陆军,以取代英军60年代装备的“酋长”(有的译为“奇伏坦”)主战坦克。替换“酋长”坦克是英军梦寐以求的计划。“挑战者”坦克从1977年着手研制至成批生产,历时7年,英国人自称它是世界上防护水平最高的坦克。“挑战者”主战坦克全长11.56m,宽3.518m,高2.5m,体积庞大,战斗全重62 t,是目前世界上最重的主战坦克。99式主战坦克 99式主战坦克是中国陆军最先进的主战坦克,也是世界上最先进的主战坦克之一。作为中国第三代坦克,其强大的火力性能和综合性能为其赢得了称赞。是国产坦克固有的机动能力弱点仍然在影响着它。ZTZ99式主战坦克是我国的第三代主战坦克,是我军目前最先进的主战坦克。在“七五”计划中被列为武器研制重点项目,1989年立项为WZ123坦克开始研制。经过十年研制,于1998年小批量投入生产并参加了1999年的国庆大阅兵,所以曾被外界误称为98式坦克。99式主战坦克的底盘借鉴了前苏联T-72主战坦克底盘,战斗全重超过50吨,火炮向前时车全长约10米,宽约3.5米,高约2.4米。与以往的国产坦克相比,99式主战坦克的几何尺寸增大许多,为容纳125毫米火炮、大功率发动机、先进火控系统等提供了条件。99式坦克的车重超过50吨,加上大量应用复合装甲,防护水平比起80系列坦克有了质的飞跃,达到西方第三代主战坦克的水平。99式主战坦克采用了传统的坦克布局,从前往后舱室依次是驾驶舱、战斗舱和动力舱。99式的驾驶员位于车体前部正中,车长和炮长位于战斗舱,炮长在左,车长在右。动力传动舱在后,和战斗舱用装甲甲板隔开。无论是在火力性能还是在防护性能上都有着不可比拟的优越性。程志红;;主战坦克的发展前景[J];现代兵器;1988年08期 坦克的作战使命在于突破敌人的防线,打开纵深,就是攻坚,所以正面装甲最重要,其它部位都是次要的,更何况现在可以在侧面披挂附加装甲,从而弥补装 甲厚度不足的缺点。 作战使命的不同也使坦克并不能适应所有的环境。比如城市作战时,苏式坦克的转轮式装弹机就很危险,因为再次装弹需要炮塔转到特定位置(一般是正前方),此时就有可能把炮塔的侧后展现给敌人,从而摧毁坦克(单兵反坦克火力)。此时装甲并不是不是用来防御坦克的攻击,而是用来防御步兵反坦克火力的,而步兵在城市战中往往对坦克正面毫无办法,此时坦克炮指向侧面非重要。因此我认为城市作战需要的应是类似枚卡瓦4型的注重防御,并且使用尾仓式装弹机的坦克。 但是,不可否认苏式坦克的转轮式装弹机的优点,便于研制, 成本低廉,适合大规模生产,符合大纵深理论的要求,因此我国应大量装备的是这类坦克。但是这不代表我们不需要尾仓式装弹机的坦克。这类坦克主要是用于城市战,并且,装甲为重点,此时火控最重要,装甲次之,火力最次。巷战就是小地方,这种距离只要是主战坦克就肯定能互相摧毁。此时坦克的任务是掩护步兵夺取城市要点。所以我认为未来的坦克在生产上应是单一底盘,不同炮塔,多种模块化的复合装甲。 下面谈一下坦克的部署。由于现在的主战坦克实在太重,我国目前仍然没有能力用飞机进行快速战略部署,所以我认为我国应该研制一种主战坦克的简化版,%90以上的零部件能够同主战坦克互换,净重应小于45吨,以40吨为宜,其装甲应以复合式附加装甲为主,可以在战区添加。火控和火力要重点考虑,自动装弹机可以取消,从而减轻重量。此种坦克的目的是快速的战略部署,国内不需要大量装备,只需达到一定的基数就行。用来应对突发的中小规模的局部冲突。就目前来看,我国需要改进99坦克,并且研制尾仓装弹机的炮塔,在必要时换装,尤其是模块化的复合装甲。至于火力,我不发表评论,因为国内外对我国99坦克的火力认识差异很大(国外认为我国125毫米的主炮不如55倍口径长身管的120毫米主炮,而我国专家认为已经超过了120毫米主炮),实在很难判断。未来的坦克应该是火力强劲,火控最优,持续射击能力强,中等防护,中等速度,中等最大行程,大功率发动机,通用底盘,模块化附加装甲,并且通过换装不同炮塔和附加装甲来适应不同作战环境的生产简单,能大量装备,又能通过添加或改进某些设备从而大幅度提高性能的坦克。也就是说简装版加点东西就是精装版,精装版拆掉点东西就是简装版,并且这种拆装应该是能在野外使用简单设备就能轻松完成的。这种坦克才是我们国家真正需要的。 至于信息化,我不想多发表意见,数据链、信息共享、通信畅通、这些是21世纪坦克的基本要求,是信息化战争的基本要求,就像二战坦克装无线电一样,这些都做不到还能算是21世纪的主战坦克吗? 我们国家军队数量非常庞大,精装版不适合大量装备,但是又不能不装备,所以从国家战略和战争需要来看,如果是局部战争,我们只需在简装版上添加相应设备就能大幅提高战斗力,从而减少我军伤亡。在全面战争中又能大量生产简装版,使作战成本下降,减少我们付出的代价。 总之,城市作战绝非装甲兵的天然禁区,现代军工技术的发展,使得主战坦克在各种威胁面前越发强大。随着其自身作战效能的不断扩展,传统的“陆战之王”今后仍将不断创造出新的辉煌。第五篇:坦克论文12