溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

易語言如何制作推箱子小游戲

發布時間:2021-06-16 15:28:10 來源:億速云 閱讀:263 作者:小新 欄目:編程語言

小編給大家分享一下易語言如何制作推箱子小游戲,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

DLL命令表

.版本 2
.DLL命令 寫配置文件, 整數型, , "WritePrivateProfileStringA", , 如果配置文件不存在則將被創建
  .參數 小節名, 文本型, , 就是用中括號括起來的內容
  .參數 項目名, 文本型, , 就是等號前邊的內容
  .參數 項目值, 文本型, , 就是等號后面的內容
  .參數 文件名, 文本型, , 就是你要寫入的那個文件
.DLL命令 讀配置整數, 整數型, , "GetPrivateProfileIntA"
  .參數 小節名, 文本型
  .參數 項目名, 文本型
  .參數 默認值, 整數型, , 如果找不到對應的項目則返回該值
  .參數 文件名, 文本型
.DLL命令 運行文件, 整數型, "shell32.dll", "ShellExecuteA"
  .參數 hwnd, 整數型
  .參數 lpOperation, 文本型, , "open","print","explore" 
  .參數 lpFile, 文本型
  .參數 pParameters, 文本型
  .參數 lpDirectory, 文本型
  .參數 nShowCmd, 整數型, , 9
.DLL命令 讀配置文本, 整數型, , "GetPrivateProfileStringA", , 備注:該函數返回的值是被讀文本的字符個數,實際上該文本被存放在參數“緩沖容器”里面,利用“取文本左邊”命令可以得到需要的文本。
  .參數 小節名, 文本型
  .參數 項目名, 文本型
  .參數 默認值, 文本型, , 可以為“”
  .參數 緩沖容器, 文本型, , 一般將容器的大小設定為255
  .參數 緩沖容積, 整數型, , 應與緩沖容器的大小相等255
  .參數 文件名, 文本型

常量表

.版本 2
.常量 游戲版本號, "“推箱子2.2”"
.常量 數據庫名, "“E-BOX”"
.常量 方案類型, "“方案類型”"
.常量 方案名稱, "“方案名稱”"
.常量 數據1, "“數據1”"
.常量 數據2, "“數據2”"
.常量 數據3, "“數據3”"
.常量 數據4, "“數據4”"
.常量 數據5, "“數據5”"
.常量 數據6, "“數據6”"
.常量 數據7, "“數據7”"
.常量 數據8, "“數據8”"
.常量 場景方案, "“場景方案”"
.常量 小人方案, "“小人方案”"
.常量 音樂方案, "“音樂方案”"
.常量 游戲地圖, "“游戲地圖”"
.常量 默認方案, "“默認方案”"

全局變量表

.版本 2
.全局變量 保存標志, 整數型
.全局變量 背景數組, 整數型, , "14,16", 背景數組
.全局變量 總圖片號組, 整數型, , "256", 用來保存游戲中用到的圖片的圖片號
.全局變量 撤消數組, 撤消類型, , "0", 用來實現多次撤消操作
.全局變量 正在錄像中, 邏輯型
.全局變量 錄像播放中, 邏輯型
.全局變量 錄像數組, 整數型, , "0"
.全局變量 錄像地圖數據, 字節集
.全局變量 臨時地圖數據, 字節集
.全局變量 第一次畫, 邏輯型
.全局變量 選擇關卡, 整數型
.全局變量 移動音樂, 字節集
.全局變量 結束音樂, 字節集
.全局變量 推箱音樂, 字節集
.全局變量 重來音樂, 字節集
.全局變量 禁止音樂, 字節集
.全局變量 點擊音樂, 字節集
.全局變量 撤消音樂, 字節集
.全局變量 背景音樂, 字節集
.全局變量 小人方案名, 文本型
.全局變量 場景方案名, 文本型
.全局變量 音樂方案名, 文本型
.全局變量 方案被改變, 邏輯型

自定義數據類型表

.版本 2
.數據類型 撤消類型
  .成員 x, 整數型
  .成員 y, 整數型
  .成員 ifmove, 邏輯型
.數據類型 位置類型
  .成員 x, 整數型
  .成員 y, 整數型
.數據類型 數據類型2
  .成員 步數, 整數型
  .成員 位置, 位置類型
  .成員 方向, 整數型
  .成員 上一步, 位置類型

圖形處理程序集代碼

.版本 2
.程序集 圖形處理程序集
.程序集變量 循環變量1, 整數型
.程序集變量 循環變量2, 整數型
.子程序 載入圖片號, 邏輯型, , 返回真則圖片全部載入成功
.參數 類型, 文本型
.參數 方案, 文本型
.局部變量 畫片數, 整數型
重定義數組 (總圖片號組, 真, 256)
.判斷開始 (類型 = #場景方案)
  .如果 (場景方案名 = “”)
    場景方案名 = #默認方案
    總圖片號組 [1] = 載入圖片 (#背景圖)
    總圖片號組 [2] = 載入圖片 (#墻圖)
    總圖片號組 [3] = 載入圖片 (#地板圖)
    總圖片號組 [4] = 載入圖片 (#黃箱子圖)
    總圖片號組 [5] = 載入圖片 (#箱子位置圖)
    總圖片號組 [8] = 載入圖片 (#紅箱子圖)
  .否則
    跳到 (1)
    .如果 (查找 (讀 (#方案類型) = #場景方案 且 讀 (#方案名稱) = 場景方案名) = 真)
      總圖片號組 [1] = 載入圖片 (讀 (#數據1))
      總圖片號組 [2] = 載入圖片 (讀 (#數據2))
      總圖片號組 [3] = 載入圖片 (讀 (#數據3))
      總圖片號組 [4] = 載入圖片 (讀 (#數據4))
      總圖片號組 [5] = 載入圖片 (讀 (#數據5))
      總圖片號組 [8] = 載入圖片 (讀 (#數據6))
    .否則
      總圖片號組 [1] = 載入圖片 (#背景圖)
      總圖片號組 [2] = 載入圖片 (#墻圖)
      總圖片號組 [3] = 載入圖片 (#地板圖)
      總圖片號組 [4] = 載入圖片 (#黃箱子圖)
      總圖片號組 [5] = 載入圖片 (#箱子位置圖)
      總圖片號組 [8] = 載入圖片 (#紅箱子圖)
    .如果結束
  .如果結束
  .如果真 (總圖片號組 [1] = 0 或 總圖片號組 [2] = 0 或 總圖片號組 [3] = 0 或 總圖片號組 [4] = 0 或 總圖片號組 [5] = 0 或 總圖片號組 [8] = 0)
    返回 (假)
  .如果真結束
  返回 (真)
.判斷 (類型 = #小人方案)
  .如果 (小人方案名 = “”)
    小人方案名 = #默認方案
    總圖片號組 [52] = 載入圖片 (#上1)
    總圖片號組 [53] = 載入圖片 (#上2)
    總圖片號組 [54] = 載入圖片 (#左1)
    總圖片號組 [55] = 載入圖片 (#左2)
    總圖片號組 [56] = 載入圖片 (#右1)
    總圖片號組 [57] = 載入圖片 (#右2)
    總圖片號組 [58] = 載入圖片 (#下1)
    總圖片號組 [59] = 載入圖片 (#下2)
  .否則
    跳到 (1)
    .如果 (查找 (讀 (#方案類型) = #小人方案 且 讀 (#方案名稱) = 小人方案名) = 真)
      總圖片號組 [52] = 載入圖片 (讀 (#數據1))
      總圖片號組 [53] = 載入圖片 (讀 (#數據2))
      總圖片號組 [54] = 載入圖片 (讀 (#數據3))
      總圖片號組 [55] = 載入圖片 (讀 (#數據4))
      總圖片號組 [56] = 載入圖片 (讀 (#數據5))
      總圖片號組 [57] = 載入圖片 (讀 (#數據6))
      總圖片號組 [58] = 載入圖片 (讀 (#數據7))
      總圖片號組 [59] = 載入圖片 (讀 (#數據8))
    .否則
      總圖片號組 [52] = 載入圖片 (#上1)
      總圖片號組 [53] = 載入圖片 (#上2)
      總圖片號組 [54] = 載入圖片 (#左1)
      總圖片號組 [55] = 載入圖片 (#左2)
      總圖片號組 [56] = 載入圖片 (#右1)
      總圖片號組 [57] = 載入圖片 (#右2)
      總圖片號組 [58] = 載入圖片 (#下1)
      總圖片號組 [59] = 載入圖片 (#下2)
    .如果結束
  .如果結束
  .如果真 (總圖片號組 [52] = 0 或 總圖片號組 [53] = 0 或 總圖片號組 [54] = 0 或 總圖片號組 [55] = 0 或 總圖片號組 [56] = 0 或 總圖片號組 [57] = 0 或 總圖片號組 [58] = 0 或 總圖片號組 [59] = 0)
    返回 (假)
  .如果真結束
  總圖片號組 [62] = 總圖片號組 [52]
  總圖片號組 [63] = 總圖片號組 [53]
  總圖片號組 [64] = 總圖片號組 [54]
  總圖片號組 [65] = 總圖片號組 [55]
  總圖片號組 [66] = 總圖片號組 [56]
  總圖片號組 [67] = 總圖片號組 [57]
  總圖片號組 [68] = 總圖片號組 [58]
  總圖片號組 [69] = 總圖片號組 [59]
  返回 (真)
.默認
  返回 (假)
.判斷結束
返回 (真)
畫片數 = 0
.計次循環首 (256, 循環變量1)
  .如果真 (總圖片號組 [循環變量1] > 0)
    畫片數 = 畫片數 + 1
  .如果真結束
.計次循環尾 ()
.如果 (畫片數 ≠ 14 + 8)
  返回 (假)
.否則
  返回 (真)
.如果結束
.子程序 載入音樂, 邏輯型
.如果 (音樂方案名 = “”)
  音樂方案名 = #默認方案
  移動音樂 = #移動音樂
  結束音樂 = #結束音樂
  推箱音樂 = #推箱音樂
  重來音樂 = #重來音樂
  禁止音樂 = #禁止音樂
  點擊音樂 = #點擊音樂
  撤消音樂 = #撤消音樂
  背景音樂 = #背景音樂
.否則
  跳到 (1)
  .如果 (查找 (讀 (#方案類型) = #音樂方案 且 讀 (#方案名稱) = 音樂方案名) = 真)
    移動音樂 = 讀 (#數據1)
    結束音樂 = 讀 (#數據2)
    推箱音樂 = 讀 (#數據3)
    重來音樂 = 讀 (#數據4)
    禁止音樂 = 讀 (#數據5)
    點擊音樂 = 讀 (#數據6)
    撤消音樂 = 讀 (#數據7)
    背景音樂 = 讀 (#數據8)
  .否則
    移動音樂 = #移動音樂
    結束音樂 = #結束音樂
    推箱音樂 = #推箱音樂
    重來音樂 = #重來音樂
    禁止音樂 = #禁止音樂
    點擊音樂 = #點擊音樂
    撤消音樂 = #撤消音樂
    背景音樂 = #背景音樂
  .如果結束
.如果結束
返回 (真)
.子程序 畫圖片
.參數 橫坐標, 整數型
.參數 縱坐標, 整數型
.參數 畫片編號, 整數型
.如果真 (總圖片號組 [畫片編號 + 1] = 0)
  返回 ()
.如果真結束
_啟動窗口.畫板1.畫圖片 (總圖片號組 [畫片編號 + 1], (縱坐標 - 1) × 30, (橫坐標 - 1) × 30, 30, 30, 1)
.子程序 畫背景, , , 這個過程占用時間太多,起碼用去"_畫板1_按下某鍵"事件99%的時間,造成了畫面延時,需改進.
.參數 快速畫, 邏輯型
.局部變量 臨時循環變量1, 整數型
.局部變量 臨時循環變量2, 整數型
處理事件 ()
_啟動窗口.時鐘1.時鐘周期 = 0
.計次循環首 (14, 循環變量1)
  .計次循環首 (16, 循環變量2)
    .如果真 (快速畫 = 真)
      .如果真 (背景數組 [循環變量1] [循環變量2] = 0 或 背景數組 [循環變量1] [循環變量2] = 1)
        到循環尾 ()
      .如果真結束
    .如果真結束
    畫圖片 (循環變量1, 循環變量2, 背景數組 [循環變量1] [循環變量2])
  .計次循環尾 ()
.計次循環尾 ()
第一次畫 = 假
_啟動窗口.時鐘1.時鐘周期 = 500
.子程序 卸載圖片號
.計次循環首 (256, 循環變量1)
  .如果真 (總圖片號組 [循環變量1] > 0)
    卸載圖片 (總圖片號組 [循環變量1])
  .如果真結束
.計次循環尾 ()
.子程序 創建數據庫, 邏輯型
.局部變量 字段, 字段信息, , "10"
.如果真 (文件是否存在 (#數據庫名 + “.edb”) = 假)
  字段 [1].名稱 = #方案類型
  字段 [1].類型 = #文本型
  字段 [1].最大文本長度 = 8
  字段 [2].名稱 = #方案名稱
  字段 [2].類型 = #文本型
  字段 [2].最大文本長度 = 128
  字段 [3].名稱 = #數據1
  字段 [3].類型 = #字節集型
  字段 [4].名稱 = #數據2
  字段 [4].類型 = #字節集型
  字段 [5].名稱 = #數據3
  字段 [5].類型 = #字節集型
  字段 [6].名稱 = #數據4
  字段 [6].類型 = #字節集型
  字段 [7].名稱 = #數據5
  字段 [7].類型 = #字節集型
  字段 [8].名稱 = #數據6
  字段 [8].類型 = #字節集型
  字段 [9].名稱 = #數據7
  字段 [9].類型 = #字節集型
  字段 [10].名稱 = #數據8
  字段 [10].類型 = #字節集型
  .如果真 (創建 (#數據庫名, 字段) = 假)
    返回 (假)
  .如果真結束
.如果真結束
.如果真 (打開 (#數據庫名, , , , , , ) = 假)
  返回 (假)
.如果真結束
返回 (真)
選擇方案窗口程序集
.版本 2
.程序集 選擇方案窗口程序集
.子程序 _選擇方案窗口_創建完畢
跳到 (1)
.如果真 (查找 (讀 (#方案類型) = #場景方案 且 讀 (#方案名稱) = #默認方案) = 假)
  加記錄 (#場景方案, #默認方案, #背景圖, #墻圖, #地板圖, #黃箱子圖, #箱子位置圖, #紅箱子圖)
.如果真結束
更新 (場景方案組合框, #場景方案)
跳到 (1)
.如果真 (查找 (讀 (#方案類型) = #小人方案 且 讀 (#方案名稱) = #默認方案) = 假)
  加記錄 (#小人方案, #默認方案, #上1, #上2, #下1, #下2, #左1, #左2, #右1, #右2)
.如果真結束
更新 (小人方案組合框, #小人方案)
跳到 (1)
.如果真 (查找 (讀 (#方案類型) = #音樂方案 且 讀 (#方案名稱) = #默認方案) = 假)
  加記錄 (#音樂方案, #默認方案, #移動音樂, #結束音樂, #推箱音樂, #重來音樂, #禁止音樂, #點擊音樂, #撤消音樂, #背景音樂)
.如果真結束
更新 (音樂方案組合框, #音樂方案)
方案被改變 = 假
.子程序 更新
.參數 組合框, 組合框
.參數 類型, 文本型
.局部變量 臨時變量, 整數型
跳到 (1)
組合框.清空 ()
.計次循環首 (取記錄數 (), 臨時變量)
  .如果真 (查找 (讀 (#方案類型) = 類型) = 真)
    組合框.加入項目 (讀 (#方案名稱), 取記錄號 ())
    .如果真 (跳過 () = 假)
      跳出循環 ()
    .如果真結束
  .如果真結束
  組合框.現行選中項 = 0
.計次循環尾 ()
.子程序 _按鈕1_被單擊
場景方案名 = 場景方案組合框.取項目文本 (場景方案組合框.現行選中項)
小人方案名 = 小人方案組合框.取項目文本 (小人方案組合框.現行選中項)
音樂方案名 = 音樂方案組合框.取項目文本 (音樂方案組合框.現行選中項)
方案被改變 = 真
銷毀 ()
.子程序 _按鈕2_被單擊
方案被改變 = 假
銷毀 ()

推箱子游戲啟動窗口的代碼

.版本 2
.支持庫 iext
.程序集 啟動窗口程序集
.程序集變量 上步橫坐標, 整數型, , , 上一次走的坐標x
.程序集變量 上步縱坐標, 整數型, , , 上一次走的坐標y
.程序集變量 當前橫坐標, 整數型, , , 當前位置x
.程序集變量 當前縱坐標, 整數型, , , 當前位置y
.程序集變量 上步箱子移到, 邏輯型, , , 上一次走時是否移動了箱子
.程序集變量 當前目錄, 文本型, , , 當前目錄
.程序集變量 當前關數, 整數型, , , 當前關數
.程序集變量 錯誤箱子數, 整數型, , , 未正確放置的箱子數
.程序集變量 小人步數, 整數型, , , 小人走的步數
.程序集變量 行走路徑, 整數型, , "0", 小人的自動尋路路徑數組
.程序集變量 不自動尋路, 邏輯型, , , 在小人行走時不自動尋路
.程序集變量 行走計數, 整數型, , , 小人行走計數
.程序集變量 聲音效果, 邏輯型, , , 是否開啟聲音效果
.程序集變量 移動音樂開關, 整數型, , , N 0為播放 1為不播放
.子程序 讀取文件, 整數型
.局部變量 文件號, 整數型
.局部變量 循環變量1, 整數型
.局部變量 循環變量2, 整數型
.局部變量 字節集長度, 整數型
.局部變量 變量, 整數型, , , funre
.局部變量 關數名稱, 文本型, , , 當前關數
.局部變量 字節集變量, 字節集
.局部變量 記次變量, 整數型
.局部變量 地圖字節集, 字節集
變量 = 1
小人步數 = 0
關數名稱 = 到文本 (當前關數)
跳到 (1)
.如果真 (查找 (讀 (#方案類型) = #游戲地圖 且 讀 (#方案名稱) = 關數名稱) = 假)
  ' 如果 (filenum = 1)
  ' 如果真 (加記錄 (#游戲地圖, “1”, #數據1) = 假)
  ' funre = 0
  .如果真 (當前關數 > 100)
    當前關數 = 1
  .如果真結束
  跳到 (1)
  .如果真 (查找 (讀 (#方案類型) = #游戲地圖 且 讀 (#方案名稱) = 到文本 (當前關數)) = 假)
    地圖字節集 = 取字節集中間 (#地圖數據, (當前關數 - 1) × 896 + 1, 896)
    .如果真 (加記錄 (#游戲地圖, 到文本 (當前關數), 地圖字節集) = 假)
      變量 = 0
    .如果真結束
  .如果真結束
.如果真結束
.如果 (變量 ≠ 0)
  錯誤箱子數 = 0
  字節集變量 = 讀 (#數據1)
  字節集長度 = 取字節集長度 (字節集變量)
  .如果 (字節集長度 ≠ 224 × 4)
    變量 = 0
  .否則
    _啟動窗口.標題 = #游戲版本號 + “ 你現在推的是” + 到文本 (當前關數) + “關”
    記次變量 = 0
    .計次循環首 (14, 循環變量1)
      .計次循環首 (16, 循環變量2)
        地圖字節集 = 取字節集中間 (字節集變量, 記次變量 × 4 + 1, 4)
        背景數組 [循環變量1] [循環變量2] = 取字節集數據 (地圖字節集, #整數型)
        .判斷開始 (背景數組 [循環變量1] [循環變量2] = 57 或 背景數組 [循環變量1] [循環變量2] = 58)
          當前橫坐標 = 循環變量1
          當前縱坐標 = 循環變量2
        .判斷 (背景數組 [循環變量1] [循環變量2] = 3)
          錯誤箱子數 = 錯誤箱子數 + 1
        .默認
        .判斷結束
        記次變量 = 記次變量 + 1
      .計次循環尾 ()
    .計次循環尾 ()
  .如果結束
.否則
  當前關數 = 0
.如果結束
撤消.禁止 = 真
工具條1.加入狀態 (0, #禁止)
清除數組 (撤消數組)
正在錄像中 = 假
錄像播放中 = 假
開始錄像.禁止 = 假
停止錄像.禁止 = 真
播放錄像.禁止 = 真
停止播放.禁止 = 真
保存錄像.禁止 = 真
返回游戲.禁止 = 真
打開錄像文件.禁止 = 假
返回 (變量)
' 以下是舊程序,不使用
返回 (變量)
變量 = 1
小人步數 = 0
關數名稱 = 當前目錄 + “\bbk\box” + 到文本 (當前關數) + “.bbk”
.如果真 (文件是否存在 (關數名稱) = 假)
  .如果 (當前關數 = 1)
    變量 = 0
  .否則
    當前關數 = 1
    關數名稱 = 當前目錄 + “\bbk\box1.bbk”
    .如果真 (文件是否存在 (關數名稱) = 假)
      變量 = 0
    .如果真結束
  .如果結束
.如果真結束
.如果 (變量 ≠ 0)
  錯誤箱子數 = 0
  文件號 = 打開文件 (關數名稱, #讀入, )
  移到文件首 (文件號)
  字節集長度 = 取文件長度 (文件號)
  .如果 (字節集長度 ≠ 224 × 4)
    變量 = 0
  .否則
    _啟動窗口.標題 = #游戲版本號 + “ 你現在推的是” + 到文本 (當前關數) + “關”
    .計次循環首 (14, 循環變量1)
      .計次循環首 (16, 循環變量2)
        讀入數據 (文件號, 背景數組 [循環變量1] [循環變量2])
        .判斷開始 (背景數組 [循環變量1] [循環變量2] = 57 或 背景數組 [循環變量1] [循環變量2] = 58)
          當前橫坐標 = 循環變量1
          當前縱坐標 = 循環變量2
        .判斷 (背景數組 [循環變量1] [循環變量2] = 3)
          錯誤箱子數 = 錯誤箱子數 + 1
        .默認
        .判斷結束
      .計次循環尾 ()
    .計次循環尾 ()
  .如果結束
  關閉文件 (文件號)
.否則
  當前關數 = 0
.如果結束
撤消.禁止 = 真
工具條1.加入狀態 (0, #禁止)
返回 (變量)
.子程序 __啟動窗口_創建完畢
.局部變量 返回結果, 整數型
.局部變量 循環變量1, 整數型
.局部變量 循環變量2, 整數型
.局部變量 場景方案名長度, 整數型
.如果真 (創建數據庫 () = 真)
  跳到 (1)
  .如果真 (查找 (讀 (#方案類型) = #場景方案 且 讀 (#方案名稱) = #默認方案) = 假)
    加記錄 (#場景方案, #默認方案, #背景圖, #墻圖, #地板圖, #黃箱子圖, #箱子位置圖, #紅箱子圖)
  .如果真結束
  跳到 (1)
  .如果真 (查找 (讀 (#方案類型) = #小人方案 且 讀 (#方案名稱) = #默認方案) = 假)
    加記錄 (#小人方案, #默認方案, #上1, #上2, #下1, #下2, #左1, #左2, #右1, #右2)
  .如果真結束
  跳到 (1)
  .如果真 (查找 (讀 (#方案類型) = #音樂方案 且 讀 (#方案名稱) = #默認方案) = 假)
    加記錄 (#音樂方案, #默認方案, #移動音樂, #結束音樂, #推箱音樂, #重來音樂, #禁止音樂, #點擊音樂, #撤消音樂, #背景音樂)
  .如果真結束
.如果真結束
當前目錄 = 取當前目錄 ()
.如果真 (倒找文本 (當前目錄, “\”, , 真) = 取文本長度 (當前目錄))
  當前目錄 = 子文本替換 (當前目錄, “\”, “”, 取文本長度 (當前目錄), 1, 假)
.如果真結束
當前目錄 = 刪尾空 (當前目錄)
.如果真 (是否為調試版 () = 真)
  ' 改變目錄 (comdir)
.如果真結束
' 創建目錄 (“bbk”)
小人方案名 = 取空白文本 (255)
場景方案名 = 取空白文本 (255)
音樂方案名 = 取空白文本 (255)
場景方案名長度 = 讀配置文本 (“config”, “ren”, #默認方案, 小人方案名, 255, 當前目錄 + “\box.ini”)
小人方案名 = 取文本左邊 (小人方案名, 場景方案名長度)
.如果真 (載入圖片號 (#小人方案, 小人方案名) = 假)
  信息框 (“小人圖片載入失敗!”, 0, “退出”)
  結束 ()
.如果真結束
場景方案名長度 = 讀配置文本 (“config”, “gui”, #默認方案, 場景方案名, 255, 當前目錄 + “\box.ini”)
場景方案名 = 取文本左邊 (場景方案名, 場景方案名長度)
.如果真 (載入圖片號 (#場景方案, 場景方案名) = 假)
  信息框 (“場景圖片載入失敗!”, 0, “退出”)
  結束 ()
.如果真結束
場景方案名長度 = 讀配置文本 (“config”, “sound”, #默認方案, 音樂方案名, 255, 當前目錄 + “\box.ini”)
音樂方案名 = 取文本左邊 (音樂方案名, 場景方案名長度)
載入音樂 ()
重定義數組 (背景數組, 假, 14, 16)
' 畫背景 (假)
_啟動窗口.寬度 = 488
上步橫坐標 = 0
上步縱坐標 = 0
當前橫坐標 = 0
當前縱坐標 = 0
當前關數 = 讀配置整數 (“score”, “lastscore”, 1, 當前目錄 + “\box.ini”)
.如果 (讀配置整數 (“sound”, “sound”, 1, 當前目錄 + “\box.ini”) = 1)
  聲音效果 = 真
.否則
  聲音效果 = 假
.如果結束
聲音.選中 = 聲音效果
.如果 (聲音.選中 = 真)
  工具條1.加入狀態 (2, #選中)
.否則
  工具條1.去除狀態 (2, #選中)
.如果結束
返回結果 = 讀取文件 ()
.如果 (返回結果 = 0)
  時鐘1.時鐘周期 = 0
  信息框 (“沒有可以過的關!”, 0, “一個很嚴重的問題:”)
  當前關數 = 0
.否則
  第一次畫 = 真
  畫背景 (假)
  _啟動窗口.標題 = #游戲版本號 + “ 你現在推的是第” + 到文本 (當前關數) + “關”
  時鐘1.時鐘周期 = 500
.如果結束
播放音樂 (重來音樂, )
.子程序 _時鐘1_周期事件
時鐘1.時鐘周期 = 0
.如果真 (總圖片號組 [背景數組 [當前橫坐標] [當前縱坐標] + 1] = 0)
  返回 ()
.如果真結束
.如果 (背景數組 [當前橫坐標] [當前縱坐標] % 2 = 0)
  背景數組 [當前橫坐標] [當前縱坐標] = 背景數組 [當前橫坐標] [當前縱坐標] - 1
.否則
  背景數組 [當前橫坐標] [當前縱坐標] = 背景數組 [當前橫坐標] [當前縱坐標] + 1
.如果結束
畫板1.畫圖片 (總圖片號組 [背景數組 [當前橫坐標] [當前縱坐標] + 1], (當前縱坐標 - 1) × 30, (當前橫坐標 - 1) × 30, 30, 30, 1)
標簽2.標題 = “X:” + 到文本 (當前橫坐標) + “ ” + “Y:” + 到文本 (當前縱坐標)
狀態條1.置文本 (0, “X:” + 到文本 (當前橫坐標) + “ ” + “Y:” + 到文本 (當前縱坐標))
時鐘1.時鐘周期 = 500
.子程序 _撤消_被選擇, , , 單次撤消
.局部變量 循環變量1, 整數型
.局部變量 循環變量2, 整數型
時鐘1.時鐘周期 = 0
.如果真 (返回游戲.禁止 = 真)
  _撤消_被選擇1 ()
.如果真結束
時鐘1.時鐘周期 = 500
返回 ()
.如果真 (聲音效果 = 真)
  播放音樂 (撤消音樂, )
.如果真結束
撤消.禁止 = 真
工具條1.加入狀態 (0, #禁止)
.判斷開始 (背景數組 [上步橫坐標] [上步縱坐標] = 2)
  背景數組 [上步橫坐標] [上步縱坐標] = 57
  畫圖片 (上步橫坐標, 上步縱坐標, 57)
.判斷 (背景數組 [上步橫坐標] [上步縱坐標] = 4)
  背景數組 [上步橫坐標] [上步縱坐標] = 67
  畫圖片 (上步橫坐標, 上步縱坐標, 67)
.默認
  返回 ()
.判斷結束
小人步數 = 小人步數 - 1
標簽1.標題 = “你的移動步數為:” + 到文本 (小人步數)
狀態條1.置文本 (1, “你的移動步數為:” + 到文本 (小人步數))
.如果 (上步箱子移到 = 真)
  .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 51 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 58)
    背景數組 [當前橫坐標] [當前縱坐標] = 3
    畫圖片 (當前橫坐標, 當前縱坐標, 3)
  .判斷 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 61 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 68)
    背景數組 [當前橫坐標] [當前縱坐標] = 7
    畫圖片 (當前橫坐標, 當前縱坐標, 7)
  .默認
  .判斷結束
.否則
  .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 51 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 58)
    背景數組 [當前橫坐標] [當前縱坐標] = 2
    畫圖片 (當前橫坐標, 當前縱坐標, 2)
  .判斷 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 61 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 68)
    背景數組 [當前橫坐標] [當前縱坐標] = 4
  .默認
    畫圖片 (當前橫坐標, 當前縱坐標, 4)
  .判斷結束
.如果結束
.如果真 (上步橫坐標 = 當前橫坐標 且 上步縱坐標 = 當前縱坐標 - 1)
  .如果真 (上步箱子移到 = 真)
    .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標 + 1] = 7)
      背景數組 [當前橫坐標] [當前縱坐標 + 1] = 4
      畫圖片 (當前橫坐標, 當前縱坐標 + 1, 4)
    .判斷 (背景數組 [當前橫坐標] [當前縱坐標 + 1] = 3)
      背景數組 [當前橫坐標] [當前縱坐標 + 1] = 2
      畫圖片 (當前橫坐標, 當前縱坐標 + 1, 2)
    .默認
    .判斷結束
  .如果真結束
.如果真結束
.如果真 (上步橫坐標 = 當前橫坐標 且 上步縱坐標 = 當前縱坐標 + 1)
  .如果真 (上步箱子移到 = 真)
    .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標 - 1] = 7)
      背景數組 [當前橫坐標] [當前縱坐標 - 1] = 4
      畫圖片 (當前橫坐標, 當前縱坐標 - 1, 4)
    .判斷 (背景數組 [當前橫坐標] [當前縱坐標 - 1] = 3)
      背景數組 [當前橫坐標] [當前縱坐標 - 1] = 2
      畫圖片 (當前橫坐標, 當前縱坐標 - 1, 2)
    .默認
    .判斷結束
  .如果真結束
.如果真結束
.如果真 (上步橫坐標 = 當前橫坐標 - 1 且 上步縱坐標 = 當前縱坐標)
  .如果真 (上步箱子移到 = 真)
    .判斷開始 (背景數組 [當前橫坐標 + 1] [當前縱坐標] = 7)
      背景數組 [當前橫坐標 + 1] [當前縱坐標] = 4
      畫圖片 (當前橫坐標 + 1, 當前縱坐標, 4)
    .判斷 (背景數組 [當前橫坐標 + 1] [當前縱坐標] = 3)
      背景數組 [當前橫坐標 + 1] [當前縱坐標] = 2
      畫圖片 (當前橫坐標 + 1, 當前縱坐標, 2)
    .默認
    .判斷結束
  .如果真結束
.如果真結束
.如果真 (上步橫坐標 = 當前橫坐標 + 1 且 上步縱坐標 = 當前縱坐標)
  .如果真 (上步箱子移到 = 真)
    .判斷開始 (背景數組 [當前橫坐標 - 1] [當前縱坐標] = 7)
      背景數組 [當前橫坐標 - 1] [當前縱坐標] = 4
      畫圖片 (當前橫坐標 - 1, 當前縱坐標, 4)
    .判斷 (背景數組 [當前橫坐標 - 1] [當前縱坐標] = 3)
      背景數組 [當前橫坐標 - 1] [當前縱坐標] = 2
      畫圖片 (當前橫坐標 - 1, 當前縱坐標, 2)
    .默認
    .判斷結束
  .如果真結束
.如果真結束
當前橫坐標 = 上步橫坐標
當前縱坐標 = 上步縱坐標
上步橫坐標 = 0
上步縱坐標 = 0
錯誤箱子數 = 0
.計次循環首 (14, 循環變量1)
  .計次循環首 (16, 循環變量2)
    .如果真 (背景數組 [循環變量1] [循環變量2] = 3)
      錯誤箱子數 = 錯誤箱子數 + 1
    .如果真結束
  .計次循環尾 ()
.計次循環尾 ()
.子程序 _撤消_被選擇1, , , 多次撤消
.局部變量 循環變量1, 整數型
.局部變量 循環變量2, 整數型
.局部變量 記次變量, 整數型, , , 數組成員數
.如果真 (錄像播放中 = 真)
  返回 ()
.如果真結束
.如果真 (聲音效果 = 真)
  播放音樂 (撤消音樂, )
.如果真結束
記次變量 = 取數組成員數 (撤消數組)
.如果真 (記次變量 = 0)
  返回 ()
.如果真結束
.如果真 (記次變量 = 1)
  撤消.禁止 = 真
  工具條1.加入狀態 (0, #禁止)
.如果真結束
上步橫坐標 = 撤消數組 [記次變量].x
上步縱坐標 = 撤消數組 [記次變量].y
上步箱子移到 = 撤消數組 [記次變量].ifmove
.判斷開始 (背景數組 [上步橫坐標] [上步縱坐標] = 2)
  背景數組 [上步橫坐標] [上步縱坐標] = 57
  畫圖片 (上步橫坐標, 上步縱坐標, 57)
.判斷 (背景數組 [上步橫坐標] [上步縱坐標] = 4)
  背景數組 [上步橫坐標] [上步縱坐標] = 67
  畫圖片 (上步橫坐標, 上步縱坐標, 67)
.默認
  刪除成員 (撤消數組, 記次變量, 1)
  .如果真 (正在錄像中 = 真)
    刪除成員 (錄像數組, 取數組成員數 (錄像數組), 1)
  .如果真結束
  返回 ()
.判斷結束
小人步數 = 小人步數 - 1
標簽1.標題 = “你的移動步數為:” + 到文本 (小人步數)
狀態條1.置文本 (1, “你的移動步數為:” + 到文本 (小人步數))
.如果 (上步箱子移到 = 真)
  .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 51 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 58)
    背景數組 [當前橫坐標] [當前縱坐標] = 3
    畫圖片 (當前橫坐標, 當前縱坐標, 3)
  .判斷 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 61 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 68)
    背景數組 [當前橫坐標] [當前縱坐標] = 7
    畫圖片 (當前橫坐標, 當前縱坐標, 7)
  .默認
  .判斷結束
.否則
  .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 51 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 58)
    背景數組 [當前橫坐標] [當前縱坐標] = 2
    畫圖片 (當前橫坐標, 當前縱坐標, 2)
  .判斷 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 61 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 68)
    背景數組 [當前橫坐標] [當前縱坐標] = 4
  .默認
    畫圖片 (當前橫坐標, 當前縱坐標, 4)
  .判斷結束
.如果結束
.如果真 (上步橫坐標 = 當前橫坐標 且 上步縱坐標 = 當前縱坐標 - 1)
  .如果真 (上步箱子移到 = 真)
    .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標 + 1] = 7)
      背景數組 [當前橫坐標] [當前縱坐標 + 1] = 4
      畫圖片 (當前橫坐標, 當前縱坐標 + 1, 4)
    .判斷 (背景數組 [當前橫坐標] [當前縱坐標 + 1] = 3)
      背景數組 [當前橫坐標] [當前縱坐標 + 1] = 2
      畫圖片 (當前橫坐標, 當前縱坐標 + 1, 2)
    .默認
    .判斷結束
  .如果真結束
.如果真結束
.如果真 (上步橫坐標 = 當前橫坐標 且 上步縱坐標 = 當前縱坐標 + 1)
  .如果真 (上步箱子移到 = 真)
    .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標 - 1] = 7)
      背景數組 [當前橫坐標] [當前縱坐標 - 1] = 4
      畫圖片 (當前橫坐標, 當前縱坐標 - 1, 4)
    .判斷 (背景數組 [當前橫坐標] [當前縱坐標 - 1] = 3)
      背景數組 [當前橫坐標] [當前縱坐標 - 1] = 2
      畫圖片 (當前橫坐標, 當前縱坐標 - 1, 2)
    .默認
    .判斷結束
  .如果真結束
.如果真結束
.如果真 (上步橫坐標 = 當前橫坐標 - 1 且 上步縱坐標 = 當前縱坐標)
  .如果真 (上步箱子移到 = 真)
    .判斷開始 (背景數組 [當前橫坐標 + 1] [當前縱坐標] = 7)
      背景數組 [當前橫坐標 + 1] [當前縱坐標] = 4
      畫圖片 (當前橫坐標 + 1, 當前縱坐標, 4)
    .判斷 (背景數組 [當前橫坐標 + 1] [當前縱坐標] = 3)
      背景數組 [當前橫坐標 + 1] [當前縱坐標] = 2
      畫圖片 (當前橫坐標 + 1, 當前縱坐標, 2)
    .默認
    .判斷結束
  .如果真結束
.如果真結束
.如果真 (上步橫坐標 = 當前橫坐標 + 1 且 上步縱坐標 = 當前縱坐標)
  .如果真 (上步箱子移到 = 真)
    .判斷開始 (背景數組 [當前橫坐標 - 1] [當前縱坐標] = 7)
      背景數組 [當前橫坐標 - 1] [當前縱坐標] = 4
      畫圖片 (當前橫坐標 - 1, 當前縱坐標, 4)
    .判斷 (背景數組 [當前橫坐標 - 1] [當前縱坐標] = 3)
      背景數組 [當前橫坐標 - 1] [當前縱坐標] = 2
      畫圖片 (當前橫坐標 - 1, 當前縱坐標, 2)
    .默認
    .判斷結束
  .如果真結束
.如果真結束
當前橫坐標 = 上步橫坐標
當前縱坐標 = 上步縱坐標
上步橫坐標 = 0
上步縱坐標 = 0
錯誤箱子數 = 0
刪除成員 (撤消數組, 記次變量, 1)
.如果真 (正在錄像中 = 真)
  刪除成員 (錄像數組, 取數組成員數 (錄像數組), 1)
.如果真結束
.計次循環首 (14, 循環變量1)
  .計次循環首 (16, 循環變量2)
    .如果真 (背景數組 [循環變量1] [循環變量2] = 3)
      錯誤箱子數 = 錯誤箱子數 + 1
    .如果真結束
  .計次循環尾 ()
.計次循環尾 ()
.子程序 _重來_被選擇
.如果真 (聲音效果 = 真)
  播放音樂 (重來音樂, )
.如果真結束
小人步數 = 0
標簽1.標題 = “你的移動步數為:” + 到文本 (小人步數)
狀態條1.置文本 (1, “你的移動步數為:” + 到文本 (小人步數))
上步橫坐標 = 0
上步縱坐標 = 0
當前橫坐標 = 0
當前縱坐標 = 0
讀取文件 ()
第一次畫 = 真
畫背景 (假)
.子程序 __啟動窗口_鼠標左鍵被按下, 邏輯型
.參數 橫向位置, 整數型
.參數 縱向位置, 整數型
.參數 功能鍵狀態, 整數型
.如果真 (聲音效果 = 真)
  播放音樂 (點擊音樂, )
.如果真結束
' 重來.禁止 = 假
' 撤消.禁止 = 真
' 工具條1.加入狀態 (0, #禁止)
.如果真 (上步橫坐標 ≠ 0)
  ' 撤消.禁止 = 假
  ' 工具條1.加入狀態 (0,0)
.如果真結束
.子程序 _幫助文件_被選擇
運行文件 (0, “open”, 當前目錄 + “\box.chm”, “”, “”, 9)
.子程序 _聲音_被選擇
聲音效果 = 取反 (聲音效果)
聲音.選中 = 聲音效果
.如果 (聲音.選中 = 真)
  工具條1.加入狀態 (2, #選中)
.否則
  工具條1.去除狀態 (2, #選中)
.如果結束
.子程序 _退出_被選擇
卸載圖片號 ()
.如果真 (小人方案名 = “”)
  小人方案名 = #默認方案
.如果真結束
.如果真 (音樂方案名 = “”)
  音樂方案名 = #默認方案
.如果真結束
.如果真 (場景方案名 = “”)
  場景方案名 = #默認方案
.如果真結束
寫配置文件 (“score”, “lastscore”, 到文本 (當前關數), 當前目錄 + “\box.ini”)
寫配置文件 (“config”, “ren”, 小人方案名, 當前目錄 + “\box.ini”)
寫配置文件 (“config”, “sound”, 音樂方案名, 當前目錄 + “\box.ini”)
寫配置文件 (“config”, “gui”, 場景方案名, 當前目錄 + “\box.ini”)
.如果 (聲音效果 = 真)
  寫配置文件 (“sound”, “sound”, “1”, 當前目錄 + “\box.ini”)
.否則
  寫配置文件 (“sound”, “sound”, “0”, 當前目錄 + “\box.ini”)
.如果結束
關閉 ()
結束 ()
.子程序 _新的想法_被選擇
載入 (設計窗口, , 真)
.如果真 (保存標志 = 2 且 當前關數 = 0)
  當前關數 = 當前關數 + 1
  上步橫坐標 = 0
  上步縱坐標 = 0
  當前橫坐標 = 0
  當前縱坐標 = 0
  讀取文件 ()
  第一次畫 = 真
  畫背景 (假)
  _啟動窗口.標題 = #游戲版本號 + “ 你現在推的是” + 到文本 (當前關數) + “關”
.如果真結束
.子程序 _編輯方案_被選擇
載入 (方案設計窗口, , 真)
.子程序 _選擇方案_被選擇
載入 (選擇方案窗口, , 真)
.如果真 (方案被改變 = 真)
  卸載圖片號 ()
  載入圖片號 (#小人方案, 小人方案名)
  載入圖片號 (#場景方案, 場景方案名)
  載入音樂 ()
  畫背景 (假)
.如果真結束
.子程序 __啟動窗口_將被銷毀
時鐘1.時鐘周期 = 0
_退出_被選擇 ()
.子程序 _關于_被選擇
載入 (關于窗口, , 真)
.子程序 _選關_被選擇
選擇關卡 = 當前關數
載入 (選關窗口, , 真)
.如果真 (選擇關卡 = 當前關數)
  返回 ()
.如果真結束
當前關數 = 選擇關卡
小人步數 = 0
標簽1.標題 = “你的移動步數為:” + 到文本 (小人步數)
狀態條1.置文本 (1, “你的移動步數為:” + 到文本 (小人步數))
上步橫坐標 = 0
上步縱坐標 = 0
當前橫坐標 = 0
當前縱坐標 = 0
讀取文件 ()
第一次畫 = 真
畫背景 (假)
.子程序 __啟動窗口_按下某鍵, 邏輯型
.參數 鍵代碼, 整數型
.參數 功能鍵狀態, 整數型
.局部變量 步數配置變量, 整數型, , , bestmove
.局部變量 上下光標鍵, 整數型, , , xflag
.局部變量 左右光標鍵, 整數型
.局部變量 位置, 撤消類型
.判斷開始 (鍵代碼 = #左光標鍵)
  上下光標鍵 = 0
  左右光標鍵 = -1
.判斷 (鍵代碼 = #上光標鍵)
  上下光標鍵 = -1
  左右光標鍵 = 0
.判斷 (鍵代碼 = #右光標鍵)
  上下光標鍵 = 0
  左右光標鍵 = 1
.判斷 (鍵代碼 = #下光標鍵)
  上下光標鍵 = 1
  左右光標鍵 = 0
.默認
  .如果真 (聲音效果 = 真)
    播放音樂 (點擊音樂, )
  .如果真結束
  返回 (真)
.判斷結束
.如果真 (返回游戲.禁止 = 假)
  返回 (真)
.如果真結束
上步箱子移到 = 假
.判斷開始 (背景數組 [當前橫坐標 + 上下光標鍵] [當前縱坐標 + 左右光標鍵] = 2)
  .如果真 (聲音效果 = 真)
    .如果真 (移動音樂開關 = 0)
      播放音樂 (移動音樂, 真)
    .如果真結束
  .如果真結束
  背景數組 [當前橫坐標 + 上下光標鍵] [當前縱坐標 + 左右光標鍵] = 54 + 3 × 上下光標鍵 + 左右光標鍵
  畫圖片 (當前橫坐標 + 上下光標鍵, 當前縱坐標 + 左右光標鍵, 54 + 3 × 上下光標鍵 + 左右光標鍵)
  .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 51 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 58)
    背景數組 [當前橫坐標] [當前縱坐標] = 2
    畫圖片 (當前橫坐標, 當前縱坐標, 2)
  .判斷 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 61 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 68)
    背景數組 [當前橫坐標] [當前縱坐標] = 4
    畫圖片 (當前橫坐標, 當前縱坐標, 4)
  .默認
  .判斷結束
  上步箱子移到 = 假
.判斷 (背景數組 [當前橫坐標 + 上下光標鍵] [當前縱坐標 + 左右光標鍵] = 4)
  .如果真 (聲音效果 = 真)
    .如果真 (移動音樂開關 = 0)
      播放音樂 (移動音樂, 真)
    .如果真結束
  .如果真結束
  背景數組 [當前橫坐標 + 上下光標鍵] [當前縱坐標 + 左右光標鍵] = 64 + 3 × 上下光標鍵 + 左右光標鍵
  畫圖片 (當前橫坐標 + 上下光標鍵, 當前縱坐標 + 左右光標鍵, 64 + 3 × 上下光標鍵 + 左右光標鍵)
  .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 51 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 58)
    背景數組 [當前橫坐標] [當前縱坐標] = 2
    畫圖片 (當前橫坐標, 當前縱坐標, 2)
  .判斷 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 61 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 68)
    背景數組 [當前橫坐標] [當前縱坐標] = 4
    畫圖片 (當前橫坐標, 當前縱坐標, 4)
  .默認
  .判斷結束
  上步箱子移到 = 假
.判斷 (背景數組 [當前橫坐標 + 上下光標鍵] [當前縱坐標 + 左右光標鍵] = 3)
  .判斷開始 (背景數組 [當前橫坐標 + 上下光標鍵 + 上下光標鍵] [當前縱坐標 + 左右光標鍵 + 左右光標鍵] = 2)
    .如果真 (聲音效果 = 真)
      播放音樂 (推箱音樂, )
    .如果真結束
    背景數組 [當前橫坐標 + 上下光標鍵 + 上下光標鍵] [當前縱坐標 + 左右光標鍵 + 左右光標鍵] = 3
    畫圖片 (當前橫坐標 + 上下光標鍵 + 上下光標鍵, 當前縱坐標 + 左右光標鍵 + 左右光標鍵, 3)
    背景數組 [當前橫坐標 + 上下光標鍵] [當前縱坐標 + 左右光標鍵] = 54 + 3 × 上下光標鍵 + 左右光標鍵
    畫圖片 (當前橫坐標 + 上下光標鍵, 當前縱坐標 + 左右光標鍵, 54 + 3 × 上下光標鍵 + 左右光標鍵)
    .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 51 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 58)
      背景數組 [當前橫坐標] [當前縱坐標] = 2
      畫圖片 (當前橫坐標, 當前縱坐標, 2)
    .判斷 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 61 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 68)
      背景數組 [當前橫坐標] [當前縱坐標] = 4
      畫圖片 (當前橫坐標, 當前縱坐標, 4)
    .默認
    .判斷結束
    上步箱子移到 = 真
  .判斷 (背景數組 [當前橫坐標 + 上下光標鍵 + 上下光標鍵] [當前縱坐標 + 左右光標鍵 + 左右光標鍵] = 4)
    .如果真 (聲音效果 = 真)
      播放音樂 (推箱音樂, )
    .如果真結束
    背景數組 [當前橫坐標 + 上下光標鍵 + 上下光標鍵] [當前縱坐標 + 左右光標鍵 + 左右光標鍵] = 7
    畫圖片 (當前橫坐標 + 上下光標鍵 + 上下光標鍵, 當前縱坐標 + 左右光標鍵 + 左右光標鍵, 7)
    背景數組 [當前橫坐標 + 上下光標鍵] [當前縱坐標 + 左右光標鍵] = 54 + 3 × 上下光標鍵 + 左右光標鍵
    畫圖片 (當前橫坐標 + 上下光標鍵, 當前縱坐標 + 左右光標鍵, 54 + 3 × 上下光標鍵 + 左右光標鍵)
    錯誤箱子數 = 錯誤箱子數 - 1
    .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 51 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 58)
      背景數組 [當前橫坐標] [當前縱坐標] = 2
      畫圖片 (當前橫坐標, 當前縱坐標, 2)
    .判斷 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 61 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 68)
      背景數組 [當前橫坐標] [當前縱坐標] = 4
      畫圖片 (當前橫坐標, 當前縱坐標, 4)
    .默認
    .判斷結束
    上步箱子移到 = 真
  .默認
    .如果真 (聲音效果 = 真)
      播放音樂 (禁止音樂, )
    .如果真結束
    上下光標鍵 = 0
    左右光標鍵 = 0
  .判斷結束
.判斷 (背景數組 [當前橫坐標 + 上下光標鍵] [當前縱坐標 + 左右光標鍵] = 7)
  .判斷開始 (背景數組 [當前橫坐標 + 上下光標鍵 + 上下光標鍵] [當前縱坐標 + 左右光標鍵 + 左右光標鍵] = 2)
    .如果真 (聲音效果 = 真)
      播放音樂 (推箱音樂, )
    .如果真結束
    背景數組 [當前橫坐標 + 上下光標鍵 + 上下光標鍵] [當前縱坐標 + 左右光標鍵 + 左右光標鍵] = 3
    畫圖片 (當前橫坐標 + 上下光標鍵 + 上下光標鍵, 當前縱坐標 + 左右光標鍵 + 左右光標鍵, 3)
    背景數組 [當前橫坐標 + 上下光標鍵] [當前縱坐標 + 左右光標鍵] = 64 + 3 × 上下光標鍵 + 左右光標鍵
    畫圖片 (當前橫坐標 + 上下光標鍵, 當前縱坐標 + 左右光標鍵, 64 + 3 × 上下光標鍵 + 左右光標鍵)
    錯誤箱子數 = 錯誤箱子數 + 1
    .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 51 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 58)
      背景數組 [當前橫坐標] [當前縱坐標] = 2
      畫圖片 (當前橫坐標, 當前縱坐標, 2)
    .判斷 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 61 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 68)
      背景數組 [當前橫坐標] [當前縱坐標] = 4
      畫圖片 (當前橫坐標, 當前縱坐標, 4)
    .默認
    .判斷結束
    上步箱子移到 = 真
  .判斷 (背景數組 [當前橫坐標 + 上下光標鍵 + 上下光標鍵] [當前縱坐標 + 左右光標鍵 + 左右光標鍵] = 4)
    .如果真 (聲音效果 = 真)
      播放音樂 (推箱音樂, )
    .如果真結束
    背景數組 [當前橫坐標 + 上下光標鍵 + 上下光標鍵] [當前縱坐標 + 左右光標鍵 + 左右光標鍵] = 7
    畫圖片 (當前橫坐標 + 上下光標鍵 + 上下光標鍵, 當前縱坐標 + 左右光標鍵 + 左右光標鍵, 7)
    背景數組 [當前橫坐標 + 上下光標鍵] [當前縱坐標 + 左右光標鍵] = 64 + 3 × 上下光標鍵 + 左右光標鍵
    畫圖片 (當前橫坐標 + 上下光標鍵, 當前縱坐標 + 左右光標鍵, 64 + 3 × 上下光標鍵 + 左右光標鍵)
    .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 51 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 58)
      背景數組 [當前橫坐標] [當前縱坐標] = 2
      畫圖片 (當前橫坐標, 當前縱坐標, 2)
    .判斷 (背景數組 [當前橫坐標] [當前縱坐標] ≥ 61 且 背景數組 [當前橫坐標] [當前縱坐標] ≤ 68)
      背景數組 [當前橫坐標] [當前縱坐標] = 4
      畫圖片 (當前橫坐標, 當前縱坐標, 4)
    .默認
    .判斷結束
    上步箱子移到 = 真
  .默認
    .如果真 (聲音效果 = 真)
      播放音樂 (禁止音樂, )
    .如果真結束
    上下光標鍵 = 0
    左右光標鍵 = 0
  .判斷結束
.默認
  .如果真 (聲音效果 = 真)
    播放音樂 (禁止音樂, )
  .如果真結束
  上下光標鍵 = 0
  左右光標鍵 = 0
.判斷結束
上步橫坐標 = 當前橫坐標
上步縱坐標 = 當前縱坐標
當前橫坐標 = 當前橫坐標 + 上下光標鍵
當前縱坐標 = 當前縱坐標 + 左右光標鍵
位置.x = 上步橫坐標
位置.y = 上步縱坐標
位置.ifmove = 上步箱子移到
.如果真 (返回游戲.禁止 = 真)
  .如果真 (錄像播放中 = 假)
    加入成員 (撤消數組, 位置)
  .如果真結束
.如果真結束
.如果真 (正在錄像中 = 真)
  加入成員 (錄像數組, 鍵代碼)
.如果真結束
標簽2.標題 = “X:” + 到文本 (當前橫坐標) + “ ” + “Y:” + 到文本 (當前縱坐標)
狀態條1.置文本 (0, “X:” + 到文本 (當前橫坐標) + “ ” + “Y:” + 到文本 (當前縱坐標))
' 輸出調試文本 (到文本 (lastx) + 字符 (9) + 到文本 (lasty))
' 輸出調試文本 (到文本 (localx) + 字符 (9) + 到文本 (localy) + #換行符)
時鐘1.時鐘周期 = 0
小人步數 = 小人步數 + 取絕對值 (上下光標鍵 + 左右光標鍵)
標簽1.標題 = “你的移動步數為:” + 到文本 (小人步數)
狀態條1.置文本 (1, “你的移動步數為:” + 到文本 (小人步數))
撤消.禁止 = 假
工具條1.去除狀態 (0, #禁止)
移動音樂開關 = 1
.如果 (錯誤箱子數 = 0 且 正在錄像中 = 假 且 錄像播放中 = 假)
  .如果真 (聲音效果 = 真)
    播放音樂 (結束音樂, )
  .如果真結束
  步數配置變量 = 讀配置整數 (“box”, “box” + 到文本 (當前關數), 0, 當前目錄 + “\box.ini”)
  .如果 (小人步數 < 步數配置變量 或 步數配置變量 = 0)
    寫配置文件 (“box”, “box” + 到文本 (當前關數), 到文本 (小人步數), 當前目錄 + “\box.ini”)
    信息框 (“你做的真不錯!我佩服你!繼續努力吧!”, 0, “恭喜”)
  .否則
    .如果 (小人步數 = 步數配置變量)
      信息框 (“你這次的成績和上次一樣,繼續努力吧!”, 0, “沒進步”)
    .否則
      信息框 (“你還要繼續鍛煉!一定要打破以前的記錄!”, 0, “你的成績......”)
    .如果結束
  .如果結束
  小人步數 = 0
  標簽1.標題 = “你的移動步數為:” + 到文本 (小人步數)
  狀態條1.置文本 (1, “你的移動步數為:” + 到文本 (小人步數))
  當前關數 = 當前關數 + 1
  上步橫坐標 = 0
  上步縱坐標 = 0
  當前橫坐標 = 0
  當前縱坐標 = 0
  讀取文件 ()
  第一次畫 = 真
  畫背景 (假)
.否則
  時鐘1.時鐘周期 = 500
.如果結束
.子程序 獲取移動路徑, 邏輯型, , 已 OK!  2001.11.30.00:10 "程序配制"還未更新
.參數 當前x, 整數型
.參數 當前y, 整數型
.參數 目標x, 整數型
.參數 目標y, 整數型
.局部變量 地圖數據, 數據類型2, , "14,16", 探索路徑時用的臨時地圖
.局部變量 節點1, 整數型, , "0", 保存每次找到的節點
.局部變量 節點2, 整數型, , "0", 保存每次找到的節點
.局部變量 數量, 整數型
.局部變量 完成, 邏輯型, , , 是否已經完成探索
.局部變量 步數, 整數型, , , 當前步數
.局部變量 變量1, 整數型
.局部變量 變量2, 整數型
.局部變量 循環變量1, 整數型
.局部變量 循環變量2, 整數型
.局部變量 最大次數, 整數型, , , 要搜索的最大次數
.如果真 (取數組成員數 (行走路徑) > 0)
  返回 (假)
.如果真結束
.如果真 (不自動尋路 = 真)
  返回 (假)
.如果真結束
.如果真 (當前x = 目標x 且 當前y = 目標y)
  返回 (假)
.如果真結束
.如果真 (目標x > 14 或 目標y > 16)
  返回 (假)
.如果真結束
完成 = 假
最大次數 = 0
.計次循環首 (14, 循環變量1)
  .計次循環首 (16, 循環變量2)
    .如果真 (背景數組 [循環變量1] [循環變量2] = 0 或 背景數組 [循環變量1] [循環變量2] = 1)
      最大次數 = 最大次數 + 1
    .如果真結束
  .計次循環尾 ()
.計次循環尾 ()
最大次數 = 14 × 16 - 最大次數
清除數組 (節點1)
清除數組 (節點2)
加入成員 (節點1, 當前x)
加入成員 (節點2, 當前y)
地圖數據 [當前x] [當前y].步數 = 99999
地圖數據 [當前x] [當前y].位置.x = 節點1 [1]
地圖數據 [當前x] [當前y].位置.y = 節點2 [1]
' map [p1 [rq1] + 1] [p2 [rq1]].方向 = #下光標鍵
地圖數據 [當前x] [當前y].上一步.x = 節點1 [1]
地圖數據 [當前x] [當前y].上一步.y = 節點2 [1]
步數 = 1
.計次循環首 (最大次數, 變量1)
  數量 = 取數組成員數 (節點1)
  .計次循環首 (數量, 變量2)
    .如果真 (背景數組 [節點1 [變量2] + 1] [節點2 [變量2]] = 2 或 背景數組 [節點1 [變量2] + 1] [節點2 [變量2]] = 4)
      .如果真 (地圖數據 [節點1 [變量2] + 1] [節點2 [變量2]].步數 = 0)
        加入成員 (節點1, 節點1 [變量2] + 1)
        加入成員 (節點2, 節點2 [變量2])
        地圖數據 [節點1 [變量2] + 1] [節點2 [變量2]].步數 = 步數
        地圖數據 [節點1 [變量2] + 1] [節點2 [變量2]].位置.x = 節點1 [變量2]
        地圖數據 [節點1 [變量2] + 1] [節點2 [變量2]].位置.y = 節點2 [變量2]
        地圖數據 [節點1 [變量2] + 1] [節點2 [變量2]].方向 = #下光標鍵
        地圖數據 [節點1 [變量2] + 1] [節點2 [變量2]].上一步.x = 節點1 [變量2]
        地圖數據 [節點1 [變量2] + 1] [節點2 [變量2]].上一步.y = 節點2 [變量2]
        ' 畫板1.定位寫出 ((p2 [rq1] - 1) × 30, (p1 [rq1] + 1 - 1) × 30, step)
      .如果真結束
      .如果真 (目標x = 節點1 [變量2] + 1 且 目標y = 節點2 [變量2])
        完成 = 真
        跳出循環 ()
      .如果真結束
    .如果真結束
    .如果真 (背景數組 [節點1 [變量2] - 1] [節點2 [變量2]] = 2 或 背景數組 [節點1 [變量2] - 1] [節點2 [變量2]] = 4)
      .如果真 (地圖數據 [節點1 [變量2] - 1] [節點2 [變量2]].步數 = 0)
        加入成員 (節點1, 節點1 [變量2] - 1)
        加入成員 (節點2, 節點2 [變量2])
        地圖數據 [節點1 [變量2] - 1] [節點2 [變量2]].步數 = 步數
        地圖數據 [節點1 [變量2] - 1] [節點2 [變量2]].位置.x = 節點1 [變量2] - 1
        地圖數據 [節點1 [變量2] - 1] [節點2 [變量2]].位置.y = 節點2 [變量2]
        地圖數據 [節點1 [變量2] - 1] [節點2 [變量2]].方向 = #上光標鍵
        地圖數據 [節點1 [變量2] - 1] [節點2 [變量2]].上一步.x = 節點1 [變量2]
        地圖數據 [節點1 [變量2] - 1] [節點2 [變量2]].上一步.y = 節點2 [變量2]
        ' 畫板1.定位寫出 ((p2 [rq1] - 1) × 30, (p1 [rq1] - 1 - 1) × 30, step)
      .如果真結束
      .如果真 (目標x = 節點1 [變量2] - 1 且 目標y = 節點2 [變量2])
        完成 = 真
        跳出循環 ()
      .如果真結束
    .如果真結束
    .如果真 (背景數組 [節點1 [變量2]] [節點2 [變量2] + 1] = 2 或 背景數組 [節點1 [變量2]] [節點2 [變量2] + 1] = 4)
      .如果真 (地圖數據 [節點1 [變量2]] [節點2 [變量2] + 1].步數 = 0)
        加入成員 (節點1, 節點1 [變量2])
        加入成員 (節點2, 節點2 [變量2] + 1)
        地圖數據 [節點1 [變量2]] [節點2 [變量2] + 1].步數 = 步數
        地圖數據 [節點1 [變量2]] [節點2 [變量2] + 1].位置.x = 節點1 [變量2]
        地圖數據 [節點1 [變量2]] [節點2 [變量2] + 1].位置.y = 節點2 [變量2] + 1
        地圖數據 [節點1 [變量2]] [節點2 [變量2] + 1].方向 = #右光標鍵
        地圖數據 [節點1 [變量2]] [節點2 [變量2] + 1].上一步.x = 節點1 [變量2]
        地圖數據 [節點1 [變量2]] [節點2 [變量2] + 1].上一步.y = 節點2 [變量2]
        ' 畫板1.定位寫出 ((p2 [rq1] - 1 + 1) × 30, (p1 [rq1] - 1) × 30, step)
      .如果真結束
      .如果真 (目標x = 節點1 [變量2] 且 目標y = 節點2 [變量2] + 1)
        完成 = 真
        跳出循環 ()
      .如果真結束
    .如果真結束
    .如果真 (背景數組 [節點1 [變量2]] [節點2 [變量2] - 1] = 2 或 背景數組 [節點1 [變量2]] [節點2 [變量2] - 1] = 4)
      .如果真 (地圖數據 [節點1 [變量2]] [節點2 [變量2] - 1].步數 = 0)
        加入成員 (節點1, 節點1 [變量2])
        加入成員 (節點2, 節點2 [變量2] - 1)
        地圖數據 [節點1 [變量2]] [節點2 [變量2] - 1].步數 = 步數
        地圖數據 [節點1 [變量2]] [節點2 [變量2] - 1].位置.x = 節點1 [變量2]
        地圖數據 [節點1 [變量2]] [節點2 [變量2] - 1].位置.y = 節點2 [變量2] - 1
        地圖數據 [節點1 [變量2]] [節點2 [變量2] - 1].方向 = #左光標鍵
        地圖數據 [節點1 [變量2]] [節點2 [變量2] - 1].上一步.x = 節點1 [變量2]
        地圖數據 [節點1 [變量2]] [節點2 [變量2] - 1].上一步.y = 節點2 [變量2]
        ' 畫板1.定位寫出 ((p2 [rq1] - 1 - 1) × 30, (p1 [rq1] - 1) × 30, step)
      .如果真結束
      .如果真 (目標x = 節點1 [變量2] 且 目標y = 節點2 [變量2] - 1)
        完成 = 真
        跳出循環 ()
      .如果真結束
    .如果真結束
  .計次循環尾 ()
  刪除成員 (節點1, 1, 數量) ' 刪除舊節點
  刪除成員 (節點2, 1, 數量)
  .如果真 (取數組成員數 (節點1) = 0 或 完成 = 真)
    跳出循環 ()
  .如果真結束
  步數 = 步數 + 1
.計次循環尾 ()
.如果 (完成 = 真)
  ' 倒推出小人的行走路徑
  重定義數組 (行走路徑, 假, 步數)
  行走路徑 [步數] = 地圖數據 [目標x] [目標y].方向
  變量2 = 目標x
  目標x = 地圖數據 [變量2] [目標y].上一步.x
  目標y = 地圖數據 [變量2] [目標y].上一步.y
  .變量循環首 (步數 - 1, 1, -1, 變量1)
    .如果真 (地圖數據 [目標x] [目標y].方向 = 99999)
      跳出循環 ()
    .如果真結束
    行走路徑 [變量1] = 地圖數據 [目標x] [目標y].方向
    變量2 = 目標x
    目標x = 地圖數據 [變量2] [目標y].上一步.x
    目標y = 地圖數據 [變量2] [目標y].上一步.y
  .變量循環尾 ()
  返回 (真)
.否則
  返回 (假)
.如果結束
.子程序 _畫板1_鼠標左鍵被按下, 邏輯型
.參數 橫向位置, 整數型
.參數 縱向位置, 整數型
.參數 功能鍵狀態, 整數型
.局部變量 橫坐標, 整數型
.局部變量 縱坐標, 整數型
移動音樂開關 = 0
.如果真 (不自動尋路 = 假)
  橫坐標 = 取整 (縱向位置 ÷ 30 + 1)
  縱坐標 = 取整 (橫向位置 ÷ 30 + 1)
  ' 輸出調試文本 (到文本 (box [x] [y]))
  .判斷開始 (背景數組 [橫坐標] [縱坐標] = 2 或 背景數組 [橫坐標] [縱坐標] = 4)
    ' 小人自動移動
    .如果真 (獲取移動路徑 (當前橫坐標, 當前縱坐標, 橫坐標, 縱坐標) = 真)
      .計次循環首 (取數組成員數 (行走路徑), 行走計數)
        不自動尋路 = 真
        __啟動窗口_按下某鍵 (行走路徑 [行走計數], 0)
        移動音樂開關 = 1
        不自動尋路 = 真
        延時 (50)
      .計次循環尾 ()
      停止播放 ()
      移動音樂開關 = 0
      不自動尋路 = 假
      清除數組 (行走路徑)
    .如果真結束
    不自動尋路 = 假
  .判斷 (背景數組 [橫坐標] [縱坐標] = 3 或 背景數組 [橫坐標] [縱坐標] = 7)
    ' 小人自動推箱子
    .判斷開始 (當前橫坐標 + 1 = 橫坐標 且 當前縱坐標 = 縱坐標)
      __啟動窗口_按下某鍵 (#下光標鍵, 0)
    .判斷 (當前橫坐標 - 1 = 橫坐標 且 當前縱坐標 = 縱坐標)
      __啟動窗口_按下某鍵 (#上光標鍵, 0)
    .判斷 (當前橫坐標 = 橫坐標 且 當前縱坐標 + 1 = 縱坐標)
      __啟動窗口_按下某鍵 (#右光標鍵, 0)
    .判斷 (當前橫坐標 = 橫坐標 且 當前縱坐標 - 1 = 縱坐標)
      __啟動窗口_按下某鍵 (#左光標鍵, 0)
    .默認
    .判斷結束
  .默認
  .判斷結束
.如果真結束
.子程序 __啟動窗口_放開某鍵, 邏輯型, , N
.參數 鍵代碼, 整數型
.參數 功能鍵狀態, 整數型
.如果 (錯誤箱子數 = 0)
.否則
  .判斷開始 (鍵代碼 = #左光標鍵)
    時鐘2.時鐘周期 = 200
    移動音樂開關 = 0
  .判斷 (鍵代碼 = #上光標鍵)
    時鐘2.時鐘周期 = 200
    移動音樂開關 = 0
  .判斷 (鍵代碼 = #右光標鍵)
    時鐘2.時鐘周期 = 200
    移動音樂開關 = 0
  .判斷 (鍵代碼 = #下光標鍵)
    時鐘2.時鐘周期 = 200
    移動音樂開關 = 0
  .默認
  .判斷結束
.如果結束
.子程序 _時鐘2_周期事件, , , N
時鐘2.時鐘周期 = 0
停止播放 ()
.子程序 _畫板1_鼠標右鍵被按下, 邏輯型, , N
.參數 橫向位置, 整數型
.參數 縱向位置, 整數型
.參數 功能鍵狀態, 整數型
.局部變量 變量
.局部變量 移動步數
.局部變量 移動x1
.局部變量 移動y1
.如果真 (不自動尋路 = 假)
  移動x1 = 取整 (縱向位置 ÷ 30 + 1)
  移動y1 = 取整 (橫向位置 ÷ 30 + 1)
.如果真結束
' 小人自動推箱子
.判斷開始 (當前橫坐標 < 移動x1 - 1 且 當前縱坐標 = 移動y1)
  移動步數 = 移動x1 - 當前橫坐標 - 1
  .判斷開始 (背景數組 [當前橫坐標 + 1] [移動y1] = 3 或 背景數組 [當前橫坐標 + 1] [移動y1] = 7)
    .變量循環首 (1, 移動步數, 1, 變量)
      __啟動窗口_按下某鍵 (#下光標鍵, 0)
    .變量循環尾 ()
  .默認
  .判斷結束
.判斷 (當前橫坐標 > 移動x1 + 1 且 當前縱坐標 = 移動y1)
  移動步數 = 當前橫坐標 - 移動x1 - 1
  .判斷開始 (背景數組 [當前橫坐標 - 1] [移動y1] = 3 或 背景數組 [當前橫坐標 - 1] [移動y1] = 7)
    .變量循環首 (1, 移動步數, 1, 變量)
      __啟動窗口_按下某鍵 (#上光標鍵, 0)
    .變量循環尾 ()
  .默認
  .判斷結束
.判斷 (當前縱坐標 < 移動y1 - 1 且 當前橫坐標 = 移動x1)
  移動步數 = 移動y1 - 當前縱坐標 - 1
  .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標 + 1] = 3 或 背景數組 [當前橫坐標] [當前縱坐標 + 1] = 7)
    .變量循環首 (1, 移動步數, 1, 變量)
      __啟動窗口_按下某鍵 (#右光標鍵, 0)
    .變量循環尾 ()
  .默認
  .判斷結束
.判斷 (當前縱坐標 > 移動y1 + 1 且 當前橫坐標 = 移動x1)
  移動步數 = 當前縱坐標 - 移動y1 - 1
  .判斷開始 (背景數組 [當前橫坐標] [當前縱坐標 - 1] = 3 或 背景數組 [當前橫坐標] [當前縱坐標 - 1] = 7)
    .變量循環首 (1, 移動步數, 1, 變量)
      __啟動窗口_按下某鍵 (#左光標鍵, 0)
    .變量循環尾 ()
  .默認
  .判斷結束
.默認
.判斷結束
.子程序 _工具條1_被單擊
.參數 按鈕索引, 整數型
.判斷開始 (按鈕索引 = 0)
  _撤消_被選擇 ()
.判斷 (按鈕索引 = 1)
  _重來_被選擇 ()
.判斷 (按鈕索引 = 2)
  _聲音_被選擇 ()
.判斷 (按鈕索引 = 3)
  _選關_被選擇 ()
.判斷 (按鈕索引 = 4)
  _退出_被選擇 ()
.判斷 (按鈕索引 = 6)
  _新的想法_被選擇 ()
.判斷 (按鈕索引 = 7)
  _編輯方案_被選擇 ()
.判斷 (按鈕索引 = 8)
  _選擇方案_被選擇 ()
.默認
.判斷結束
.子程序 _開始錄像_被選擇
.局部變量 循環變量1, 整數型
.局部變量 循環變量2, 整數型
時鐘1.時鐘周期 = 0
正在錄像中 = 真
開始錄像.禁止 = 真
停止錄像.禁止 = 假
播放錄像.禁止 = 真
停止播放.禁止 = 真
保存錄像.禁止 = 真
打開錄像文件.禁止 = 真
返回游戲.禁止 = 真
重來.禁止 = 真
選關.禁止 = 真
設計.禁止 = 真
清除數組 (錄像數組)
錄像地圖數據 = { } ' 保存地圖
.計次循環首 (14, 循環變量1)
  .計次循環首 (16, 循環變量2)
    錄像地圖數據 = 錄像地圖數據 + 到字節集 (背景數組 [循環變量1] [循環變量2])
  .計次循環尾 ()
.計次循環尾 ()
時鐘1.時鐘周期 = 500
.子程序 _停止錄像_被選擇
時鐘1.時鐘周期 = 0
正在錄像中 = 假
.如果真 (取數組成員數 (錄像數組) > 0)
  開始錄像.禁止 = 假
  停止錄像.禁止 = 真
.如果真結束
播放錄像.禁止 = 假
停止播放.禁止 = 真
保存錄像.禁止 = 假
開始錄像.禁止 = 假
停止錄像.禁止 = 真
打開錄像文件.禁止 = 假
返回游戲.禁止 = 真
重來.禁止 = 假
選關.禁止 = 假
設計.禁止 = 假
時鐘1.時鐘周期 = 500
.子程序 _播放錄像_被選擇
.局部變量 循環變量1, 整數型
.局部變量 循環變量2, 整數型
.局部變量 記次變量, 整數型
.局部變量 臨時字節集, 字節集
.如果真 (取數組成員數 (錄像數組) = 0)
  返回 ()
.如果真結束
時鐘1.時鐘周期 = 0
錄像播放中 = 真
播放錄像.禁止 = 真
停止播放.禁止 = 假
保存錄像.禁止 = 真
開始錄像.禁止 = 真
停止錄像.禁止 = 真
打開錄像文件.禁止 = 真
返回游戲.禁止 = 真
撤消.禁止 = 真
重來.禁止 = 真
選關.禁止 = 真
設計.禁止 = 真
.如果真 (臨時地圖數據 = { })
  .計次循環首 (14, 循環變量1)
    .計次循環首 (16, 循環變量2)
      臨時地圖數據 = 臨時地圖數據 + 到字節集 (背景數組 [循環變量1] [循環變量2])
    .計次循環尾 ()
  .計次循環尾 ()
.如果真結束
上步橫坐標 = 0
上步縱坐標 = 0
當前橫坐標 = 0
當前縱坐標 = 0
錯誤箱子數 = 0
記次變量 = 0
.計次循環首 (14, 循環變量1)
  .計次循環首 (16, 循環變量2)
    臨時字節集 = 取字節集中間 (錄像地圖數據, 記次變量 × 4 + 1, 4)
    背景數組 [循環變量1] [循環變量2] = 取字節集數據 (臨時字節集, #整數型)
    .判斷開始 (背景數組 [循環變量1] [循環變量2] = 57 或 背景數組 [循環變量1] [循環變量2] = 58)
      當前橫坐標 = 循環變量1
      當前縱坐標 = 循環變量2
    .判斷 (背景數組 [循環變量1] [循環變量2] = 3)
      錯誤箱子數 = 錯誤箱子數 + 1
    .默認
    .判斷結束
    記次變量 = 記次變量 + 1
  .計次循環尾 ()
.計次循環尾 ()
畫板1.清除 (, , , )
第一次畫 = 真
畫背景 (假)
_啟動窗口.標題 = #游戲版本號 + “ 你現在推的是第” + 到文本 (當前關數) + “關”
畫板1.禁止 = 真
_啟動窗口.禁止 = 真
.計次循環首 (取數組成員數 (錄像數組), 循環變量1)
  不自動尋路 = 真
  __啟動窗口_按下某鍵 (錄像數組 [循環變量1], 0)
  移動音樂開關 = 1
  不自動尋路 = 真
  延時 (200)
.計次循環尾 ()
不自動尋路 = 假
_停止播放_被選擇 ()
畫板1.禁止 = 假
_啟動窗口.禁止 = 假
時鐘1.時鐘周期 = 500
.子程序 _停止播放_被選擇
時鐘1.時鐘周期 = 0
錄像播放中 = 假
.如果 (取數組成員數 (撤消數組) > 0)
  撤消.禁止 = 假
.否則
  撤消.禁止 = 真
.如果結束
播放錄像.禁止 = 假
停止播放.禁止 = 真
保存錄像.禁止 = 假
開始錄像.禁止 = 假
停止錄像.禁止 = 真
打開錄像文件.禁止 = 假
返回游戲.禁止 = 假
重來.禁止 = 假
選關.禁止 = 假
設計.禁止 = 假
時鐘1.時鐘周期 = 500
.子程序 _保存錄像_被選擇
.局部變量 臨時字節集, 字節集
.局部變量 循環變量, 整數型
.局部變量 標志, 字節集
時鐘1.時鐘周期 = 0
通用對話框1.類型 = 1
通用對話框1.初始目錄 = 當前目錄
通用對話框1.標題 = “保存游戲錄像”
通用對話框1.文件必須存在 = 真
通用對話框1.文件覆蓋提示 = 真
.如果真 (通用對話框1.打開 () = 真)
  臨時字節集 = { }
  .計次循環首 (取數組成員數 (錄像數組), 循環變量)
    臨時字節集 = 臨時字節集 + 到字節集 (錄像數組 [循環變量])
  .計次循環尾 ()
  標志 = 到字節集 (“E-box Recoder”)
  寫到文件 (通用對話框1.文件名, 標志 + 錄像地圖數據 + 臨時字節集)
.如果真結束
時鐘1.時鐘周期 = 500
.子程序 _打開錄像文件_被選擇
.局部變量 標志, 文本型
.局部變量 變量, 整數型
.局部變量 臨時字節集, 字節集
.局部變量 臨時判斷, 邏輯型
.局部變量 臨時字節集1, 字節集
.局部變量 臨時字節集2, 字節集
.局部變量 記次變量, 整數型
時鐘1.時鐘周期 = 0
通用對話框1.類型 = 0
通用對話框1.初始目錄 = 當前目錄
通用對話框1.標題 = “打開游戲錄像”
通用對話框1.文件必須存在 = 真
通用對話框1.文件覆蓋提示 = 真
.如果真 (通用對話框1.打開 () = 真)
  臨時字節集 = 讀入文件 (通用對話框1.文件名)
  臨時判斷 = 假
  .如果真 (取字節集長度 (臨時字節集) ≥ 224 × 4 + 14)
    標志 = 取字節集數據 (取字節集左邊 (臨時字節集, 14), #文本型)
    .如果真 (標志 = “E-box Recoder”)
      臨時字節集1 = 取字節集中間 (臨時字節集, 15, 224 × 4)
      .如果真 (取字節集長度 (臨時字節集1) = 224 × 4)
        臨時判斷 = 真
        臨時字節集2 = 取字節集中間 (臨時字節集, 224 × 4 + 14 + 1, 取字節集長度 (臨時字節集) - 224 × 4 + 14)
        記次變量 = 取字節集長度 (臨時字節集2) ÷ 4
        清除數組 (錄像數組)
        .如果真 (記次變量 > 0)
          .計次循環首 (記次變量, 變量)
            加入成員 (錄像數組, 取字節集數據 (取字節集中間 (臨時字節集2, (變量 - 1) × 4 + 1, 4), #整數型))
          .計次循環尾 ()
        .如果真結束
      .如果真結束
    .如果真結束
  .如果真結束
  .如果 (臨時判斷 = 真)
    錄像地圖數據 = 臨時字節集1
    _停止錄像_被選擇 ()
  .否則
    信息框 (“選定的文件不是推箱子的錄像文件”, 0, “錯誤”)
  .如果結束
.如果真結束
時鐘1.時鐘周期 = 500
.子程序 _返回游戲_被選擇
.局部變量 循環變量1, 整數型
.局部變量 循環變量2, 整數型
.局部變量 臨時字節集, 字節集
.局部變量 記次變量, 整數型
時鐘1.時鐘周期 = 0
正在錄像中 = 假
錄像播放中 = 假
上步橫坐標 = 0
上步縱坐標 = 0
當前橫坐標 = 0
當前縱坐標 = 0
錯誤箱子數 = 0
記次變量 = 0
.計次循環首 (14, 循環變量1)
  .計次循環首 (16, 循環變量2)
    臨時字節集 = 取字節集中間 (臨時地圖數據, 記次變量 × 4 + 1, 4)
    背景數組 [循環變量1] [循環變量2] = 取字節集數據 (臨時字節集, #整數型)
    .判斷開始 (背景數組 [循環變量1] [循環變量2] ≥ 52 且 背景數組 [循環變量1] [循環變量2] ≤ 59)
      當前橫坐標 = 循環變量1
      當前縱坐標 = 循環變量2
    .判斷 (背景數組 [循環變量1] [循環變量2] = 3)
      錯誤箱子數 = 錯誤箱子數 + 1
    .默認
    .判斷結束
    記次變量 = 記次變量 + 1
  .計次循環尾 ()
.計次循環尾 ()
臨時地圖數據 = { }
畫板1.清除 (, , , )
第一次畫 = 真
畫背景 (假)
_啟動窗口.標題 = #游戲版本號 + “ 你現在推的是第” + 到文本 (當前關數) + “關”
返回游戲.禁止 = 真
時鐘1.時鐘周期 = 500

運行結果:

易語言如何制作推箱子小游戲

以上是“易語言如何制作推箱子小游戲”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女