第一篇:红警大战超强作弊 技巧秘籍分享大汇总
【爱文库】核心用户上传
红警大战超强作弊 技巧秘籍分享大汇总
红警大战资源获取:要想富,先修路;少造资源,多干仗。
侵略是红警大战获取资源最简单有效的途径,升级金属厂和油井获得的资源非常有限,前期秒升到3级足够。
进攻玩家是首选,不论从攻守平衡还是系统智能都是鼓励进攻的,在合适的阶段多树立仇家对有以后的发展有一定帮助,如果你是长期玩家就别介意被打,每天雷达就提供那几个目标,如果目标被抢先打掉了,一天岂不是很无聊,建筑升级又慢,会让你觉得游戏枯燥,如果从发展初期就积累仇家,到了后期每天可供选择的目标就多了,(自动筛选+仇敌)总有那么十来个不在保护期当中(切忌风险与利益并存仇人多很了,你的基地也许就是24小时循环重建了)。
其次就是打电脑,电脑智商低,小兵趟了雷区基本可以无伤灭电脑,怎么打这里就不说了,网上有太多打电脑的神贴了。这里要说的就是,电脑不能随便打!尤其25级以后的电脑打一次就是几百万资源,确实很爽,但是这些都是不可再生资源,简单的说花了就没了。不在关键的时候,精良别去动这些资产。5级基地升级需要800万资源,兵种后期升级需要几百万资源不等,这些都不是打玩家可以轻易获得的,你的资源放家里越久被别人抢的几率就越大,所以不差钱别打电脑,光靠打人足够支持发展所需大部分资源。我现在24级5级基地才刚打到27级电脑。
红警大战资源平衡:这点也很重要经常会有人资源严重不平衡的,这个问题产生后在你准备升级基地前后尤为突出。这点只有靠大局观来弥补,比如在准备升级基地前,竟可能别升级作战实验室和步兵训练营,这2个单位都是金属消耗的大户,打破资源平衡的一流好手。,不然可能损失很多。
红警大战建筑介绍:红警大战的唯一核心建筑就是金属和石油仓库,其次就是基地;真个游戏至始至终都是在围绕这3个建筑发展的,无论是进攻还是防守,其他都是浮云。灭不掉这3个建筑也许会赔了夫人又折兵,等于发动一次失败的战役。守不住仓库基地,保全了再多建筑都是浮云。
朝阳【wlsh0908】整理
【爱文库】核心用户上传
爱国者对地导弹,长的很想红警里面的防空炮台但是不对空,看名字就知道,它只对地,初期升级到4级足以,4级的射程够得上满射程的V3了,初期只要4级足以,因为初期他的攻击就是浮云,6升7需要石油金属各100多万,7升8需要恐怖的近300万资源,前期来说太废资源了。
机枪塔,防空利器,多升一点吧,但是令人蛋疼的射程有些疲软升级到5级才有对抗满射程的夜鹰的资本(4级机枪塔和满级夜鹰同为315射程,5级自保足以)。
作战实验室和兵营训练营按需升级足以这玩意太耗金属稍不留神就打破平衡了。各种资源采集点最后无聊在升级,不过有必要造满,这有个东西吸引火力不错,40%就出保护,作为引子和防御围墙效果很好。
红警大战兵种介绍:再此只介绍常规作战部队冷门或者没什么用的不多说了。
防空车:中期常规必被防御部队且必须升满。前期疲软乏力毫无作用,作为唯一可以对空的坦克,经济实惠又不怎么占人口,效果很不错,在机器人没升满前可作为替代品,最大缺点就是占用坦克升级时间和很多主战部队升级时间冲突。
灰熊坦克:拥有的第一辆坦克,升级个3级用用就好了,没必要升级太高,浪费前期宝贵资源,而且是第一个给淘汰掉的坦克;
V3火箭车:核心坦克之一,经济实惠,打的又远,欺负电脑突破防御的首选武器,升满必须升满,满级才1368的血量必须保护好,经常一个地雷干掉你全部V3,这个货太喜欢叠到一起了,使用时候必须小心,399的射程小心操作足够突破一切防御。
犀牛坦克:过度坦克,可以放弃升级,因为下一级的坦克杀手更加凶猛,我是果断放弃了升级了。
坦克杀手:核心坦克之一,战略作用远超天启,经济实用,120的人口,对建筑破坏超级生猛,因为这游戏不管打人还是打电脑你面对的都是电脑AI系统,朝阳【wlsh0908】整理
【爱文库】核心用户上传
用坦克去对付坦克只是脑子坏了的人才会去做的事情,所以没必要去可以去追求最凶的坦克去攻城,满级的坦克杀手足够解决一切问题了,至于防守方面再多坦克都是浮云,原地不动V3打你,你敢移动根本没回去的机会,如果不考虑进攻做极端防守我会选择全部防空车或者机器人防守,但是那样就没进攻能力了。
天启坦克:超厚的血量,无与伦比的攻击力,不俗的射程,不可谓不强,简直强到姥姥家,它没进入我的核心坦克是因为250的人口太占空间了,尤其在产量方面,3个小时1辆,给打掉一辆要太久才能恢复,灰常蛋疼,如果我发现有人出了天启我会毫不犹豫打过去干掉他的全部天启应该比打掉仓库还蛋疼吧。另外一个原因让我将它弃在核心坦克之外的原因就是他的升级链太靠后了,无比的遥远,综上所述只有将它放在心底最深处YY了(现规则下天启真心鸡肋只能吓吓人)。
步兵:288的射程便宜超级快的生产速度让他也进入了常规部队,消耗了可以直接秒产出来,所以他是扫雷、诱饵的不二人选。
火箭兵:在没有生产出灰熊的时候,他是个不错的兵种。
自爆兵:拉登精神的延续,有时候可以产生些意外效果,可以考虑升满。工程师,120人口,2小时生产1个,离线就罢工,被打还会出去送死,造2个吧。
阻击手,不对空,果断跳过。
机器人:核心部队之一,4级基地就能造,80人口,为数不多的对空单位之一,在升级到6级以前还是放仓库慢慢升级吧,前期有防空车替代足够了,造了被打了还是很蛋疼的。
武装直升机:便宜要求低,不占人口,不乱跑,可以一用,但是射程和血量都是他的硬伤,注定会被夜鹰替代。
夜鹰:满级315的射程可以轻松调戏机枪保护下的对地炮台,不过满级就1000的血量操作起来还是要非常小心的,尤其是极限挑战射程的时候。
雷霆战机:不俗的攻击力就是血太少了,基本过去就是死,跳过无视它。
朝阳【wlsh0908】整理
【爱文库】核心用户上传
黑鹰战机:不俗的血量,超级攻击力,满级基本1回合可以秒杀1个机枪,后期可以作为主战部队效果不错,两点缺陷就是俯冲攻击,消耗比较大,第二点占用升级空间,升他不能升坦克了,用夜鹰过度到满级黑鹰在用吧。
以上就是常用兵种介绍,常规部队介绍的细些,其他的能跳过就跳了,如果你发现还有不错的兵种也能更贴聊聊。战略篇——红警大战进攻
打电脑npc:无脑操作,等级低的时候,一个步兵在前勾引,然后一群小兵去围殴爱国者,机枪炮台让系统送的灰熊去抗,然后空降一堆兵围殴之;后面等级高些了先用V3打防空,然后飞机上,最后坦克解决战斗,小心地雷就好了。
打其他玩家:和人打其实也是比较简单的,先用小兵把坦克等部队全部勾引出来消灭之,在去对建筑物动手,和打电脑差不多,系统的AI还是很弱智的。不要害怕别人反击,想打谁就打谁,只要你灭了他的地面部队就不怕他在短时间内反击,没兵做什么都不行的。
打人最重要的就是挑选对手,谁的资源多就去打谁,看资源很简单看看仓库图案就知道
金属仓库空的时候:
朝阳【wlsh0908】整理
【爱文库】核心用户上传
这个是中等偏上储量的样子,如果仓库满了则堆的特别高,占时没图,自己可以看到的
石油空
石油中,石油储量多少看中间的柱子,柱子越高这石油越多。如果对面资源是空就就要三思而后行了没必要干吃力不讨好的事。
红警大战防守篇:真心没什么好说的,到目前为止没有打不下的基地,只有不想打的基地。再高的等级再好的阵形都顶不住轮番进攻,分批次进攻。
下面介绍集中防守不错的技巧共同交流下,首先,防守人品神器,地雷!地雷升满吧,独立的升级空间不影响别的,果断升满,升到彻甲榴弹再说。升级建筑等级可以在4级基地的时候再开始升,不怎么废资源就是太慢了。同时 地雷摆放也有技巧,比如放在机枪塔射程的边缘,就是那些V3能打到你,你打不到V3的地方,或者在遍布基地内部至于内部什么地方不能说的太清楚了佛曰不可说不可说。自己摸索吧,雷布在内部比外部的威胁大很多,已经泄天机了。知道一个地雷也许就能救你基地一命就好了。
下面说的技巧就是鸡肋建筑地保,和鸡肋兵种炸弹人的配合,一个地保里面放3到4个炸弹人,当别人把你地堡敲掉的时候他们就会有意外的惊喜,只要有1个接近对手就有可能灭掉对方的t坦克,这是利用对手轻视地堡的心理,只能
朝阳【wlsh0908】整理
【爱文库】核心用户上传
算是骑兵,难登大雅,小伎俩而已。防守的时候防空车一定要放在爱国者边上保护好爱国者。另外要说的就是你的坦克最好放在建筑边上,然后全部原地防守,这样如果对面想敲掉你的坦克用V3必然会误伤你的建筑,40%就出保护,这点一定要利用好。
至于建筑学摆法也是有讲究的,中间放基地,基地四周围满仓库,然后用防空炮台密集保护好这些建筑,然后在最外围用其他建筑整齐的排好城墙。为什么用这些建筑当城墙,理由很简单大,占位置,坦克要过去必须打掉,要么不走这走。作为一次成功的防守,只要记住一个次数字就好,40%。一拨5分钟,打掉一个满状态基地,那只是个传说。尽可能在40%的时候保留住更多的防御设施,这次防守就会轻松许多了。
说真心的这游戏想守住太难,基本没有机会,只要对手不是那么倒霉踩了过多的地雷根本受不住。所以一次成功的防守,竟可能多的保存住仓库可基地就好。明确好自己需要保护的目标重点保护而不是保护全部建筑。没有最完美的防守只有更犀利的进攻!目前唯一能保证自己不被打的法子只有一个,那就是利用规则漏洞,建小号来打自己,把不必要的建筑全给打掉。很无耻,也很无聊,没意思。
朝阳【wlsh0908】整理
第二篇:万达超强执行力秘籍
万达超强执行力秘籍
万达的高速发展——连续5年企业资产和销售收入环比增长超过30%,估计今年在30%到35%之间。作为一个超过千亿规模的企业,还能够保持这么快的速度,在世界上也是不多见的。
王健林谈万达超强执行力——万达执行能力强,在世界商业史上都很罕见。比如说我们开发的所有城市综合体,从开工到开业都在2年之内实现,而且都是满场开业,不管是500个商家还是600个商家,都是一起开业,这点是非常难得的。到现在为止,万达开业几百个项目(包括住宅、写字楼),都没有耽误一天。我们有一套程序,是多年累积的结果,也不是领导人拿鞭子抽就能做到,它是一系列能力,还有商业资源。
一、制度建设
谁都知道企业必须要有制度,但需要什么样的制度呢?我们万达注重两方面:
1)、要搞能用的制度
20多年来我们搞了很多制度,现在每两年制度要修订一次,修订从我开始到总裁,到副总裁,到各个部门全部参加,一般历时3个月左右,每年9月份开始。制度一定要做有用,要有操作性。
如万达的规划设计制度,很多同志觉得万达的地下停车场进去特别敞亮,什么原因呢?这是多少年摸索出来,我们要求停车场的高度必须做到4.8米,一般3.6 米,为什么要4.8米呢?就是为了若干年以后,能够安排机械停车位,现在这种设备非常成熟,两个车位可以做出五个车位,全部下来大概能增加70%的停车位。
2)、不给员工犯错机会
万达每年新增投资至少超过千亿。建设行业在全世界范围内都是最大的一个行业,出事比较多,涉及到招投标、安排施工队伍、材料采购等等。那么怎么办呢? 我们至少在10年、8年前,着重建立品牌库制度,招商商家品牌库、设备品牌库、工程品牌库,要求行业前三名的企业进去,入了品牌库才能投标。品牌库规定每年跟进一次,一旦发现品牌商家有对我们行贿,或者发现质量问题不好,维修不及时可以踢出去。
我们有一个轮岗制度,财务、成本人员三年轮岗。当然也有到其他城市不愿意去,不愿意去就解聘,慢慢地形成文化,现在就没有说再调动谁谁不去,大家都知道不去不行,这是强制制度。因为你再严,中国社会大环境就是如此,肯定有各种各样的关系。
现在万达广场比较火,相当部分的店都是一铺难求,怎么办呢? 我们也是一样,建立商家品牌度,把商家分ABCD四个级别,根据你开的连锁店数和我们合作经验看,每年一打分,A 级店只能使用A、B两个级别,B级店才可以选ABC,只有第三层店才能选最后级别商家,为什么这样做呢?也是为了防止腐败。
当然,任何制度不可能100% 防腐,我们尽可能做到,靠有用的制度设计来堵塞,不给员工犯错机会。
二、计划作为核心
万达业务板块非常多元,如何把这么复杂多元的企业统一有序地管理起来?我们主要是抓纲,就是抓计划制度。1)、抓住四大计划
万达每一年有四个计划:工作计划、投资计划、资金计划、开业计划。 工作计划——集团机关各部门做,要排得非常细,细化到每一周。 投资计划——是要有发展计划、成本、利润,包括缴纳多少税收,都要合进去,不要给下面有偷税漏税的机会。
资金计划——主要是现金流分析。不是简单地一年预算收入1000亿、成本800亿,还要细到每一个公司(如电影城,百货)的现金流分析表。总部现金流分析到周,具体公司要做到每日。现金流是企业的生命线。 开业计划—— 一定要细化到年、月、日,今年年底做计划就排到2016年,排3年。这样才能分析现金流量。有开业计划大家能做准备,人力资源就知道大概每一年招多少人,财务知道需要多少资金。
抓住四大计划,主要就是做到有备而战,绝对不能跟着感觉走。这四大计划,从每年的 9月初开始做,要经过上下博弈的过程,只有博弈过的计划才靠谱,没有经过博弈的计划是忽悠,要3个月时间才能完成。执行后每一年的6月再做适当调整,万达如此运行,其实就是工业计划模式,非常严密。
2)、计划模块化管理
万达工程这么多,怎样来管理? 我们把计划做成模块化管理软件,比如万达广场从开工到开业,我们分成380多个工程节点,三级管理,一级节点集团层面来管理,二级节点是分管副总裁管理,三级节点项目公司和项目公司的执行层面关注。开工第一周干什么,第二周干什么,计划到周。
人脑袋是会遗漏的,是谁落了节点,网上会看得非常清楚。而且最大好处是对新人,新人来了以后就能直接干。万达有句名言:不会干看电脑,上面你该干什么都非常清楚。
模块化管理后,每个人特别紧张自己的工作,生怕误了节点,比计划晚一周亮黄灯,黄灯出现一周,工程量没有补上去或者工作量没有达到,变成红灯,黄灯不扣分,红灯扣分,但是一年之内有三个黄灯出现,就等同于一个红灯。按照一、二、三级节点扣多少分就是扣多少钱。
这样,每个人都知道下一步要干什么,一定不能耽误,耽误了全系统都能看到,这是很大的压力。这样工作就是紧张有序,所以万达一年半就能开业一个项目,不显得那么忙乱。
三、依靠科技、信息化管理
万达在国内超过100个城市有投资,现在海外投资也有两个国家,按照现在的发展速度,2020年之前就会发展到10个国家以上,20%投资在海外,怎么管理?靠人管理肯定不行,靠制度管人也不一定落到实处,我们靠科技、靠信息化来完成。抓三个方面:
1)、全面信息化管理
就是万达集团所有的项目、资本、资金、发展、招商等工作,全都上线运行。施工现场的全自动管控,工程干到什么程度蒙不了。
2)、科技提升管理水平——如,成本控制
比如成本控制问题是世界性的难题,我们研发出成本控制管理软件,从设计开始管控成本,很多人说设计不用管,请老外设计,看着很漂亮,拿过来干就傻了,成本比你原来预想超过20%。成本控制最重要是设计阶段的控制、后期招投标的控制。万达成本控制管理办法都是模块化,一个店就这么多钱。我们按照ABCD级别店,分设若干标准,都细化下来,把所有店设计完了以后,放到信息系统里,使用什么材料一点自动生成成本信息。这种信息化水平,可以确保从设计阶段就成本不超支。
3)、取得各种专利
万达被评为全球信息化百强企业。我们靠信息化管理企业,完全都是靠自主研发,过去用别人总是跟不上我们的需求,四、严格实施奖惩
制度定了这么多,科技水平也很高,但是在执行层面上,如果奖惩不明也不行。
1)、领导以身作则
海内外所有企业的管理实践也证明,一个单位特别是企业如何,取决于风气正不正,特别是领导班子的一把手。
我可以说是公司领袖,我也依然坚持,我要求员工做到,我自己首先做到。我每天7点多到公司,是最勤奋的企业家。招投标我从来不去干涉,在公司里面我也没有自己任何的亲戚,而且对我自己的亲属也严格要求,我从开始就要建立现代的企业制度。在公司用人的方面,就是看能力,员工在万达工作好就是最好的关系,领导以身作则。
2)、所有考核量化
经营公司完全可以量化,还有非经营的部门,像人力资源中心怎么量化考核呢? 每一年我们把项目梳理出来,需要多少高管、一把手,必须招聘,要求有储备制度,必须储备多少人、对哪一类人有需求,几个月必须到位,完全严格量化指标。像企业文化中心,每年搞多少次员工活动等都要量化。所有的考核指标量化才能防止主观感觉,所以万达很清楚。
3)、严格执行奖罚
规矩定了,关键看敢不敢较真,这就看管理水平。比如我们有的影城有一年可能指标定高了,有相当一部分影城算下来一分奖金都没有,干了一年了,敢发和敢不发都要较真。在万达没有情面讲,都是按制度。所以,在万达有的总经理比总裁、副总裁拿得多,同样在一个公司里你可能薪金比别人少3倍,慢慢就习以为常了。
4)、内部审计制度
万达有审计部,所有部门每年一审计。审计完了以后有三种意见:第一是管理建议书,没有任何处罚,提出管理建议你要干什么;第二是整改通知书,罚到什么级别要罚多少钱如何,非常明确;第三是审计通报,基本上是开除。
我们审计非常严格,这些年也开除不少人,每年送几个人到司法机关。这种内部审计制度对内部人员违规是很大的震慑,由于奖惩严格,所以企业管理执行力非常强。很多人说企业管理像军队一样,就是令行禁止。
第三篇:麻将技巧大总结十大秘籍口诀
麻将技巧大总结十大秘籍口诀
麻将是一门高深的学问,怎么打,怎么出,都是一门好高深的学问。有些新手到处再找高手吸取经验,老手们就到处的总结经验。不管是老手还是新手,想要多了解这些何必到处跑呢。在这里就为大家总结以下,以及给大家列出麻将技巧之十大口诀
大家都知道吃碰会使你的牌想向一个方向前进,也使你做牌成为大家公有的信息,也就是说你选择余地少了和 其他人判断你的牌情有了更好的依据。
大家都知道吃碰会使你的牌想向一个方向前进,也使你做牌成为大家公有的信息,也就是说你选择余地少了和 其他人判断你的牌情有了更好的依据。目的都是向你打牌计划更多靠拢,好牌谁都知道怎么打。但在坏牌的时候,如三门有三色迹象,有风有箭,又有五门齐迹象,假设三色60%,五门齐40%。
全求人是个比较简单的牌,顾名能思义。很多新人打着打着就会做成全求人,所以我在这里强调,对新手的要求,打牌计划就不要想全求人这一个番数,只有到万不得以的情况下,如青龙被打断等,才改成全求人。
对已经入门的人,全求人一般都带了一个大番(有些带番的全求人容易被人弃胡看住,如五门,可以根据变化放弃一定的番数达到快胡的原则,实战更明显)。不求人已经听的要求:如果是门清的情况就够番,不求人只能当作运气。不够番,就要在还是听的情况下积极求变。
麻将技巧必胜10大口诀: 1牌旺自然只手香 2牌弱要打生死张 3人贱肯定有天收 4宁弃莫出冲 5人旺我乱碰 6牌臭过三栋 7牌尾吃卡档 8牌可以输 9胡可以吃进 10威不可以拿进
第四篇:坦克大战大报告
大作业题目:坦克大战程序
一、需求分析
功能需求
坦克大战其中包括对主战坦克的编写、坦克的初始位置的编写、坦克的移动方向的编写、坦克的速度的编写、坦克的子弹速度的编写、敌军的子弹速度的编写、设置游戏难度的编写、子弹的编写、敌军坦克的编写、构造函数的编写,初始化敌军坦克的位置和状态的编写、键盘控制坦克的移动的编写、发弹的编写、判断是否被击中的编写、判断是否击中敌军的编写等。通过上下左右键进行对坦克的移动,通过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日 Help-概览所有作弊 Kaching-您增加了1000 § Motherlode 增加家庭账户 50000 § familyfunds [Nachname] [Betrag](家庭资金 [姓氏] [数量]) 例如:“家庭资金梅耶尔 5000”家庭户口本上设置梅耶尔家族§ 5000(此金额没有增加或减少,但理解这一数额) unlockOutfits on 当在“创建一个 SIM”区人大的衣服(比萨人,纸男孩,...)和服装(警服,...)的自由。这个作弊必须先启用你进入“创建一个 SIM”领域。 unlockOutfits off 删除上述衣服回来的“创建一个星际”库。jokePlease德鲁出现。 MoveObjects on Sims和可移动的物体,放在左右,尽管在一些地方,没地方给它。 MoveObjects off 开启自由移动任何物体和Sims和地方了。fullscreen off 从全屏幕模式切换到窗口模式。 fullscreen on 从窗口模式切换到全屏模式。 fadeObjects off 打开衰落对象(如树木)在缩小 fadeObjects on 打开衰落对象(如树木)时放大 fps on 当前帧(每秒=)显示。 fps off 当前帧(每秒=)不再显示。 hideHeadlineEffects off 言论和思想,将不再出现 hideHeadlineEffects on 言论和思想,将再出现 resetSim [Vorname] [Nachname] 例如:“resetSim马克迈尔-市民们称为马克史密斯将被重置/把原来的状态,放在他的财产。 constrainFloorElevation true 允许降低和提高对土壤,即使事情在您的方式。constrainFloorElevation false 关闭的功能,允许降低和提高对土壤,即使事情在您的方式。 slowMotionViz [0-8] 所有行动发生在慢动作。播放时间是不会受到影响。数字 0是正常速度。8号叶从行动开始缓慢。Quit 保存一次,没有结束。 mapTags off 显示符号从所有的牌 mapTags on 隐藏在卡片上的所有符号 ageUpToNPC 在年幼的孩子,可以认定,她们成长为全国人民代表大会(非可玩的字符)的预算。 disableSnappingToSlotsOnAlt on 对象不按住Alt踺在指定的时段跳格。 disableSnappingToSlotsOnAlt off Spinges对象时按住ALT踺又在给定时段的网格。playSounds off 一切声音都关闭。 playSounds on 一切声音都启用。 录制视频 [小] [中] [大] / [低] [中等] [高] [最大] 开始录制视频在给定的大小和质量。例如:“录像中高”开始录制视频中型和高品质。 速度 <0-4> 设置游戏速度从 0 = “暂停” 4 =“非常高的速度由目前的行动”第五篇:模拟人生3作弊秘籍