快捷鏈接
下載地址
相關隨筆
正文
I;P (I'm a Programmer)是一款Android平臺下類似"推箱子"的益智游戲, 其玩法是通過邏輯判斷和控制完成游戲各關卡設定, 當玩家將游戲中的'箱子'安裝關卡要求的方式擺放時即為通關. 由于游戲本身是傾向于程序員, 工程師或者算法愛好者的, 而且我也認為通過此游戲可以培養和鍛煉個人的"編程思維", 因此游戲的名字在一開始就被定為 I;P (I'm a Programmer)了, 這個全稱到縮寫的過程也就構成了游戲的起始畫面.

I;P關卡一共分為六大類, 分別是'Tutorials'(教程),'Easy'(容易), 'Hard'(難), 'Crazy'(瘋狂), 'Impossible'(不可能)和'Unsolved'(未解決)[(原諒我界面全部都是英文, 因為現在真沒時間加載中文字庫...)], 理論上除第一個是教程外, 后面的關卡是越來越難. 目前由于是Preview階段, I;P的關卡有限, 且分類還是比較混亂的, 后續會根據反饋進行相應的調整.

這里建議先從'Tutorias'開始, 因為這是一個包含三個關卡的教程包. 游戲將引導你通過三個關卡, 并在過程中提示該如何使用游戲中的各個元素.

當選擇一個關卡后, I;P進入關卡界面, 在此界面中, 主要元素為左上的"箱子初始"擺放, 右上的"箱子目標"擺放; 而左下的四條長方形構成的區域為玩家"控制指令區", 可以在此區域內輸入你的"指令"集, 以"控制"上方"箱子"區域中的"托盤"來移動相應的"箱子"; 界面中最右側是"菜單"區域, 游戲中的菜單都集中在此, 并會根據不同場景顯示不同的菜單. 需要注意的是整個界面的最右下方的"運行"按鈕 -- 當"指令"輸入完成時, 點擊此鈕開始執行你的指令, 而在執行過程中的任何時候或者執行完畢, 點擊此鈕, 界面將恢復到其初始狀態.

一, 箱子
I;P中一共有四種箱子, 分別由'藍色','綠色','紅色'和'黃色'四種顏色標識. 游戲規則也要求在擺放箱子時'顏色'要一致.




二, 指令
I;P提供了四個輸入列(從f0到f3), 每一個列都包含了八個控制框和八個判斷框, 就是說一個列最多可以包含十六個指令. 但各個輸入列可以相互調用, 比如在f0中可以輸入'f1', 意味著f0將調用f1中的指令.




由于輸入列有兩種狀態: 輸入和展示, 因此游戲中每個指令都有兩種不同的形式.
點擊任何一個輸入列(f0~f1), 都可以切換其到輸入狀態, 此時可以點擊指定的控制框或者判斷框, 以選擇自己所需的各個指令.

"控制指令"用于控制黑色的"托盤"的行為:
向右移動一格;
向左移動一格;
"充電"; 當"托盤"被要求"充電"時, 如果其上放置了"箱子", "托盤"將"釋放其上的"箱子", "箱子"將自動移動到"最上"可以到達的位置; 反之, 如果"托盤"上沒有任何的"箱子", 托盤將嘗試從其所在的列中"抓取"一個箱子, 如果沒有, 則什么也不做;
調用f0輸入列
調用f1輸入列
調用f2輸入列
調用f3輸入列
"判斷指令"用于判斷當前"托盤"上的"箱子"狀態的; 當"判斷"結果為"真"時, 游戲將執行其后的"控制指令", 反之不執行其后的"指令", 而是調用下一個判斷框中的"判斷指令"或是下一個控制框中的"指令"; 也就是說, "判斷指令"只能影響到其后的一個"控制指令", 即一對一關系.
判斷"托盤"上的箱子為"藍色"箱子;
判斷"托盤"上的箱子為"綠色"箱子;
判斷"托盤"上的箱子為"紅色"箱子;
判斷"托盤"上的箱子為"黃色"箱子;
判斷"托盤"上的箱子為任意顏色的箱子;
判斷"托盤"上的箱子沒有箱子;
游戲每次都從f0輸入列的第一個指令框開始安裝順序執行, 因此必須指令必須從f0開始輸入, 當執行過程中碰到一個'空'的控制指令時, 即調用的控制框中沒有任何指令時, 執行過程停止, 并顯示'Code Finished'指示.
由上面內容我們可以看出, 實際輸入過程就是編寫"代碼"的過程, "判斷指令"即為'if'判斷代碼, 而'控制指令'即為要執行的命令代碼, 而"輸入列"就對應了代碼中的函數.
比如下面截圖可以轉換成相應的代碼:

f0() {
if (托盤上的箱子==白色) {
充電();
}
if (托盤上的箱子 == 黃色) {
左移();
}
....
if (托盤上有箱子) {
調用f1();
}
}
三, 執行結果
I;P中有四種執行結果;
成功: 將箱子按照關卡要求的位置擺放;

執行完畢: 指令全部執行完畢, 但未完成關卡要求;

指令異常: 指令執行時使"托盤"移動出邊界;

棧溢出: 輸入列調用次數過多;

四, 分數
當關卡通過時, 游戲會顯示當前指令的得分已經關卡的標準分數, 這個分數是越小越好, 因為分數是跟指令數量和類型相關的, 越少的指令通關也就越好. 注意的是, 根據指令計算分數時, 未執行到的指令一樣會被統計, 因此需要注意刪除無用指令, 以降低通關分數.
如下圖, 30/24中, 前面的分數為當前指令得分, 后面的24為關卡標準分數.

五, 菜單項
I;P有三級菜單, 根據不同的場景顯示相關的菜單項;
: 清除當前指令
: 顯示更多菜單項
: 顯示關卡信息
: 顯示游戲配置項
: 退出當前關卡, 切換至關卡選擇界面
: 返回當前關卡
: 退出當前關卡, 切換至下一關卡
: 分享當前通關界面


: 設置/取消Debug狀態, 此狀態開啟, 可以使用'單步執行'功能;
: 處于Debug狀態時, 執行一條指令, 執行后自動暫停;
: 處于Debug狀態時, 不再單步執行指令, 而是直接執行完畢;
六, 配置項
游戲有三個配置項:
'Clock Speed': 時鐘速度, 就是指令執行速度; 有三個檔位可以選擇;
'Music': 開啟或關閉游戲背景音樂;
'Sound': 開啟或關閉游戲內置音效;

七, 交流
通過微信掃描下面二維碼, 即可加入'I;P'臨時群;

有任何問題和建議, 請跟帖或發mail來~謝謝了~