第59章:程序員的靈感
作者:顓煜      更新:2020-11-04 11:52      字數:4358
  自“棄遊”後,柳榮華時不時的要來慫恿一下孫軼民,試圖再度拉他下水。

  這日被孫軼民婉拒後,柳榮華又長籲短歎“你不陪我玩,我還有什麽樂趣?”

  對此孫軼民的回應是“遊戲裏你有老婆,妹妹,兄弟,還有部下,難道還少我一個人?”

  “別看我在遊戲裏麵混的風生水起,可是在電腦前我總感覺有點孤獨。我需要一個現實中的玩伴。”柳榮華無奈的說道。

  說實話,孫軼民心裏確實有那麽一點想回到遊戲世界的衝動。

  那天何小泉透露關於神女無心的顏值一事,令他一直以來在內心保有一種強烈的好奇,他想去領略這個何小泉口中的“神女”級別女孩的風采。

  他突然感覺很奇怪,之前一直對見網友之類的行為不屑一顧的自己,此刻竟然有了這種想法。如果被柳榮華得知這一點,自己一定會被笑話。

  鑒於對何小泉的承諾,他並沒有把何小泉對於神女的形象描述告知柳榮華。

  盡管如此,當想到傳說中的神女,他還是忍不住向柳榮華發起了這個話題“假如說,你妹是個長得國色天香的女子,我該如何獲得她的芳心?”

  “假如?你為何會如此假如?”柳榮華此時正以好奇的目光望著他。

  “唉,隻是閑著無聊說著玩玩嘛。”孫軼民掩飾道。

  “好吧!如果真是這樣的話,你得一步一步來。”柳榮華停頓了一下,吐了口煙,緩緩道,“首先很明顯你們隻能算網友,所以你想要追她就要從遊戲世界做起。”

  “這自然沒錯,”孫軼民道“隻是該如何做呢?”

  “你首先要做的就是在她心目中重塑起良好的形象,這是第一步。”

  “你是說之前我在慕容的挑戰麵前認慫退遊,讓她看不起我麽?”孫軼民問道。

  “沒錯,就是這個意思,”柳榮華點頭道,“在人類社會中女性大多屬於弱勢群體,因此她們的骨子裏是認同並且崇尚強者的。這一點,不管是在現實中還是在虛擬的遊戲世界都一樣。現實中女性崇拜那些有能力有才華的成功人士,遊戲中女孩子則認同具備高戰力,有強大的幫會勢力的遊戲大神。所以你要把自己的戰力搞上去,然後去挑戰慕容並且擊敗他。從而建立自己的強者形象,讓她對你刮目相看。這是泡妞的第一步。”

  “這……你明知道我沒有這個經濟能力,說了也是白說。動輒十幾萬的錢我可充不起。”孫軼民歎了口氣,一臉失落。

  “咦,你看起來好像很失落的樣子。”柳榮華一臉驚異,“我們剛才討論都是基於一個假設,就是說神女真的是你心目中的女神,但事實上這個可能性非常小,所以你根本不用操心這個。”

  孫軼民才明白自己失態,訕笑一下道“是啊,我就說著玩玩。”

  “充不充錢無所謂,回來陪我慢慢玩也行啊!”柳榮華哀求著。

  “我再考慮下吧……”孫軼民敷衍了一句。

  此刻的他心中雖然有了一點想要回到遊戲的想法,但殘酷的現實擺在眼前,他知道回去必然要麵對慕容的挑釁。這一點柳榮華是幫不了他的。

  另外,即便在遊戲中挽回了形象,但要在現實中見到神女或許並不容易。

  雖然神女是柳榮華妹妹,但畢竟這隻是屬於虛擬世界的一種人際關係。孫軼民記得在遊戲世界神女跟他明確表示過,不見網友。而且柳榮華也曾經向她提起一次見麵的邀請,但被拒絕了。

  但其實能見到神女一麵也不是他的終極目的。經過何小泉的口頭描述,神女無心的“神女形象”已經深入他心中。此時除了想見她一麵,滿足好奇心之外,他更想要與她建立一種親近的關係。

  不管目的怎樣,他要做的第一步,就是在她心目中重塑自己的形象。

  棄遊告別那一天,神女對孫軼民略帶輕蔑的態度一直令他耿耿於懷,他想如果要回到遊戲,決不能因為同樣的緣故再次被她看貶。他必須要挽回尊嚴,不再輕易被慕容羞辱,無需處處畏懼躲避他。為此,他必須具備足夠的實力能與慕容分庭抗禮,甚至,在競技場擊敗他。

  但很明顯,要做到這一點對孫軼民來說難如登天。即便他願意付出那麽多金錢以達到與慕容同等戰力,但在戰鬥技術上,也很難對抗慕容神乎其技的操作手法。

  而他也沒有時間也像慕容那樣,一天抽出幾個小時去練鍵盤操作。這對於他這個忙碌上班族來說根本不現實。想到這,孫軼民內心生出一些落寞。

  柳榮華以為他的要求令孫軼民感到了為難,便改口道“行了,我不強迫你了,大程序員!不玩就不玩,隨你。不過,我想請你幫個小忙。”

  “說吧,力所能及一定幫。”孫爽快答應道。

  “這事對你來說肯定不難,我想要請你幫我做一個計算機軟件。”柳榮華說。

  孫軼民笑了笑,揶揄道“你自己不就是計算機專業畢業的麽,能把計算機理論用來解釋戀愛哲學的人,編個小程序還需要別人幫忙?”

  “行了,你就別挖苦我。”柳榮華白了他一眼,說道,“你知道我學校學的東西都還給老師了。”

  “沒事,反正賣衣服也用不上微機原理和c++,”孫軼民笑道,“說來聽聽,隻要工程不是太大,我都可以免費幫你做。”

  “恰恰相反,工程小到不能再小。”柳榮華說,“我隻需要一個小程序,要求如下運行的時候窗口是隱藏的,當然我需要界麵的時候還是可以用快捷鍵調出來。它的功能是用來記錄電腦使用者打開過那些軟件,以及記錄鍵盤按鍵痕跡。”

  “你想要幹什麽?”程序員的敏感令孫軼民警覺的問。柳榮華這樣的要求令他有點意外。

  “別問那麽多,你就說你能不能做得出來?”柳追問。

  孫軼民思忖良久,答道“你如果想把這個東西放在別人電腦上,想要竊取什麽信息的話,恐怕是不實際的。大部分電腦都有安全軟件,即便我給你做出來了,也會被秒殺掉。”

  “我不裝別人電腦,我裝自己電腦。我可以讓安全軟件默許它運行,這樣總可以吧?”柳榮華問。

  這令孫軼民很不解“裝自己電腦上有什麽用?監控自己?難道你還有多重人格症狀不成?”

  “我說的自己電腦是公司裏的那些工作電腦。我現在懷疑員工上班不用功,趁我不在偷偷上網娛樂。我就想看看,他們都在電腦上做了什麽?”

  “不是有監控嗎?”孫軼民反問。

  “監控有時候看不清楚。查起來也很累。”柳榮華道。

  孫軼民陷入了沉思,良久後他拒絕了柳榮華“要做這麽一個東西對我來說完全沒問題,但我不會幫你做。”

  “為何?”柳榮華不解問。

  “我有我的職業操守,從不碰觸黑客行為底線。”孫軼民的解釋簡單明了。

  但柳榮華似乎仍不甘心“我付你工錢,就算幫兄弟一個忙?”

  “那也不行。”孫軼民再次拒絕了他,語氣斬釘截鐵。此時他在懷疑,柳榮華的目的或許並非他所說的那麽單純。

  柳榮華有點失望,哀歎道“唉……隻怪自己大學沒有好好讀書。”

  “唉,作為計算機專業的本科生,你居然對編程知識還處於一知半解的狀態,可憐啊。”孫軼民挖苦了一句。

  柳榮華白了一眼,歎了口氣,自嘲道“學到用時方很少啊,隻怪當年讀書的時候太貪玩。還是你覺悟高,半路改邪歸正,棄暗投明,學得一身好手藝,不枉費4年青春。”

  此時,孫軼民心中唯恐柳榮華對他存在誤解,便拍了拍他肩膀,再三跟他重申了一下緣由“不是我故意不幫你,是有些事我不能做。”

  事實上,這確實是他的職業道德底線。他的技術水平完全可以勝任何計算機軟件開發以及操作,但他之所以成為了程序員,而不是黑客,正是因為有這條底線存在於心中。

  對話不了了之。

  臨睡前想起柳榮華白天的不情之請,突然心生好奇。盡管他不能答應柳榮華的要求,但職業習慣讓他此刻還是在心底構思了一下這個軟件功能的實現過程。

  思來想去似乎隻有一種實現方法,那就是采用一種很久以前聽說的api函數,這函數似乎某一本舊書上出現過,但他編了那麽多年的程序,從未真正調用過。

  孫軼民從床底拖出行李箱,拿出從老家帶回來的幾本計算機書籍開始翻閱,最終在那本老古董的書籍《i

  dos程序設計》中找到了這個函數。

  這本書的名稱看起來極其普通,卻是他的珍藏。隻因這本書在市麵上已經無跡可尋。盡管類似名字的計算機書籍書在市場上俯拾皆是,卻唯獨隻有這一本,因作者講解思路的細致獨到而被孫軼民認可。並且書本內容涉及到了很多比較冷門的知識,是其他很多類似書籍上無法見到的。其中就包括今天他要找的這個“鉤子函數”。

  他溫習了一遍這個函數的作用其實是為了截獲指定一個線程的輸入消息,比如鍵盤鼠標消息,截獲之後,程序員可以分析該消息中包含的內容,比如按鍵消息中包含的鍵盤上哪一個鍵被按下的信息。分析完畢你還可以任意處理它你可以把消息原樣返還給原有線程,或者把消息做修改後返還,甚至你也可以攔截該消息——不予返還。【請到17k閱讀㊣版】

  這令孫軼民疑惑微軟為何要安排這樣一個api函數供開發者調用?這似乎完全沒有必要,而且引起了一定的安全風險。

  做了這麽多年的程序員,他還是第一次在構思過程中運用到了這個函數。

  作者在舉例說明這個函數如何使用的時候,順便提到了另一個發送虛擬窗口消息的api函數sendessage(),這引起了他的一點興趣。而這個函數,他在多年的編程生涯中,同樣一次都沒有用過。

  看著書上的函數原型與簡介,孫軼民腦海突然閃過一絲靈感。這靈感宛如流星劃過天幕般,在一瞬間,點亮了他思緒的夜空。

  他想起之前何小泉跟他講解的霸王pk禦冰的製勝要訣,在於操作手速要到達風馳電掣的地步。而這種操作速度,人肉是幾乎不可能做到的,但是如果可以用程序代替人手,發送虛擬按鍵到遊戲窗口,並且用程序代替人腦,獲取對方角色的狀態數據在並且瞬間做出判斷。那麽是有可能實現這樣的戰鬥速度的。

  如果能設計出這樣的輔助程序出來。就可以在戰力平等的情況下,戰勝那個慕容(秋心),從而在遊戲挽回麵子。然後,他就可以無障礙的繼續陪柳榮華愉快的遊戲了,也可以理直氣壯的去追逐那個神女無心,根本不用怕慕容挑釁。

  說幹就幹,隨意民重新從床上爬起來,在電腦上打開vc60。他耗費了一整夜時間編寫與測試,成功實現了用程序代替人手模擬按鍵的功能。但是問題是這並必能解決終極問題——自動戰鬥。

  因為這個功能隻是單向的傳輸按鍵信息,雖然可以提高按鍵速度,但是沒有給戰鬥過程賦予任何策略性。比如說,程序並不能在戰鬥過程中判斷自己的角色有沒有受到控製,以及受到了敵方哪一種控製技能的作用,從而決定要不要,以及要使用哪一種解控技能脫身。以及在決定使用某一技能之前,需要先確定這個技能當前正處於冷卻完成狀態——否則即便按下了按鍵也無法施放。再進一步說,程序在戰鬥過程中需要判斷對手的各種狀態,從而做出自己的戰鬥決策。

  說白了,當前問題的關鍵在於沒有數據可以判斷從而做出戰鬥決策。這些數據包括諸如角色自身以及對手的生命值,能量值剩餘量,某一技能的冷卻與否,角色自身的增益狀態與負麵狀態等等。

  而這些數據與狀態如何獲取呢?這是個問題。

  夜已深。孫軼民打算入睡,明天再繼續思考與解決這個問題。

  但滿腦子的興奮讓他一整夜都沒怎麽睡好。

  。