資料介紹
描述
使用數字的塑料滑動 15 拼圖
滑動拼圖歷史悠久。
這是一款用#CircuitPython為@Adafruit #PyBadge 和 PyBadge LC編寫的滑動益智游戲。它使用圖片來拼圖,并疊加數字以使拼圖更容易解決。它是可配置的,因此可以使用不同的圖像,它支持 3×3(8 塊)和 4×4(15 塊)拼圖。Adafruit displayio庫中使用的平鋪圖形方法非常適合滑動益智游戲。
這個怎么運作
在初始設置和簿記之后,該程序有一個無限的 while 循環。它大致遵循狀態機模式,狀態為“介紹”、“設置”、“播放”和“已解決”。“intro”顯示拼圖圖像,然后要求玩家選擇 3×3 或 4×4 拼圖。一旦做出選擇,狀態就會轉換為“設置”。在此狀態下,拼圖被打亂并顯示打亂的拼圖。然后狀態轉換為“播放”。在“播放”中,程序會監控上、下、左、右按鈕并相應地移動方塊。每次移動后,都會檢查拼圖是否處于已解決的位置。如果是,則狀態轉換為“已解決”。一旦進入“已解決”狀態,程序會顯示“您贏了”消息,然后是完整圖像。然后它會無限期地等待,直到玩家按下開始返回“介紹”狀態并再次播放或關閉徽章。這軟件是開源的并發布在 GitHub 上。
關于可解決性的說明
如果一個人通過允許的隨機移動來打亂謎題,那么謎題總是可以解決的,但是需要很多很多這樣的動作才能使謎題隨機化。相反,如果只是隨機放置每個方塊,結果表明只有一半的可能排列可以滑回解決方案。借鑒別人的做法,我的代碼選擇了一個完全隨機的排列,然后檢查它是否可解(參見代碼中的“可解”函數)。如果不是,它會再次隨機化拼圖,并重復此過程,直到找到可解決的排列。可溶性規則是:
- 如果網格寬度為奇數(例如,3×3),則可解情況下的反轉次數為偶數。
- 如果網格寬度是偶數(例如4×4),并且空白在從底部數起的偶數行(倒數第二個,倒數第四個等),那么在可解情況下的反轉次數是奇數。
- 如果網格寬度是偶數,并且空白位于從底部數起的奇數行(最后、倒數第三、倒數第五等),則可解情況下的反轉次數是偶數。
這篇文章頂部顯示的塑料滑塊拼圖無法解決。空白在從底部(第一行)開始的奇數行,并且只有一個反轉,一個奇數。
如何玩游戲
要玩,只需將軟件加載到 PyBadge 上并打開它。顯示屏將首先顯示完整的拼圖圖像,然后要求您按“A”按鈕選擇 3×3(8 塊)拼圖或按“B”按鈕選擇 4×4(15 塊)拼圖。一個插槽始終是空的,以便可以移動瓷磚。做出選擇后,您將看到拼圖圖片和拼圖塊,處于已解決狀態,然后拼圖將被打亂以進行游戲。4×4 拼圖比 3×3 拼圖難得多,需要更多的步驟來解決,但兩者都相當容易練習。
使用 4 個方向按鈕一次滑動一個方塊。目標是讓方塊按數字順序排列,從左到右,從上到下,空白點在右下角。一旦你做到了這一點,你就贏了!獲勝后顯示完整圖像后,您可以按開始按鈕重新玩。有時您需要按幾次按鈕。
卡住?人類可以使用許多啟發式方法來解決這些難題(以及計算機的啟發式算法)。此處記錄了對我有用的方法。
更改拼圖圖像并創建自己的拼圖
parameters.py 文件存儲了幾個參數,包括存儲拼圖圖像的文件夾的名稱。例如,要將圣誕老人拼圖更改為女巫拼圖,只需編輯以下行:puzzle_graphics_folder = “santa” 到 puzzle_graphics_folder = “witch”。我為拼圖提供了三組圖像:圣誕老人、女巫和情人節花卉圖像。
要制作您自己的拼圖,您需要創建 3 個 bmp 圖像:
- 完整圖像,在新文件夾中保存為“full.bmp”
- 3×3 拼圖的圖塊圖像,在同一文件夾中另存為“tiles3.bmp”
- 4×4 拼圖的圖塊圖像,在同一文件夾中保存為“tiles4.bmp”
這些圖像的大小必須完全正確,程序才能運行。完整圖像和 4×4 平鋪圖像必須為 160 像素寬 x 128 像素高。3×3 的平鋪圖像必須為 159 像素寬 x 126 像素高。
從完整圖像開始。要制作 4×4 平鋪圖像,請將圖像右下角的像素涂黑(x 坐標 121 – 160,y 坐標 96 – 128)。您還可以在每個圖塊上加上數字,以便更輕松地解決難題。為此,我使用圖像編輯程序添加一個帶有一組網格線的圖層,創建一個 4×4 網格。然后我把右下角的方塊涂黑,并在每個方塊的右上角寫上數字。然后我刪除網格層并將圖像保存為 bmp 文件。對 3×3 平鋪圖像執行相同的過程,但首先將總圖像重新縮放為 159 x 126 并使用 3×3 而不是 4×4 網格。將這三個文件保存到新文件夾后,將 parameters.py 程序中的 puzzle_graphics_folder 行更改為指向新文件夾名稱。
- 一次性無菌注射器滑動性測試儀
- Turning Lock轉鎖拼圖開源分享
- 基于STM32設計的拼圖小游戲
- 簡易LC濾波器設計方案 76次下載
- HMC570LC571LC571LC572LC904LC904LC5制革
- 串口屏Modbus教程4_滑動選擇和菜單選擇控件V1.0
- 大彩串口屏控件教程11 - 串口屏滑動選擇控件應用
- 一種圖像局部區域匹配驅動的導航式拼圖方法 4次下載
- 基于MBNS滑動窗口的多標量乘快速算法 18次下載
- LabVIEW拼圖游戲的仿真與設計課程詳細說明 29次下載
- Delphi教程_奇妙的拼圖游戲 5次下載
- labview拼圖游戲程序 106次下載
- 滑動變阻器演示實驗 0次下載
- 滑動摩擦力與相對速度的關系討論
- 動滑動摩擦因數的測試與應用
- LC電路是如何產生振蕩的? 1691次閱讀
- LC振蕩電路原理詳解 2793次閱讀
- LC振蕩電路原理詳解 3.9w次閱讀
- 滑動變阻器大小選擇 1.1w次閱讀
- 滑動變阻器的正確連接方法 7.1w次閱讀
- 手機屏幕為什么要用皮膚接觸才能滑動 8372次閱讀
- 滑動變阻器的使用方法 4.7w次閱讀
- 滑動變阻器的作用是什么 8w次閱讀
- 基于滑動原理分選不同尺寸單細胞的微流控裝置 4428次閱讀
- lc振蕩電路和lc諧振電路有什么區別?lc振蕩電路的原理及特點詳解 9.1w次閱讀
- lc振蕩電路頻率怎么計算_lc振蕩電路頻率計算(計算公式) 7.1w次閱讀
- lc振蕩電路是如何起振的_lc振蕩電路起振條件及調試 3.3w次閱讀
- lc振蕩電路分析_lc振蕩電路工作原理及特點分析 12.3w次閱讀
- LC振蕩電路工作原理,LC串并聯電路匯總 2.8w次閱讀
- LC諧振頻率計算公式 LC串聯和并聯諧振頻率計算 34.8w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多