• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Codejie's C++ Space

            Using C++

            I;P : Online Manual

            快捷鏈接

                下載地址

                相關隨筆

             

            正文

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

            ip_1 ip_2

             

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

            ip_3

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

            ip_8 ip_9

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

            ip_10

                一, 箱子

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

            box_abox_bbox_cbox_d

             

                二, 指令

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

            lines_small_title_alines_small_title_blines_small_title_clines_small_title_d

                由于輸入列有兩種狀態: 輸入和展示, 因此游戲中每個指令都有兩種不同的形式.

                點擊任何一個輸入列(f0~f1), 都可以切換其到輸入狀態, 此時可以點擊指定的控制框或者判斷框, 以選擇自己所需的各個指令.

            columns

                "控制指令"用于控制黑色的"托盤"的行為:

                lines_small_code_right 向右移動一格;

                lines_small_code_left 向左移動一格;

               lines_small_code_act  "充電"; 當"托盤"被要求"充電"時, 如果其上放置了"箱子", "托盤"將"釋放其上的"箱子", "箱子"將自動移動到"最上"可以到達的位置; 反之, 如果"托盤"上沒有任何的"箱子", 托盤將嘗試從其所在的列中"抓取"一個箱子, 如果沒有, 則什么也不做;

                lines_small_code_call_a 調用f0輸入列

                lines_small_code_call_b 調用f1輸入列

                lines_small_code_call_c 調用f2輸入列

                lines_small_code_call_d 調用f3輸入列

             

                "判斷指令"用于判斷當前"托盤"上的"箱子"狀態的;  當"判斷"結果為"真"時, 游戲將執行其后的"控制指令", 反之不執行其后的"指令", 而是調用下一個判斷框中的"判斷指令"或是下一個控制框中的"指令"; 也就是說, "判斷指令"只能影響到其后的一個"控制指令", 即一對一關系.

                panel_code_if_a lines_small_code_if_a lines_big_code_if_a 判斷"托盤"上的箱子為"藍色"箱子;

                panel_code_if_b lines_small_code_if_b lines_big_code_if_b 判斷"托盤"上的箱子為"綠色"箱子;

                panel_code_if_c lines_small_code_if_c lines_big_code_if_c 判斷"托盤"上的箱子為"紅色"箱子;

                panel_code_if_d lines_small_code_if_d lines_big_code_if_d 判斷"托盤"上的箱子為"黃色"箱子;

                panel_code_if_any lines_small_code_if_any lines_big_code_if_any 判斷"托盤"上的箱子為任意顏色的箱子;

                panel_code_if_none lines_small_code_if_none lines_big_code_if_none 判斷"托盤"上的箱子沒有箱子;

             

                游戲每次都從f0輸入列的第一個指令框開始安裝順序執行, 因此必須指令必須從f0開始輸入, 當執行過程中碰到一個'空'的控制指令時, 即調用的控制框中沒有任何指令時, 執行過程停止, 并顯示'Code Finished'指示.    

                由上面內容我們可以看出, 實際輸入過程就是編寫"代碼"的過程, "判斷指令"即為'if'判斷代碼, 而'控制指令'即為要執行的命令代碼, 而"輸入列"就對應了代碼中的函數.

                比如下面截圖可以轉換成相應的代碼:

            cods

             

            f0() {

                if (托盤上的箱子==白色) {

                    充電();

                }

                if (托盤上的箱子 == 黃色) {

                    左移();

                }

                ....

                if (托盤上有箱子) {

                    調用f1();

                }

            }       

                三, 執行結果

                I;P中有四種執行結果;

                成功: 將箱子按照關卡要求的位置擺放;

            result_succ

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

            result_finished

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

            result_failed

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

            result_overflow

             

                四, 分數

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

                如下圖, 30/24中, 前面的分數為當前指令得分, 后面的24為關卡標準分數.

            ip_5

                五, 菜單項

                I;P有三級菜單, 根據不同的場景顯示相關的菜單項;

                cmd_clean_up : 清除當前指令

                cmd_more_up: 顯示更多菜單項

                cmd_info_up: 顯示關卡信息

               cmd_setup_up : 顯示游戲配置項

               cmd_close_up : 退出當前關卡, 切換至關卡選擇界面

                cmd_back_up: 返回當前關卡

               cmd_next_up : 退出當前關卡, 切換至下一關卡

                cmd_share_up : 分享當前通關界面

            ip_6

            cmd_enable_debug_downcmd_enable_debug_checked : 設置/取消Debug狀態, 此狀態開啟, 可以使用'單步執行'功能;

            cmd_debug_down : 處于Debug狀態時, 執行一條指令, 執行后自動暫停;

            cmd_debug_over_up : 處于Debug狀態時, 不再單步執行指令, 而是直接執行完畢;

                六, 配置項

                游戲有三個配置項:

                'Clock Speed': 時鐘速度, 就是指令執行速度; 有三個檔位可以選擇;

                'Music': 開啟或關閉游戲背景音樂;

                'Sound': 開啟或關閉游戲內置音效;

            ip_7

             

                七, 交流

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

             

            wechat

               

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

            posted on 2014-03-07 13:54 codejie 閱讀(1116) 評論(2)  編輯 收藏 引用 所屬分類: I;P

            評論

            # re: I;P : Online Manual 2014-03-28 21:47 江育齊

            關於棧的問題 問下最多訂用次數和深度?  回復  更多評論   

            # re: I;P : Online Manual 2014-03-28 23:30 codejie

            @江育齊
            目前深度是512, 超過會返回"stack overflow"錯誤; 實際情況下會有無限循環的可能, 比如兩個都為空的fx, 相互調用.  回復  更多評論   

            公告

            Using C++

            導航

            統計

            留言簿(73)

            隨筆分類(513)

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            国产福利电影一区二区三区久久久久成人精品综合 | 一本久久a久久精品综合香蕉| 91精品婷婷国产综合久久| 久久成人永久免费播放| 国产A三级久久精品| 嫩草影院久久国产精品| 一极黄色视频久久网站| 国产精品久久久久…| 一本久久精品一区二区| 99re久久精品国产首页2020| 久久夜色撩人精品国产小说| 久久A级毛片免费观看| 亚洲国产成人久久精品99| 久久久精品国产sm调教网站| 香港aa三级久久三级老师2021国产三级精品三级在 | 久久综合给合久久狠狠狠97色69 | 91精品国产色综久久 | 一本久久久久久久| 亚洲国产精品无码久久SM| 久久人妻少妇嫩草AV蜜桃| 久久91精品国产91久久户| 亚洲精品无码久久久久久| 中文精品久久久久人妻| 久久AAAA片一区二区| 久久精品国产一区| 99久久人妻无码精品系列| 香蕉久久av一区二区三区| 少妇人妻综合久久中文字幕| 一本久道久久综合狠狠躁AV| 久久综合给合综合久久| 无码人妻少妇久久中文字幕| 欧美日韩中文字幕久久久不卡| 久久99精品国产99久久6| 国产精品伦理久久久久久| 91超碰碰碰碰久久久久久综合| 亚洲一区二区三区日本久久九| 久久精品嫩草影院| 大美女久久久久久j久久| 国产精品免费久久久久影院| 久久精品国产亚洲一区二区三区| 99久久婷婷国产综合精品草原|