【DigiKey“智造万物,快乐不停”创意大赛】增加计时和获取提示
[复制链接]
之前立的目标不仅是做个简单游戏机,还要增加对战和助手的功能。
一、对战
对战这个事开始想的比较复杂,总觉得得加个线、弄个联网之类的。后来玩起来才发现,这个是单人游戏,不需要实时连接,那么就简单了,只要在每个游戏机上增加计时功能就可以了。
计时我用的是utime包,能统计到毫秒,主要用了3个方法:
1、t1=utime.ticks_ms() 可以获取精确的毫秒数。
2、di=utime.ticks_diff(t1, t0) 可以计算 t1-t0 的毫秒数
3、utime.localtime(int(di/1000))可以把秒换算成“(年,月,日,小时,分钟,秒,工作日,晚期)”格式的的元祖,注意这个元组的起点是2000年1月1日,所以要减掉才能用。
二、行棋助手
助手这个功能,上一篇帖子讲过了用solution来实现,放到MaixBIt上,要解决的就只剩显示了。solution返回的是一个list,里面每一项是格式为“(棋子号,起点,终点)”的元组。因此只要提取出第0项,用“ 'move piece %d from %d to %d'%(tmp_soution[0]) ”生成字符串就可以了。
这里好像有个问题,就是如果对战时,用了“Get TIP”功能,是不是不公平?答案肯定是否定的——虽然K210能跑起来深度优先搜索,但是要用户要花好几秒盯着'WAIT PLEASE'才能看到答案。这就像跨栏比赛,你一路踹倒栏也不犯规,时间依然有效,因为踹栏花的时间代价远大于跨过去。
现在这版运行起来是这样的:
来个特写
|