第一篇:坦克世界地圖戰術分析
戰役地圖高階指南!坦克世界地圖攻略
第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