您好,登錄后才能下訂單哦!
小編給大家分享一下易語言如何使用畫板制作圍貓游戲,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
DLL命令表
.版本 2 .DLL命令 系統關于對話框, , , "ShellAboutA" .參數 窗口句柄, 整數型 .參數 應用程序標題, 文本型 .參數 其他信息, 文本型 .參數 圖標句柄, 整數型
圖片資源表
.版本 2 .圖片 圓點白色 .圖片 圓點貓 .圖片 圓點墻 .圖片 圓點叉
圍貓游戲
.版本 2 .程序集 窗口程序集_啟動窗口 .程序集變量 圓點狀態, 整數型, , "121", 0空白1圍墻2陷阱 .程序集變量 貓位置, 整數型 .程序集變量 游戲狀態, 整數型, , , 0未開始1正在游戲2游戲結束 .程序集變量 移動路徑, 整數型, , "0", 貓的逃跑路徑 .程序集變量 圓點步數, 整數型, , "121", 計算逃跑路徑時使用,貓到每一點位置的距離 .子程序 新建游戲 .局部變量 橫向計次, 整數型 .局部變量 縱向計次, 整數型 .局部變量 位置頂邊, 整數型 .局部變量 位置左邊, 整數型 .局部變量 臨時整數, 整數型 .局部變量 計次變量, 整數型 .局部變量 當前位置, 整數型 ' 重置游戲狀態 .計次循環首 (121, 臨時整數) 圓點狀態 [臨時整數] = 0 .計次循環尾 () 游戲狀態 = 1 貓位置 = 61 清除數組 (移動路徑) ' 畫出背景 臨時整數 = 載入圖片 (#圓點白色) .計次循環首 (11, 縱向計次) .計次循環首 (11, 橫向計次) 位置左邊 = (橫向計次 - 1) × 48 .如果真 (縱向計次 % 2 = 0) 位置左邊 = 位置左邊 + 24 .如果真結束 位置頂邊 = (縱向計次 - 1) × 40 畫板1.畫圖片 (臨時整數, 位置左邊, 位置頂邊, , , -取顏色值 (128, 128, 128)) .計次循環尾 () .計次循環尾 () 卸載圖片 (臨時整數) ' 畫出貓 臨時整數 = 載入圖片 (#圓點貓) 縱向計次 = (貓位置 - 1) \ 11 橫向計次 = 貓位置 - 縱向計次 × 11 位置左邊 = (橫向計次 - 1) × 48 .如果真 (縱向計次 % 2 = 1) 位置左邊 = 位置左邊 + 24 .如果真結束 位置頂邊 = 縱向計次 × 40 畫板1.畫圖片 (臨時整數, 位置左邊, 位置頂邊, , , -取顏色值 (128, 128, 128)) 卸載圖片 (臨時整數) ' 畫出隨機9個× 臨時整數 = 載入圖片 (#圓點叉) .判斷循環首 (計次變量 < 9) 置隨機數種子 () 當前位置 = 取隨機數 (1, 121) .如果真 (當前位置 ≠ 貓位置 且 圓點狀態 [當前位置] = 0) 計次變量 = 計次變量 + 1 圓點狀態 [當前位置] = 2 縱向計次 = (當前位置 - 1) \ 11 橫向計次 = 當前位置 - 縱向計次 × 11 位置左邊 = (橫向計次 - 1) × 48 .如果真 (縱向計次 % 2 = 1) 位置左邊 = 位置左邊 + 24 .如果真結束 位置頂邊 = 縱向計次 × 40 畫板1.畫圖片 (臨時整數, 位置左邊, 位置頂邊, , , -取顏色值 (128, 128, 128)) .如果真結束 .判斷循環尾 () 卸載圖片 (臨時整數) .子程序 _畫板1_鼠標左鍵被按下, 邏輯型 .參數 橫向位置, 整數型 .參數 縱向位置, 整數型 .參數 功能鍵狀態, 整數型 .局部變量 橫坐標, 整數型 .局部變量 縱坐標, 整數型 .局部變量 臨時整數, 整數型 .局部變量 位置頂邊, 整數型 .局部變量 位置左邊, 整數型 .局部變量 位置序號, 整數型 .如果真 (游戲狀態 ≠ 1) 返回 () .如果真結束 .如果真 (畫板1.取點 (橫向位置, 縱向位置) = #灰色) 返回 () .如果真結束 縱坐標 = 縱向位置 \ 40 .如果 (縱坐標 % 2 = 1) 橫坐標 = (橫向位置 + 24) \ 48 - 1 .否則 橫坐標 = 橫向位置 \ 48 .如果結束 ' 計算點擊序號 位置序號 = 橫坐標 + 縱坐標 × 11 + 1 ' 判斷是否可以圍墻 .如果真 (位置序號 = 貓位置) 返回 () .如果真結束 .如果真 (圓點狀態 [位置序號] > 0) 返回 () .如果真結束 ' 畫出圍墻 臨時整數 = 載入圖片 (#圓點墻) 位置左邊 = 橫坐標 × 48 .如果真 (縱坐標 % 2 = 1) 位置左邊 = 位置左邊 + 24 .如果真結束 位置頂邊 = 縱坐標 × 40 畫板1.畫圖片 (臨時整數, 位置左邊, 位置頂邊, , , ) 卸載圖片 (臨時整數) ' 修改位置狀態 圓點狀態 [位置序號] = 1 ' 移動貓 移動貓 () ' 檢查游戲狀態 檢查狀態 () .子程序 移動貓 .局部變量 橫坐標, 整數型 .局部變量 縱坐標, 整數型 .局部變量 位置左邊, 整數型 .局部變量 位置頂邊, 整數型 .局部變量 臨時整數, 整數型 ' 尋找逃跑路徑 尋找路徑 () ' 移動路徑 .如果真 (取數組成員數 (移動路徑) > 1 且 游戲狀態 = 1) ' 刪除貓 臨時整數 = 載入圖片 (#圓點白色) 縱坐標 = (貓位置 - 1) \ 11 橫坐標 = 貓位置 - 縱坐標 × 11 位置左邊 = (橫坐標 - 1) × 48 .如果真 (縱坐標 % 2 = 1) 位置左邊 = 位置左邊 + 24 .如果真結束 位置頂邊 = 縱坐標 × 40 畫板1.畫圖片 (臨時整數, 位置左邊, 位置頂邊, , , -取顏色值 (128, 128, 128)) 卸載圖片 (臨時整數) ' 移動貓位置 貓位置 = 移動路徑 [2] 刪除成員 (移動路徑, 1, ) ' 畫出貓 臨時整數 = 載入圖片 (#圓點貓) 縱坐標 = (貓位置 - 1) \ 11 橫坐標 = 貓位置 - 縱坐標 × 11 位置左邊 = (橫坐標 - 1) × 48 .如果真 (縱坐標 % 2 = 1) 位置左邊 = 位置左邊 + 24 .如果真結束 位置頂邊 = 縱坐標 × 40 畫板1.畫圖片 (臨時整數, 位置左邊, 位置頂邊, , , -取顏色值 (128, 128, 128)) 卸載圖片 (臨時整數) .如果真結束 .子程序 檢查路徑, , , 無用 .局部變量 計次變量, 整數型 .局部變量 是否可用, 邏輯型 .如果 (取數組成員數 (移動路徑) = 0) 尋找路徑 () .否則 ' 判斷現有路徑是否還可用 是否可用 = 真 .計次循環首 (取數組成員數 (移動路徑), 計次變量) .如果真 (圓點狀態 [移動路徑 [計次變量]] > 0) 是否可用 = 假 跳出循環 () .如果真結束 .計次循環尾 () .如果真 (是否可用 = 假) 尋找路徑 () .如果真結束 .如果結束 .子程序 尋找路徑 .局部變量 當前路徑, 整數型, , "0" .局部變量 最短路徑, 整數型, , "0" .局部變量 邊緣位置, 整數型, , "40" .局部變量 計次變量, 整數型 .局部變量 是否完成, 邏輯型 .局部變量 臨時文本, 文本型 .局部變量 出口位置, 整數型 清除數組 (移動路徑) ' 計算邊緣位置 .計次循環首 (11, 計次變量) 邊緣位置 [計次變量] = 計次變量 .計次循環尾 () .計次循環首 (9, 計次變量) 邊緣位置 [計次變量 + 11] = 計次變量 × 11 + 1 .計次循環尾 () .計次循環首 (9, 計次變量) 邊緣位置 [計次變量 + 20] = (計次變量 + 1) × 11 .計次循環尾 () .計次循環首 (11, 計次變量) 邊緣位置 [計次變量 + 29] = 計次變量 + 110 .計次循環尾 () ' 重置步數 .計次循環首 (121, 計次變量) 圓點步數 [計次變量] = 99 .計次循環尾 () 圓點步數 [貓位置] = 0 ' 遞歸計算貓位置到每個位置的步數 計算步數 (貓位置) ' 尋找最短的出口位置 .計次循環首 (40, 計次變量) .如果真 (圓點步數 [邊緣位置 [計次變量]] > 1) .如果 (出口位置 = 0) 出口位置 = 邊緣位置 [計次變量] .否則 .如果真 (圓點步數 [邊緣位置 [計次變量]] < 圓點步數 [出口位置]) 出口位置 = 邊緣位置 [計次變量] .如果真結束 .如果結束 .如果真結束 .計次循環尾 () .如果真 (出口位置 = 0) 返回 () .如果真結束 ' 反向遞歸生成移動路徑 加入成員 (移動路徑, 出口位置) 生成路徑 (出口位置) .子程序 生成路徑 .參數 當前位置, 整數型 .局部變量 當前步數, 整數型 .局部變量 橫坐標, 整數型 .局部變量 縱坐標, 整數型 .局部變量 周圍位置, 整數型, , "6" .局部變量 下個位置, 整數型 .局部變量 計次變量, 整數型 當前步數 = 圓點步數 [當前位置] .如果真 (當前步數 = 1) 插入成員 (移動路徑, 1, 貓位置) 返回 () .如果真結束 縱坐標 = (當前位置 - 1) \ 11 橫坐標 = 當前位置 - 縱坐標 × 11 - 1 ' 計算周圍的位置 ' 查找左上角 .如果真 (縱坐標 > 0) .如果 (縱坐標 % 2 = 1) 周圍位置 [1] = (縱坐標 - 1) × 11 + 橫坐標 + 1 .否則 .如果真 (橫坐標 > 0) 周圍位置 [1] = (縱坐標 - 1) × 11 + 橫坐標 .如果真結束 .如果結束 .如果真結束 ' 查找右上角 .如果真 (縱坐標 > 0) .如果 (縱坐標 % 2 = 1) .如果真 (橫坐標 < 10) 周圍位置 [2] = (縱坐標 - 1) × 11 + 橫坐標 + 2 .如果真結束 .否則 周圍位置 [2] = (縱坐標 - 1) × 11 + 橫坐標 + 1 .如果結束 .如果真結束 ' 查找左邊 .如果真 (橫坐標 > 0) 周圍位置 [3] = 縱坐標 × 11 + 橫坐標 .如果真結束 ' 查找右邊 .如果真 (橫坐標 < 10) 周圍位置 [4] = 縱坐標 × 11 + 橫坐標 + 2 .如果真結束 ' 查找左下角 .如果真 (縱坐標 < 10) .如果 (縱坐標 % 2 = 1) 周圍位置 [5] = (縱坐標 + 1) × 11 + 橫坐標 + 1 .否則 .如果真 (橫坐標 > 0) 周圍位置 [5] = (縱坐標 + 1) × 11 + 橫坐標 .如果真結束 .如果結束 .如果真結束 ' 查找右下角 .如果真 (縱坐標 < 10) .如果 (縱坐標 % 2 = 1) .如果真 (橫坐標 < 10) 周圍位置 [6] = (縱坐標 + 1) × 11 + 橫坐標 + 2 .如果真結束 .否則 周圍位置 [6] = (縱坐標 + 1) × 11 + 橫坐標 + 1 .如果結束 .如果真結束 ' 尋找下個位置 .計次循環首 (6, 計次變量) .如果真 (周圍位置 [計次變量] > 0) .如果真 (圓點步數 [周圍位置 [計次變量]] = 當前步數 - 1) 下個位置 = 周圍位置 [計次變量] 跳出循環 () .如果真結束 .如果真結束 .計次循環尾 () ' 如果找不到路徑,游戲結束 .如果真 (下個位置 = 0) 當前步數 = 0 .計次循環首 (121, 計次變量) .如果真 (圓點狀態 [計次變量] = 1) 當前步數 = 當前步數 + 1 .如果真結束 .計次循環尾 () 信息框 (“貓被圍住了!一共用了” + 到文本 (當前步數) + “步。”, #信息圖標, “游戲結束”) 游戲狀態 = 2 返回 () .如果真結束 ' 加入數組 插入成員 (移動路徑, 1, 下個位置) ' 遞歸調用 生成路徑 (下個位置) .子程序 計算步數 .參數 當前位置, 整數型 .局部變量 橫坐標, 整數型 .局部變量 縱坐標, 整數型 .局部變量 周圍位置, 整數型, , "6" .局部變量 計次變量, 整數型 縱坐標 = (當前位置 - 1) \ 11 橫坐標 = 當前位置 - 縱坐標 × 11 - 1 ' 計算周圍的位置 ' 查找左上角 .如果真 (縱坐標 > 0) .如果 (縱坐標 % 2 = 1) 周圍位置 [1] = (縱坐標 - 1) × 11 + 橫坐標 + 1 .否則 .如果真 (橫坐標 > 0) 周圍位置 [1] = (縱坐標 - 1) × 11 + 橫坐標 .如果真結束 .如果結束 .如果真結束 ' 查找右上角 .如果真 (縱坐標 > 0) .如果 (縱坐標 % 2 = 1) .如果真 (橫坐標 < 10) 周圍位置 [2] = (縱坐標 - 1) × 11 + 橫坐標 + 2 .如果真結束 .否則 周圍位置 [2] = (縱坐標 - 1) × 11 + 橫坐標 + 1 .如果結束 .如果真結束 ' 查找左邊 .如果真 (橫坐標 > 0) 周圍位置 [3] = 縱坐標 × 11 + 橫坐標 .如果真結束 ' 查找右邊 .如果真 (橫坐標 < 10) 周圍位置 [4] = 縱坐標 × 11 + 橫坐標 + 2 .如果真結束 ' 查找左下角 .如果真 (縱坐標 < 10) .如果 (縱坐標 % 2 = 1) 周圍位置 [5] = (縱坐標 + 1) × 11 + 橫坐標 + 1 .否則 .如果真 (橫坐標 > 0) 周圍位置 [5] = (縱坐標 + 1) × 11 + 橫坐標 .如果真結束 .如果結束 .如果真結束 ' 查找右下角 .如果真 (縱坐標 < 10) .如果 (縱坐標 % 2 = 1) .如果真 (橫坐標 < 10) 周圍位置 [6] = (縱坐標 + 1) × 11 + 橫坐標 + 2 .如果真結束 .否則 周圍位置 [6] = (縱坐標 + 1) × 11 + 橫坐標 + 1 .如果結束 .如果真結束 ' 設置周圍步數 .計次循環首 (6, 計次變量) .如果真 (周圍位置 [計次變量] > 0) .如果 (圓點狀態 [周圍位置 [計次變量]] = 0) .如果 (圓點步數 [周圍位置 [計次變量]] > 圓點步數 [當前位置] + 1) 圓點步數 [周圍位置 [計次變量]] = 圓點步數 [當前位置] + 1 .否則 周圍位置 [計次變量] = 0 .如果結束 .否則 圓點步數 [周圍位置 [計次變量]] = -1 周圍位置 [計次變量] = 0 .如果結束 .如果真結束 .計次循環尾 () ' 遞歸調用 .計次循環首 (6, 計次變量) .如果真 (周圍位置 [計次變量] > 0) 計算步數 (周圍位置 [計次變量]) .如果真結束 .計次循環尾 () .子程序 檢查狀態 .局部變量 橫坐標, 整數型 .局部變量 縱坐標, 整數型 .局部變量 位置序號, 整數型 .局部變量 缺口數量, 整數型 .局部變量 圍墻數量, 整數型 .局部變量 計次變量, 整數型 縱坐標 = (貓位置 - 1) \ 11 橫坐標 = 貓位置 - 縱坐標 × 11 - 1 ' 查找左上角 .如果 (縱坐標 > 0) .如果 (縱坐標 % 2 = 1) 位置序號 = (縱坐標 - 1) × 11 + 橫坐標 + 1 .如果真 (圓點狀態 [位置序號] > 0) 圍墻數量 = 圍墻數量 + 1 .如果真結束 .否則 .如果 (橫坐標 > 0) 位置序號 = (縱坐標 - 1) × 11 + 橫坐標 .如果真 (圓點狀態 [位置序號] > 0) 圍墻數量 = 圍墻數量 + 1 .如果真結束 .否則 缺口數量 = 缺口數量 + 1 .如果結束 .如果結束 .否則 缺口數量 = 缺口數量 + 1 .如果結束 ' 查找右上角 .如果 (縱坐標 > 0) .如果 (縱坐標 % 2 = 1) .如果 (橫坐標 < 10) 位置序號 = (縱坐標 - 1) × 11 + 橫坐標 + 2 .如果真 (圓點狀態 [位置序號] > 0) 圍墻數量 = 圍墻數量 + 1 .如果真結束 .否則 缺口數量 = 缺口數量 + 1 .如果結束 .否則 位置序號 = (縱坐標 - 1) × 11 + 橫坐標 + 1 .如果真 (圓點狀態 [位置序號] > 0) 圍墻數量 = 圍墻數量 + 1 .如果真結束 .如果結束 .否則 缺口數量 = 缺口數量 + 1 .如果結束 ' 查找左邊 .如果 (橫坐標 > 0) 位置序號 = 縱坐標 × 11 + 橫坐標 .如果真 (圓點狀態 [位置序號] > 0) 圍墻數量 = 圍墻數量 + 1 .如果真結束 .否則 缺口數量 = 缺口數量 + 1 .如果結束 ' 查找右邊 .如果 (橫坐標 < 10) 位置序號 = 縱坐標 × 11 + 橫坐標 + 2 .如果真 (圓點狀態 [位置序號] > 0) 圍墻數量 = 圍墻數量 + 1 .如果真結束 .否則 缺口數量 = 缺口數量 + 1 .如果結束 ' 查找左下角 .如果 (縱坐標 < 10) .如果 (縱坐標 % 2 = 1) 位置序號 = (縱坐標 + 1) × 11 + 橫坐標 + 1 .如果真 (圓點狀態 [位置序號] > 0) 圍墻數量 = 圍墻數量 + 1 .如果真結束 .否則 .如果 (橫坐標 > 0) 位置序號 = (縱坐標 + 1) × 11 + 橫坐標 .如果真 (圓點狀態 [位置序號] > 0) 圍墻數量 = 圍墻數量 + 1 .如果真結束 .否則 缺口數量 = 缺口數量 + 1 .如果結束 .如果結束 .否則 缺口數量 = 缺口數量 + 1 .如果結束 ' 查找右下角 .如果 (縱坐標 < 10) .如果 (縱坐標 % 2 = 1) .如果 (橫坐標 < 10) 位置序號 = (縱坐標 + 1) × 11 + 橫坐標 + 2 .如果真 (圓點狀態 [位置序號] > 0) 圍墻數量 = 圍墻數量 + 1 .如果真結束 .否則 缺口數量 = 缺口數量 + 1 .如果結束 .否則 位置序號 = (縱坐標 + 1) × 11 + 橫坐標 + 1 .如果真 (圓點狀態 [位置序號] > 0) 圍墻數量 = 圍墻數量 + 1 .如果真結束 .如果結束 .否則 缺口數量 = 缺口數量 + 1 .如果結束 .如果真 (缺口數量 > 0) 信息框 (“貓逃跑了!”, #信息圖標, “游戲結束”) 游戲狀態 = 2 返回 () .如果真結束 .如果真 (圍墻數量 > 5) .計次循環首 (121, 計次變量) .如果真 (圓點狀態 [計次變量] = 1) 缺口數量 = 缺口數量 + 1 .如果真結束 .計次循環尾 () 信息框 (“貓被圍住了!一共用了” + 到文本 (缺口數量) + “步。”, #信息圖標, “游戲結束”) 游戲狀態 = 2 返回 () .如果真結束 .子程序 __啟動窗口_創建完畢 _啟動窗口.寬度 = _啟動窗口.寬度 + 544 - _啟動窗口.取用戶區寬度 () _啟動窗口.高度 = _啟動窗口.高度 + 440 - _啟動窗口.取用戶區高度 () .子程序 _菜單開始游戲_被選擇 新建游戲 ()
運行結果:
以上是“易語言如何使用畫板制作圍貓游戲”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。