arduino mega 和触摸屏做国际象棋游戏
在我的Arduino项目还没有人使用触摸屏的时候,我决定实现我儿时的梦想,创建一个象棋程序。几个月后,它赢了我,但这不是什么大事,因为我没有任何国际象棋评级,只是业余爱好者。
这个项目使用Arduino Mega 2560, Uno内存不足,2.8英寸触摸屏,无源蜂鸣器,大约2000行代码。
程序采用负ax算法,迭代深化,某种杀手启发式,时间控制。没有任何位板或散列的明显原因。评价函数比较复杂,但又不太多,无论如何它都是在除物质以外的计算活动、王的安全、卒的结构。求解速度约为每秒100-200个节点。
下棋是按照下棋规则进行的,包括顺手、抛骰、卒升。绘制也是确定的。算法也可能放弃,如果没有看到任何vay逃脱将死。
板是可旋转的,通过拖放一步,就可以退一步。可以安排初始位置,或从串行端口以FEN格式加载。国际象棋游戏可以保存在EEPROM和下载后,或重播在快速模式。
有一个将死搜索机制来解决象棋问题。
通过选择平均思考时间10sec - 30sec -1min - 3min - 10min - 30min -无极限,给出了算法的层次。对我来说,10秒的政权游戏是就足够了,但可能是一些问题在结束或地平线的效果。在1分钟的比赛中,我完全没有赢的概率——我的棋艺实在菜。
如果有人喜欢重复这个项目,而且屏幕模型不一样,我只看到触摸屏校准困难,需要调整坐标变换系数。稍后我将在更常见和更大的3.5英寸触摸屏上重新绘制草图。不好意思,装修太差了,这是我的第一个公共项目。谢谢大家的关注。Upd: 2018年2月6日:正如我承诺的,将草图更新为3.5英寸MCUFRIEND触摸屏320x480像素。添加新的变体。
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com