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