1.7 億字小說《宇宙巨校閃級生》是怎麼用 VB 寫出來的?

最近網上一本叫做《宇宙巨校閃級生》的小說火了起來,不僅僅是因為它有1.7億字,還是用vb編程(作者如是說)然後電腦計算創作出來的!
我閱讀了一章,沒有什麼語法錯誤,雖然有些墨跡。(各位可以百度一下這個小說看看)
各位程序猿,我想問問用vb能否創作出這樣的小說?如果能,怎麼創作出來的呢(大概過程)?
謝謝各位~


註:因為有網友回復說我這段是抄襲了一篇「貼吧12年的回答」,另外收到系統私信說『我們收到用戶舉報,您在問題 1.7 億字小說《宇宙巨校閃級生》是怎麼用 VB 寫出來的? 下的回答由於超過合理使用範圍且未使用規範轉載格式,因此您的回答被建議修改』。
所以我在這裡特此申明一下,在下這篇文字是先在貼吧發過的,但也就是前幾天:
http://tieba.baidu.com/p/4898018936
當然在知乎發的時候也另外做了一些修改。
另外在貼吧另外一個帖子中也回復過類似的內容:
http://tieba.baidu.com/p/4768582796
但這兩篇都不是「12年」的帖子,而且雖然我在貼吧和知乎用的不是一個id,但頭像大致相同,不知道 @你說啥呢 所指的我「抄襲」的帖子原帖何在,我當時回復了他,過了這麼3、4天也沒見到回復,如果再等不到回復,我只能說對不起,我這裡給你保留一份截圖吧:

另外看了一下知乎的規則,轉載的話需要用「引用」標出,並提供原出處。
我原來是給了一個「原文出處」的(見下),但可能是因為那個是一個類似於盜貼網站的,所以可能不規範。但沒辦法,這篇作品最初作者是發布在起點的,花了一天的時間上傳,第二天就被起點刪除了(前因後果可以參看:紫峰閑人《宇宙巨校閃級生》07年被起點刪除事件!!_宇宙巨校閃級生吧_百度貼吧),所以現在在正規站點無法找到本小說的內容,我這裡也只能抱歉轉載一份盜貼網站的地址作為原文出處了。另外所有貼出原作品的內容的部分,盡以引用符號引出。
不知道這樣是否符合知乎要求。

~~~~~~~~~~~~~~~~原答案~~~~~~~~~~~~~~~~
正好在搜索起點字數榜的事情(起點的字數榜找不到了),搜到了本書,也了解了一些此書「程序生成」的故事,有點興趣,於是分析了一下本書的「演算法」(好吧,就暫且叫它「演算法」吧)。

先說下我分析的文字的來源,本書在網上有很多版本,我是在百度搜的時候,搜到一個「筆下文學」的,結果打開一卷,網頁就死掉了。另外一個「UU小說網」的,能正常打開,兩本最後都是186卷,下文就是用的本捲來分析的(原文出處:正文 第一百八十六卷 《獨裁晶亮的真好漢》):

————————————————

本書的寫法,大體來說是有點注水風格,就是用一個框架結構,在一些形容詞、招數武功的名字等等地方用隨機生成(當然是一個詞庫的情況中的挑選類隨機,而一些名字方面可能會用半隨機)
就大概有點這個意思,下面我們還是用具體的文字來舉例吧:

比如第一百八十六卷 《獨裁晶亮的真好漢》,本卷共有33萬位元組差不多就是17萬字,其中第一章總計61265位元組,字數3萬多字。
第一句話就直接介紹,本卷講的是,「動物巨校」的「府士級」的「創意表演」的「考試」這麼一個事情,首先用了近2000字介紹這個「考試」的地點「閃排骨小溪」。
然後主要部分一開始,是用了3900字介紹4個副考官:

D.唐安西士主任、女政委P.卜古娃霓姨婆、女總統迭米葉嬈仙女、X.妮什科司令

從4位的介紹中,就可以看出本書所慣用的「替換」的「套路性」,每個人的出場是這樣的:
第一句,人物名字:

那個身穿扁扁萬花褂的副考官是——D.唐安西士主任
那個身穿虔誠秋影甲的副考官是——女政委P.卜古娃霓姨婆。
那個身穿稀奇彩玉袍的副考官是——女總統迭米葉嬈仙女。
那個身穿遠古水晶服的副考官是——X.妮什科司令。

這裡可以看出,內容就是這樣的:「那個身穿%1的%2的副考官是——%3%4」,這裡%3是名字,名字的主體部分都是隨機亂序生成的(所以可以看出的確不是人寫的,這麼亂拼湊的名字正常人寫出來了也記不住)。然後可能還有一個「職位」部分,比如2、3就是「政委/總統」這種「職位」,%4也可以說是「職位」或者「稱呼」,如果前面的%3部分已經有了職位的話%4就是稱呼,比如「姨婆」、「仙女」,如果前面沒有的話就是職位「主任」、「司令」。
而%2是穿著,從萬花褂、秋影甲、彩玉袍、水晶服可以看出,應該是有一個「庫」來支持這個隨機,而不是完全隨機的。
而%1就是一些形容詞,可以看做遊戲中裝備的前綴╮(╯▽╰)╭。

而看到我用%1、%2、%3、%4這種,大家就應該懂了。
本書的主要方法就差不多是這樣,一個大致的框架,和一個龐大的替換的詞庫。當然詞庫還可以再細化,比如每章後面提到的寶石,在186卷的7章中出現了五次,依次是:月亮綠鑽石、太陽紅寶石、太陽紅鑽石、星雲金鑽石、宇宙藍鑽石,就可以看出應該是「%1%2%3石」的這麼一個模式,其中%1含有{太陽、月亮、星雲、宇宙}等天文詞(提高逼格用);%2是{綠、紅、金、藍}等顏色詞;%3是{鑽、寶}等詞,當然也可能是{鑽石、寶石}這種(比如如果出現了「太陽黑水晶」這種的話),當然這裡的詞庫非常小(大概只有不到10個甚至更少),所以就在5次中,%1的「太陽」出現了2次,%2的「紅」出現了2次,%3的「鑽」出現了4次。但因為用了3個隨機詞,所以全部重複的幾率還是不大的(詞庫總長未知,暫且無法分析概率)。
然後這樣產生出來的一個詞語,再作為上一級的一個套路的某個%1,這樣多層嵌套而產生。
而某些人名(還有下面的招數名等)看起來是完全隨機,但我估計也應該是一個多層嵌套的詞庫隨機,也就是一種半隨機的模式。

如果還不是非常理解的話,可以再看下面:

第二句,出生地、綽號、年齡、身高體重:

他出生在婭孜勃埃民族的剃鬚刀沙海,綽號:木腳荷葉!年齡看上去大約五六歲,但實際年齡足有二三千歲,身高不足一米六,體重接近二百公斤。
她出生在Z.翁斯科皇國的香檳平原,綽號:石肘瓦刀!年齡看上去大約十七八歲,但實際年齡足有九千多歲,身高一米七左右,體重約九十多公斤。
她出生在Y.汗奇赤星球的豬肚山,綽號:金掌棕葉!年齡看上去大約十三四歲,但實際年齡足有五六千歲,身高一米五、六,體重足有一百公斤。
他出生在兀瓜兀王國的野貓城,綽號:七臂插頭!年齡看上去大約八九歲,但實際年齡足有兩萬多歲,身高一米九左右,體重足有一百三十多公斤。

第三句,此人的兵器、武功、魔法、法寶:

此人最善使用的兵器是『金霞傻祖鋼球鎬』,有一身奇特的武功『黑絲飛佛木魚臂』,看家的魔法是『褐雲倒鬼天平密碼』,另外身上還帶著一件奇異的法寶『紫雨蚊佛瓜皮筆』。
此人最善使用的兵器是『綠光彩魔兔魂壺』,有一身奇特的武功『棕鳥望怪天網指』,看家的魔法是『彩光鱷神蒸籠仙訣』,另外身上還帶著一件奇異的法寶『金雲傘怪紙盒針』。
此人最善使用的兵器是『粉雨驢佛鳳凰斧』,有一身奇特的武功『灰霧虹仙竹簾腳』,看家的魔法是『青霞夏精地雷大法』,另外身上還帶著一件奇異的法寶『綠光丑仙拖網球』。
此人最善使用的兵器是『紅雲鍋怪蚜蟲鏢』,有一身奇特的武功『銀冰亮祖羊鬼肘』,看家的魔法是『白光流妖火球神譜』,另外身上還帶著一件奇異的法寶『粉霞踏祖鋼板本』。

以上是第一段,後面部分也不需要我一一解說了,大體可以看出組合的模式。有部分是從固定庫中讀取,有部分還是隨機組合。比如兵器、武功、魔法、法寶,應該也是用的"%1%2%3%4%5%6"這樣的模式,%1是第一個字,是顏色;%2是第二個字,是一個{霞、絲、雲、雨、光、冰、霧、鳥}之類提高逼格的字;%3是第三個字,是一個可以做形容詞的字;%4是第四個字,一個名詞;%5第五、六個字,%6是最後1個(或者2個字),兩個一起組成一個偏正詞。


然後下面,第二段是長相、穿著等總體的描寫;
第三段是具體開始描述每一個五官,以及眉毛之類的反正是臉部的描寫;
第四段是身材、肩膀、腿……就是臉部以外的身體部分的具體描寫;
第五段是說話聲音、氣味、氣質、神態之類比較虛的部分的描寫。
隨便拷貝一段,就知道這種套路是怎麼來的了:

【第二段總體】:
她有著瘦長的淡黃色海參一般的身材和神氣的淡藍色水母般的皮膚,的確絕對的獨裁和奇特,她頭上是冒煙的墨紫色磨盤樣的長辮,戴著一頂異形的米黃色茄子般的狼牙銀獸巾,她上穿稀奇的淡青色怪藤似的浴巾樹皮彩玉袍,下穿矮胖的的煙橙色土堆模樣的鐵塔水夢褲子,腳穿貴族的青古磁色橘子似的輪椅仙霞鞋。這人披著一件變形的淡綠色麵包似的路標流光斗篷……有時很喜歡露出露著絕種的深藍色木瓜樣的瓜蒂聖柏胖肚,那上面上面長著長長的亮紫色的細小天鵝般的肚毛。整個形象的確絕對的朦朧卻又透著一絲絢麗……
【第三段臉部】
女總統迭米葉嬈仙女長著長長的亮黃色蒜頭般的腦袋和柔軟的春綠色驢腎模樣的脖子,最出奇的是一張肥胖的水青色花豹般的臉,配著一隻歪斜的蔥綠色海蜇一般的鼻子。鼻子上面是一對肥壯的純黃色天網造型的眼睛,兩邊是矮小的海藍色噴頭耳朵,鼻子下面是勻稱的深黃色魚妖一樣的嘴唇,說話時露出肥大的純藍色地圖般的牙齒,一條瘦瘦的淡紫色肥腸造型的舌頭確實相當珍貴卻又透著一絲飄然。她美如純黃色炸雞模樣的身材感覺空前和諧同時還隱現著几絲標新立異,輕靈的湖青色細小猩猩般的鬍鬚感覺空前病態秀雅。瘦瘦的淡紫色肥腸造型的舌頭感覺空前豪華和風光。那一雙修長的深綠色鮮筍形態的眉毛,感覺空前詭異古怪。
【第四段身體】
再看女總統迭米葉嬈仙女的身形,她有著粗壯的美如靈芝一般的肩膀,肩膀下面是矮胖的美如棕繩一般的手臂,她矮小的亮藍色金缽一般的手掌感覺空前頑強但又露出一種隱約的正點,胖胖的紫紅色竹竿一般的手指感覺空前華麗但又帶著幾分霸氣。她粗俗的美如鼓錘一般的腿的確絕對的有趣但又露出一種隱約的愚笨,強壯的美如麥穗一般的腳感覺空前琢磨不透卻又透著一絲瘋狂,她肥大的美如袋鼠一般的屁股感覺空前寒酸而神秘!腰間一條,矮胖的亮青色章魚一般的腰帶感覺空前溫柔又與眾不同。
【第五段氣質】
這個女貴族說話時有種怪異的淡青色標槍造型的聲音,高興時會散發出散發的深紫色水波般的氣味。她粗俗的暗綠色螳螂模樣的骨骼感覺空前風趣變態,那種優雅的深黃色托盤一般的神態感覺空前罕見同時還隱現著几絲講究。

而其他幾位大體也如此,所以這樣隨隨便便就近6000字已經「生產」完畢了……話說按照平時3000字一章的話這麼多已經可以湊兩章,2000字一章的話都可以湊3章。普通的寫手這就算一天的更新了……

然後下來又是1800字的考場的具體描寫,然後下面就是本書字數的主要組成部分了,就是戰鬥!

當然網路小說怎麼能沒有戰鬥呢,前面不是介紹了每位都有一套:「擅長的兵器」、「奇特的武功」、「看家的魔法」、以及「奇異的法寶」么,下面就是這四樣的一一展示:
首先第一位,用1400字展示了一下自己的「擅長的兵器」當然又是各種描寫,因為答主的腸胃功能不好,所以就不複製原文了,感興趣的可以去最前面我給出的原文地址參看。
然後插播150字的「蘑菇王子」和「知知爵士」的對話評論(總要有點對話吧,另外看了後面再回來,才發現這兩個人不是隨機生成的,是「從頭到尾貫穿全書」的四位人物之二);
再是1100字的「奇特的武功」的描寫,再128字的評論;
又是1100字的「看家的魔法」的描寫,再評論161字;
最後1200字的「奇異的法寶」收招,總算這次不評論了,直接得出一個總分90.81分。
於是5000字的第一位「D.唐安西士主任」的出場部分描寫完畢。

當然下面依舊是一樣的套路,5600字寫完了第二位,5500字的第三位和6200字的第四位(第四位最後加了一段戲,著重描寫了一段咒語,所以字數多了幾百字)

最終,這總計61265位元組,字數3萬多字的「第186卷第1章」,就這樣完成了……

另外每章最後都有一段:

蘑菇王子:「哈哈!我覺得這幾個腕腕兒的技術不怎麼樣哦……」
知知爵士:「嗯嗯,雖然這幾個混混兒的招式沒多少新意,但總法力卻比咱們第一次見到的那幾個混混兒高一百八十六倍呢!」
蘑菇王子:「這麼說咱們的總法力也增加了一百八十六倍?」
知知爵士:「嗯嗯,那當然了……」

這個「186倍」和本章的「186卷」正好相同。所以我看了一下前面的,果然第175卷的最後一段是:

蘑菇王子:「哈哈!我的包包里多了一顆宇宙藍鑽石和一本專業證書!還有一枚超級宇宙專業證章呢!」
知知爵士:「咱們終於得到第枚超級宇宙證章!」
蘑菇王子:哈哈!真不錯!!活力又長了一層,現在咱們活力已經是第一百七十五層啦!」
知知爵士:「嗯嗯!我感覺很舒服!看來咱們支票上的宇宙幣也該增加了……」

而第8卷的最後一段是:

蘑菇王子:「哈哈!我的包包里多了一顆宇宙藍鑽石和一本專業證書!還有一枚超級宇宙專業證章呢!」
知知爵士:「咱們終於得到第只巨碗枚超級宇宙證章!」
蘑菇王子:哈哈!真不錯!!活力又長了一層,現在咱們活力已經是第八層啦!」
知知爵士:「嗯嗯!我感覺很舒服!看來咱們支票上的宇宙幣也該增加了……」

然後第二章也大體如此,
只是四個「副考官」變成了「四個奇裝異服的校妖」,(呃,看到這裡才想到,第一章是寫考試啊,人家「副考官」也是考官啊,怎麼自己上場,然後其他人給他打分啊,程序自動生產的還是有點邏輯問題啊)
還是每人先來一段出場介紹,總計4000字,然後是她們和月光妹妹、壯扭公主(嗯,看了後面再回過來看,這兩位也是「從頭到尾貫穿全書」的四位人物的另外兩位)大戰了一場,當然還是四個人依次出戰,每人出戰就是1000~1500字打一段,再來段100~200字的對話,再打一段、對話、打一段、對話、打一段;第一個人完結,然後第二個人出場,再來一遍這樣的循環……再這樣四遍循環,31000字的戰鬥部分結束,最後慣例是那段:

月光妹妹:我找到月亮綠鑽石啦!嘻嘻!」
壯扭公主:咱們終於得到顆月亮綠鑽石!」
月光妹妹:嘻嘻!好高興啊!內力又長一層,現在咱們的內力已經是第一百八十六層啦!」
壯扭公主:看來咱們支票上的宇宙幣也該增加了……」

然後是第三章,你懂的……

————————————————

簡單來說,就是每卷有7章
每章的內容就是四位男女主角中的兩位,因為某些原因,和四個對手碰到了——當然7章中也不完全是「戰鬥」、比武、調戰等等,還有各種考試、比賽、體育、符咒等等,還有每卷一次的120道素材(食材、藥材等等)

四個對手先是一堆長相、穿著之類的描述(這部分就4000-6000字了)
然後每個人有自己每種一個的:「擅長的兵器」、「奇特的武功」、「看家的魔法」、以及「奇異的法寶」

然後此人先用兵器,描寫一段大概1000-2000字的出招,然後雙方放幾句狠話(100-200字,一般是每人兩句)
然後再用武功、再放狠話、接著再用魔法、狠話、最後用法寶……
最後主角不負眾望的幹掉了敵人1(或者是折服了對手1、或者是選手1招數演示完畢,主角評論一番),然後又對戰敵人2……

最後把4個敵人都幹掉,獲得了一個新的寶石(比如月亮綠鑽石、太陽紅寶石、太陽紅鑽石、星雲金鑽石、宇宙藍鑽石等等,反正也可以看出是一個套路詞庫了),以及每卷一個的宇宙證章,然後四個人的法力、體力、活力、外力啥的又精進了一層。


大致劇情就是這樣╮(╯_╰)╭


在多層嵌套循環中替換關鍵字所得,也就是寫ASP的辦法。

在書中隨便搜索一個短語,比如「只見上面寫著」,你就會發現在全書中重複了很多次。看看本網頁中「收起評論 感謝 分享 收藏 ? 沒有幫助 ? 舉報」也重複了很多次。所以其實生成小說和生成知乎頁面,原理一樣。

第一章可讀性最好是因為第一章主要結構都是手寫的,全書只出現一次。看看本網頁頂上的「首頁 話題 發現 消息」,也只出現了一次對吧。


求知乎段子程序,解放勞動力


非常不好看的小說。它不配稱為小說。


我看了下百度百科,有這麼一段話:

用程序編寫本書的主要目的並不單純是為了獲得某些炫目的效果,而是為了探求一種新的寫作方式。相信隨著電腦軟硬體的發展,百年之後一定會出現一款或多款配備強大素材庫的高智能寫作軟體,那時只要輸入總體的構思及人物、場景、體裁等要求,一部圖、文、聲、樂、歌並茂的影視動畫或遊戲作品就會很快出現在你的眼前,而利用這類軟體進行寫作也必將成為文學創作的主流。

寫這本書的作者思維絕對算得上天馬行空,用程序寫書的第一人,或許會名留史冊。我也想過這麼干,可惜我編程和我寫作能力一樣不入流,所以沒辦法回答題主的問題。但請允許我跑個題。我現在特想吐槽上面我引用的那段話。或許百年之後一定會出現智能寫書機,但一本小說的靈魂是在於寫書的人。他們一個字一個字寫出來,賦予了那一個字一個字的靈性,而機器是沒有人這樣的體驗,也沒有人這樣豐富的情感。不是人寫出來的文字,有觀看的意義嗎?
實在對不住題主,如有不便,立即刪除!


感覺武俠小說也可以仿照GVBASIC英雄壇說的回合制戰鬥生成,如果只是看劇情的話。但文采就算了,畢竟有限庫的排列組合也無法像真人思維的天馬行空那樣帶來長久的感動


類似小黃雞吧。。。但資料庫比小黃雞小,所以肯定很難讀。
看了幾頁,構成句子的原理類似自動寫詩機。

在句子層面,收集常用句型,在對應的形容詞、名詞等地方,填充對應詞性的詞庫中隨機出來的詞語。
在章節層面,給句型分若干類型,設定一章需要哪些類型的句子,分別多少句,在章節的哪個位置。然後隨機選擇句型。
不是111部嗎,估計在部的層面也一個手段。

附自動寫詩機下載:自動作詩機器人


請問使用vb6.0寫的,還是vb.net??


推薦閱讀:

怎樣學會編程的思考方式?
你什麼時候對 Erlang 感到絕望?
作為程序猿,能為自己最喜歡的編程語言做些什麼實質的行動?
各個編程語言都有哪些「黑點」?
C++17 有哪些值得注意的新特性?

TAG:小說 | 編程語言 | 自然語言處理 | VisualBasic | 小說創作 |