資料介紹
描述
在我的 Arduino 項目仍然無人認領觸摸屏之后,我決定實現我兒時的夢想,創建一個國際象棋程序。幾個月后它贏了我,但這沒什么大不了的,因為我沒有任何國際象棋等級,只是業余的。
該項目使用 Arduino Mega 2560,因為 Uno 上缺少可操作內存、2.8 英寸觸摸屏、無源蜂鳴器和大約 2000 行代碼。
程序使用Negamax算法,迭代深化,某種殺手啟發式,時間控制。由于明顯的原因,沒有任何位板或哈希。評估功能比較復雜,但不會太多,反正除了材料之外,它計算人物活動,國王安全,棋子結構。求解速度約為每秒 100-200 個節點。
游戲是根據國際象棋規則,包括過路,易位,典當升級。平局也確定了。如果沒有看到任何有效的逃脫將死,算法也可能會放棄。
板子是可旋轉的,一步一步拖放,可以退一步。可以安排初始位置,或從串行端口以 FEN 格式加載。國際象棋游戲可以保存在 EEPROM 中并稍后下載,或以快速模式重播。
有一個將死搜索機制來解決國際象棋問題。
3步找到將死
通過選擇平均思考時間 10sec - 30sec -1min - 3min 10min - 30min - 無限制來給出算法級別。10 秒的游戲對我來說已經足夠了,但可能會在 endspiel 或地平線效應中出現一些問題。在 1 分鐘內,我什至沒有嘗試獲勝——可能只是缺乏勤奮。
如果有人喜歡重復這個項目,并且屏幕不是同一型號,我認為校準觸摸屏很困難,需要調整坐標變換系數。稍后我將在更常見和更大的 3.5 英寸觸摸屏上重新制作草圖。
抱歉裝飾不佳 - 這是我的第一個公共項目。
感謝您的關注。
更新:2018 年 2 月 6 日:
正如我所承諾的,將草圖更新為 3.5 英寸 MCUFRIEND 觸摸屏 320x480 像素。添加了新的變種。
更新:2018 年 2 月 25 日:
GUI按鈕說明:
開始/停止- 開始/停止 arduino 思考當前步驟和制作步驟,停止不是立即的
白/黑棋子- 顯示現在播放的顏色,可變的
曲線箭頭 - 采取最后一步
10 秒.... - 選擇 arduino 意味著思考時間,在困難的情況下可能會超過兩倍,這是難度級別,從最簡單到最難 10 秒 - 30 秒 - 1 分鐘 - 3 分鐘 - 10 分鐘 - 30 分鐘 - 無限制。困難級別我的意思是很難等待:)
黑/白迷你棋盤- 旋轉棋盤
問號 - Check Mate search 模式,用于解決國際象棋問題,在此模式下算法只找到將死,在合理的時間內 3-4 步,最多 6-7 步,沒有時間限制
Cellule board - 開啟模式排列初始位置,打開人物列表(按前面解釋過的棋子可以改變顏色),當前人物通過選擇改變,可以通過按下單元格放置在板上,如果當前人物為空,則單元格被清除盒子。
揚聲器- 打開聲音或靜音(幾乎)。
在排列位置模式中出現了額外的按鈕:
USB(FEN) - 從 USB 端口以 FEN 格式加載位置
開始棋位- 開始新的游戲
空板位置- 安排自定義位置
Running man - 從第一步快速重放位置,可能會停止
方形箭頭- 將當前游戲保存在 EEPROM(arduino 的非易失性存儲器)中
箭頭到正方形 -從 EEPROM 加載游戲(之前保存)
關于如何玩 - 只需拖放圖形正確的顏色,非法步驟將不會做。使易位在易位后將國王移動到最后一個位置。
更新:2018 年 3 月 9 日:
添加了 Arduino DUE 變體 320x480。
Arduino Mega Chess on DUE
使用 MCUFRIEND 3.5 英寸觸摸屏 ILI9486 和 Bodmer TFT_HX8357_Due 庫
https://github.com/Bodmer/TFT_HX8357_Due
修改為支持 ILI9486。帶有 URTouch 庫的觸摸屏 XPT2046。
EEPROM 被 DueFlashStorage 取代
https://github.com/sebnil/DueFlashStorage
添加了一些改進 - GUI(由于缺少readPixel功能而替換了更簡單的離散移動),添加了 3 秒模式,因為與 Arduino 相比,算法的加速度大約是 5 倍,并且求解樹的最大深度增加了。
蜂鳴器也移至針腳 12。
更新:2018 年 3 月 15 日:
要在等待 5 秒后從棋盤的另一側添加自動答案(可能會向后移動),請在 loop() 過程中添加此粗體字符串
環形() {
gui();
if (!solving && rotate==cur_step%2 && millis()-lasttouch>5000) {solving=true; 最后觸摸=毫秒();}
如果(解決){
更新:2018 年 3 月 16 日:
草圖更新到 1.1 版。
更改日志:
等待 5 秒后從棋盤的另一側自動播放。
算法發揮不太明確 - 增加了選擇具有相同估計的不同移動的概率,而不是單個確定移動。
一些小的改進。
一些新的故障:)
現在正在開發具有 3 按鈕界面且無觸摸屏的國際象棋項目,著眼于在 M5Stack 上使用。
更新:2018 年 3 月 22 日:
草圖更新到 1.2 版。
更改日志:
僅在首次亮相時自動選擇不同動作的概率 - 改變首次亮相而不是削弱主要游戲
更新:2018 年 3 月 30 日:
現在正在處理新項目 - 適應 M5Stack 的國際象棋。缺少觸摸屏、3 個按鈕界面、2 英寸屏幕太小...... GUI 全新,提供允許移動以選擇 3 個按鈕。圖形藝術也更新了,根據小屏幕。
測試顯示,與 arduino 相比,速度提高了大約 15 倍。進行中...
M5Stack 上的 Arduino 大型國際象棋
更新:2018 年 4 月 2 日:
草圖更新到 1.3 版。
更改日志:
穩定性改進,評估功能調整
更新:2018 年 4 月 10 日:
用于 M5Stack 的 Arduino 大型國際象棋
更新: 2018年 9 月25 日:
為了項目的完整性,我嘗試制作 3D 打印案例。作為移動電源,它將使用一節18650鋰電池,并由5v輸出DC-DC適配器/充電器供電,工作時間可能超過10小時。外殼尺寸也足以容納 3.5 英寸觸摸屏,至少我有一個版本,只有外殼蓋需要更換。
2.8英寸觸摸屏外殼
打印后,2.8 屏幕的觸摸屏窗口大小似乎有點額外,并且與我的 3.5 MCUFfriend 觸摸屏相對應,如圖所示。電源仍然來自 USB,因為充電器模塊正在開發中。
內有 3.5 英寸觸摸屏的外殼
更新:2019 年 2 月 21 日:
添加了新項目 ESP32 國際象棋引擎
ESP32 國際象棋引擎在 Elometer 上測試
將來可能會與 Arduino Mega 國際象棋 GUI 結合使用。
更新: 2019 年3 月 12 日:
此外,我嘗試將 esp32 的國際象棋引擎用于 arduino mega。最后,它適合有限的 arduino 內存,每個位置 2 分鐘顯示 1995 ELO 評級。結合 GUI 會減慢一點,但不會太多,大約 10-30%,計算速度約為 500-1000 nps。
WAC.009 測試
更新: 2019 年3 月 21 日:
Arduino Mega Chess II 正在進行中。令我驚訝的是,在 Elometer.net 上以最快的模式測試 1926 ELO raiting - 每個位置 5 秒 - 與我自己的可能性相去甚遠。它位于 16 Mhz 8 位芯片上,具有 8K 操作內存!
這個版本有可能自動玩自己,如果沒有找到逃脫將死的方法,algorythm可以放棄。首次亮相模式的播放并非嚴格確定 - 有一些隨機變化。仍然沒有打開的書。
GUI 有 2 種可能的圖形分辨率 - 480x320 和 320x240 像素。Alpha測試仍在進行中...
雙面自動播放模式
更新: 2019 年 4月 26 日:
所以,現在我介紹Arduino Mega Chess II
?
- 用Arduino控制伺服電機的超級簡單方法
- Arduino超級國際象棋II
- 使用Arduino的國際象棋鬧鐘
- 國際象棋機器人開源分享
- 一個簡單的國際象棋時鐘
- 用于M5Stack的Arduino大型國際象棋
- 基于atmega328pb au USB arduino超級棒
- Arduino Uno國內改版電路原理圖下載 0次下載
- Arduino編程基礎(一)——Arduino語言資料下載
- 到底什么是什么是算力?算力對人工智能到底有什么用 14次下載
- 如何使用Python編寫一個國際象棋AI程序 15次下載
- 源碼-象棋 5次下載
- 象棋演播室下載
- 橘中秘棋譜下載-橘中秘象棋譜
- 中國象棋大師 2006
- 超級電容是什么?超級電容的性能特性 1025次閱讀
- 人機組隊概念的戰場應用 408次閱讀
- ChatGPT橫空出世 人工智能進入大模型時代 1157次閱讀
- 如何從網頁控制arduino? 3836次閱讀
- 基于GD32F103系列處理器設計的象棋人機對弈程序 3144次閱讀
- 超級電容電池原理_超級電容電池續航時間 8858次閱讀
- 超級電容電池原理_超級電容電池的弊端 1.2w次閱讀
- 人工智能中計算機視覺技術的歷史和現狀及未來你了解多少 8752次閱讀
- AlphaZero如何快速學習每個游戲,如何從隨機對弈開始訓練 6928次閱讀
- 新時代下的人工智能+圍棋會碰撞出什么樣的火花? 1195次閱讀
- 人工智能的進步到底會帶我們走向怎樣的世界? 3516次閱讀
- 有了OpenAI Five,它已經可以在比賽中擊敗業余玩家 3317次閱讀
- AI自學就可用更少步數復原任意3階魔方 8279次閱讀
- 人類開始進入智能時代,一年來都發生了哪些令人激動的事情? 5996次閱讀
- arduino是什么以及arduino能干什么 4.4w次閱讀
下載排行
本周
- 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次下載 | 免費
評論
查看更多