第19章 岳書記的難題

第19章 岳書記的難題

經過一段時間的修鍊,孫一波的C語言編程能力大幅度提高,這也和他紮實的編程基礎息息相關,就像習武之人有了底子之後,什麼梅花掌、五行拳、無影腿等套路,都可以觸類旁通。

他深深地知道,編程序主要依仗強大的邏輯思維能力,碰到一道題,首先要把程序框架搭好,源頭是什麼,目的是什麼,一定要搞清楚,至於中間過程,那就是八仙過海,各顯神通了。

隨着中南區軟件設計大賽日漸臨近,比賽規則也浮出水面,即兩小時內用擅長的編程語言解出難易程度不等的三道題,評委根據選手的完成時間和完成質量進行打分,得分高者獲勝。

另外,大賽還規定每一名導師只能帶兩名學生參賽,這意味着岳書記麾下的三員大將(求勝、李佳浩和孫一波)之中,有一個人將面臨內部淘汰。

孫一波清醒地認識到,“最強大腦”求勝的編程能力在自己和李佳浩之上,而自己的強項在於計算機應用方面的綜合能力,包括網絡技術的綜合運用,這和他平時在計算機各個領域的廣泛涉獵是分不開的。

所以,當遇到單一的程序題,孫一波可能不佔優勢,水平和李佳浩大抵相當,略遜於求勝。

但如果碰到綜合能力題,比如需要用到網絡技術、計算機硬件技術和各項應用軟件技術,他有信心能在三人中勝出。

孫一波擅長的彙編語言恰是一切計算機語言之母,其重要性不言而喻。

岳書記如同“中國好聲音”中的導師一樣,要在自己的學員中艱難做出抉擇,無論最終選了誰和誰,必定是對第三人殘忍的傷害。

為此,他很慎重,經過深思熟慮,決定利用五一長假的七天時間,給三人出一道考驗計算機綜合水平的程序題,原則上要求獨立完成。

岳書記也知道,在一周時間裏,答題者或多或少,會藉助一些外部力量,也會通過閱讀參考書和網上搜索資料來輔助答題。

在佈置題目的時候,岳書記並沒有明確指出該次測試結果就是三選二的唯一標準,他怕給三人增添巨大壓力而影響其正常水平發揮。

但三人還是明顯感受到,完成題目的質量高低,將決定他們能否參加中南區的程序設計大賽。

一九九九年有一款非常流行的RPG(角色扮演類)遊戲,叫做《仙劍奇俠傳》,裏面的人物李逍遙、林月如和趙靈兒共同演繹了一段凄美的愛情故事,最贊的莫過於裏面的背景音樂,確實是遊戲中的佳品。

岳書記也知道這個遊戲,他雖然年屆五十,有時候也玩玩遊戲,計算機人的思維總是年輕化、超前化。

他出題目的靈感就來源於《仙劍奇俠傳》,即模擬開發出《仙劍奇俠傳》的核心程序。

這個課題可以說是相當難,等同於一部幾萬壯丁共同修築長城的巨作。

遊戲核心程序又叫遊戲引擎,是貫穿整個遊戲的靈魂,把所有的元素融合在一起,並在後台指引各個元素同時、有序地工作,包括了劇情、關卡、美工、音樂、操作等各方面的控制。

由十數人組成的項目組開發這麼一個遊戲核心程序,尚且需要數以年計的時間,要讓三個人各自在七天時間完成如此巨大的工程,顯然是不可能完成的任務。

可這道題確實是岳書記精心策劃的一道題,為什麼這麼說呢?

因為他知道這道題不可能完成,只能夠無限接近。

不能夠完成的題目就是好題目?!

也未必。

就像當下最流行的《羊了個羊》遊戲,有些關卡就是無解,程式設計師偷懶,設置了一系列隨機數,牌的放置會產生死結,而並不是程序故意刁難你。你讓程式設計師去玩,他也過不了關。

同樣,微軟的程式設計師也會偷懶,《紙牌》遊戲也有很多局無解。

言歸正傳。

但岳書記有他的判斷依據,有他設置的底線,即程序執行后,能用鼠標和鍵盤做到輸入輸出控制,能夠在電腦顯示器上顯示出人物的行蹤。

也就是說,輸入輸出控制和顯示這兩項是基本評分項,另外的元素則是錦上添花。

能順利解答出這道題的人,需要極高的計算機綜合素質,不僅具有資料查閱和消化的能力,更要有設計程序框架的大局觀和精湛的編程水平。

對三人而言,岳書記的這道程序題無疑是一塊難啃的骨頭,誰都沒預料到是一道綜合能力要求如此之高的實際應用題。

三位計算機專業翹楚,已閉關修鍊了很久,這一次終於要推開山門,面對險惡的江湖,在實戰中決定優勝劣汰。

孫一波樂觀地認為是岳書記給他開了扇小窗,因為他的彙編語言終於有了用武之地,能在實現軟件與硬件交互中得到良好的運用。

求勝向來對自己編程水平充滿信心,倒也和往日一般平靜。

李佳浩有些坐立不安,他沒有碰到過這種類型的題目,無從下手,認為同一個戰壕里的兩位戰友都不是自己的炮灰,而自己,倒可能成為陪太子讀書那人。

急於求成的李佳浩決定先使用一些旁門左道的手段,利用反編譯工具對《仙劍》的執行程序進行反編譯,這個工具對一些簡單的執行程序有作用,可以把執行程序逆轉換成程序原始碼,但對於這些龐大的執行程序,即使能逆轉換成原始碼,也是一本永遠都看不懂的梵文字典。

就象作業系統Linux,雖然公開了原始碼,但總共有一千萬行之多,普通人根本無法進行解讀和修改,所以,這個辦法沒有用。

一個善於編程的程式設計師,也很難去修改別人寫的代碼行,他更願意中規中矩地編寫原始碼,實現目標會更容易一些。

求勝的編程基本功非常紮實,同樣,他的程序構架能力也很突出。

他把主程序的各個功能分解成一個個模塊,對各個模塊進行程序編寫並封裝,這樣就可在主程序中直接調用各個模塊。

三天下來,他已經完成了動畫人物的前後左右控制和存儲進度等兩個單元的程序編寫,共計兩千多行原始碼。

相比其他兩位,孫一波顯得更為靈巧,他先從之前積累的源碼庫中找了一些類似遊戲的源碼,選擇可讀性比較強的,有釋義的源碼,並在此基礎上進行修改,這個過程對程式設計師的理解能力要求非常高。

還好,這些公開代碼者確實具有大公無私精神,原始碼段后的中文註釋非常到位。

孫一波通過對其理解,重新對資源進行了整合,這樣一來,程序修改就方便很多。

三天下來,孫一波完成了三個模塊的編寫。

兩天後,求勝和孫一波的程序都達到或接近岳書記心理底線的預期效果。

沒有對比就沒有傷害,此時最心焦的是李佳浩,他的完成質量明顯落後兩位師弟。

病急亂投醫,他沒有去找系裏的計算機高手指點迷津,卻想到了他的女朋友,學數學的岳融,讓其從數學建模的角度幫他優化一些算法。

岳融欣然接受,能替男朋友分擔一些壓力,她覺得很幸福。

她也知道,從數學的角度去化解這道綜合能力要求極高的程序題,無異於蚍蜉撼樹,也許,對李佳浩而言,精神上的安慰比物質上的幫助更重要。

五一長假期間,學生情侶們紛紛外出遊玩,岳融一點也不在乎這個,她不會給李佳浩添亂,寧可犧牲休息時間,也要換取李佳浩的學業成功。

她一直認為,陪伴在男朋友身邊是最長情的告白。

求勝這個“最強大腦”稱號絕不是蓋的。

他能夠在關鍵時刻靜下心來,發動所有的腦細胞專註於一樣事情,這是常人無法企及的高度。他的過人之處,不僅在於超高強度的腦力勞動,更在於與世隔絕、不食人間煙火的處世態度。

除了吃飯、睡覺、上廁所,他的屁股如同強力膠般粘在椅子上,眼帘低垂,一幅沉思羅漢的模樣,讓人懷疑其已經睡着時,他的雙手突然抬起,飛快地在鍵盤上敲擊起來,屏幕上頓現幾十行代碼,稱得上是沙州大學IT界大神級人物,就像閱文的白金作者。

像他這樣一位獨孤求敗、笑傲江湖的高手在解題時,自然不需要幫手,只需要對手,如果沒有對手,只有靠“雙手互博”的自我進化了。

孫一波既沒有女朋友的陪伴分憂,也不能像求勝一樣不食人間煙火。

兩三天之後,他的煩躁情緒就上來了,難以繼續高效率的腦力運轉,感到身心疲憊。

屏幕上密密麻麻的代碼行,特別是大量繁瑣的中間程序式,冗長而枯燥,令人眼花。

但這些中間程序式不得不存在,他的主要作用是把遊戲裏的劇情代碼化,通常由假設判定組成。

比方說,計算機語言和人的語言在所處不同環境裏,表達方式不盡相同,計算機語言在計算數字和循環計數方面有着得天獨厚的優勢,當人的思維認為是一種重複計算的時候,對計算機來說恰巧是一段簡單的循環程序式。

同樣,當人在判別簡單的劇情理念時,可以在瞬間作出判斷,而轉化成計算機語言,卻是一段非常冗長的代碼,因為無論選哪個,都會產生不同的後果,沒有對錯之分。

而當出現三選一或者四選一的時候,更是一堆數以倍計的程序代碼。

孫一波不想耗費過多的精力去處理這些中間程序,他認為這些選擇性代碼行比純粹打字難不了多少,此時如果有人能幫他做這些繁雜的事,他將會事半功倍。

偏偏六零二的室友們都很珍惜這個長假,他們要不陪女友外出旅遊,要不就回老家探親,沒人能夠幫助孫一波。班長戴鳴雖身在學校,但每天外出參加社會活動。

孫一波認為戴鳴以後會從政,現在所做的一切都是為以後的政治生涯做鋪墊,加砝碼。

未來的政治家才不屑於做這些雞零狗碎的小事。

上一章書籍頁下一章

我的青春不下線

···
加入書架
上一章
首頁 都市青春 我的青春不下線
上一章下一章

第19章 岳書記的難題

%