陳凱
所謂記事本,可以是Windows操作系統(tǒng)里的Notepad,也可以是其他操作系統(tǒng)里的各種文本編輯軟件。雖然說記事本的主要功能是記錄和編輯文字,但用記事本其實也可以制作出一些用于教學(xué)的簡單游戲??刹灰】春唵蔚挠浭卤?,它小巧簡單,制作和部署都十分方便,其貌似原始的界面反而會給人帶來新鮮感。一個用來瀏覽、記錄簡單文檔的記事本怎么實現(xiàn)游戲里的互動功能呢?希望本文能帶給大家一些非主流的創(chuàng)作啟發(fā)。
查找功能的利用
利用記事本的查找功能,就能夠?qū)崿F(xiàn)最簡單的交互。筆者編寫了一個叫做“神秘動物在哪里”的游戲,目標是通過解題線索,找出隱藏在文件中的小動物。
如圖1所示,這個文件乍看上去只是一個計算機基礎(chǔ)練習題庫,但第一句話“在文件中找出貓、猴子、鳥、魚、老鼠、蝴蝶、蜘蛛”其實就是游戲目標,而“1024*768分辨率單色位圖占存儲空間至少是( )KB”是完成游戲任務(wù)的線索。這個問題的答案是“96”,若接著利用記事本菜單里的“查找”功能查找關(guān)鍵字“96”,就能跳轉(zhuǎn)到文件的某一段。
于是就找到了鳥~( ̄v ̄)~(如圖2)。因為要尋找的對象都是ASCII碼組成的圖案,如魚是<`)))))<,猴子是@('_')@,如果沒有線索關(guān)鍵字的幫助,是很難在一大堆文字中發(fā)現(xiàn)搜索目標的,在找到某個動物的時候,就會看到尋找下一個動物的線索。注意,線索關(guān)鍵字的設(shè)置要靈活多變,不能讓玩家發(fā)現(xiàn)規(guī)律。
利用記事本的查找功能,就能實現(xiàn)類似AVG游戲的場景跳轉(zhuǎn)功能,創(chuàng)作者還能添加有趣的劇情并實現(xiàn)劇情跳轉(zhuǎn)的分支,甚至為錯誤的線索設(shè)立循環(huán)。
替換功能的利用
記事本的替換功能可以進一步加強記事本游戲的交互性。例如,圖3文件中有一大堆亂碼,需要玩家根據(jù)亂碼提供的線索,將看似亂碼的某些字符串替換成另一些字符串。
如果所有的替換都沒有出錯,那么最終就會得到“獎勵”,字符串會擺出一個圖案(如圖4)。
游戲的創(chuàng)作方法也很簡單,只要將一張現(xiàn)成的圖片,利用ASCII Art生成器(在網(wǎng)絡(luò)上搜索ASCII Art Generator關(guān)鍵字就能找到),生成字符串圖片,然后將連續(xù)或重復(fù)的字符替換成和教學(xué)知識點有關(guān)的線索關(guān)鍵字即可。
有時候,字符串替換過程直接就對應(yīng)著“編碼—解碼”過程。例如,若能正確將某些十六進制數(shù)碼轉(zhuǎn)換成二進制數(shù)碼,就能看見心的形狀(如上頁圖5)。這個例子不僅涉及不同數(shù)制之間的轉(zhuǎn)換、信息編碼解碼、位圖等教學(xué)知識,在操作過程中,還需要考慮如何安排正確的替換次序。任務(wù)貌似簡單,解答起來卻需要有一定的“計算思維”,如果替換順序錯誤,就無法得到預(yù)想的效果。
當圖片以ASCII碼點陣形式呈現(xiàn)在記事本中的時候,“替換”功能可以起到簡易“圖形”編輯器的作用。例如,將“多色”的“位圖”轉(zhuǎn)換為“單色”的“位圖”,橫向拉長或壓扁“位圖”(不能縱向變形),去除“位圖”中的信息冗余實現(xiàn)文件壓縮,甚至是制作簡單的動畫。如圖6所示,只要將“.*”全部替換成“*.”,就能讓記事本中的飛機“動”起來,有興趣的話還能加上圖畫背景。關(guān)于記事本中的字符串替換功能的更多潛能,期待有興趣的朋友進一步開發(fā)探索。
刪除功能的利用
用記事本的刪除功能可以做出簡單的消除類游戲。“擴展名消消樂”游戲的目標是,根據(jù)要求找到并消除掉某個關(guān)鍵字,然后觀察字符串中新出現(xiàn)的可以消除的關(guān)鍵字。例如,在字符串“JGIFPAWMVRBMPNGPAZIPRVMWAVMP4P3IG”中刪除掉“PNG”,就能將字符串變成“JGIFPAWMVRBMPAZIPRVMWAVMP4P3IG”,然后就能找到“BMP”,按同樣的方法試著逐漸將整個字符串清空。但是,如果字符串設(shè)計得不好,就有可能誤導(dǎo)玩家走入歧途,以上述字符串為例,若一開始刪除的是“BMP”,就沒有辦法將游戲進行到最后。因此,教師可以設(shè)法將正確消除字符串的線索和教學(xué)內(nèi)容結(jié)合在一起。
自動換行功能的利用
記事本的自動換行功能有著意想不到的打亂文字的效果。這個游戲叫“混亂擴展名”(如圖7),目標是把各種擴展名在縱列上對齊。
然而,文件初始狀態(tài)卻是圖8所示的樣子。
玩家要將缺失的字母填到文件中,要求只能添加字母不能刪除,同時要盡量使所有擴展名的三個字母在縱列上對齊。實際嘗試后才知道,因為記事本設(shè)置了自動換行,每添加一個字母,其他字母的位置就會發(fā)生變化,要將所有字母對齊,實在不是件容易的事情。
自動換行的另一個效果是,若改變記事本窗口大小,就會使記事本中的內(nèi)容產(chǎn)生出好像動畫片一般的效果。如圖9所示,巧妙安排一個只有“0”和“1”兩種符號的字符串,當拖動記事本右邊框,窗口逐步變窄時,記事本的最左面縱向第一列字符就產(chǎn)生二進制計數(shù)器的效果,自下向上讀,數(shù)碼從000、001、010自動增加變成111。為何會有這種效果,這是一個值得探索的謎語。
多個記事本的利用
如果使用多個記事本,創(chuàng)作游戲的手段就更多了??梢杂脙蓚€記事本來玩“大家來找茬”、多個記事本文件來拼圖,甚至可以將不同類型的謎語放在不同的文件中,通過某些線索串聯(lián)起來,制作成“大型”解謎游戲。因為課堂時間有限,一些耗時比較長的探索任務(wù)可以作為自主學(xué)習任務(wù)安排在假期中。筆者設(shè)計了一個游戲,在桌面上并排三個記事本(如圖10),按順序按兩次“Alt+Tab”鍵,一次“Page Down”鍵,三個記事本就能以“空,空,星”(表示001)、“空,星,空”(表示010)、“空,星,星”(表示011)的方式來進行二進制計數(shù),并一直計數(shù)到“星,星,星”(表示111)??墒?,在記事本中究竟如何安排空行和星號才能實現(xiàn)這樣的效果呢?方法并不難,可以自己思考一下。
看似簡單的記事本也可以制作出不簡單的游戲,希望大家讀完文章后,能親自動手試一下。endprint