超声波捕鱼机,电鱼机价格,超声波逆变器-海猎人专卖网

当前位置: 主页 > 电子技术 >

23.2.4 制作更多

时间:2020-03-11 14:03来源:海猎人

23.2.4 制作更多

我之前提到过,我不知道怎样去搭建一个电路能有足够的智能来玩这个游戏。但是我相信我可以用软件完成。一个常见的微控制器的内存相对很小,但是奥维德游戏每一步移动的可能性也只有很少几种,用软件是可能利用仅有是四条规则,按照优先级来处理的。这些规则会告诉微控制器如何去操作(大家可以在和别人对抗的时候跟着微处理器去操作来测试一下):

如果你能移动一个棋子,使得三个棋子在一条线上,那么就如此操作。否则——

如果你的对手可以移动一个棋子使得他的三个棋子连成一条线,那么尝试去阻止他。否则——

如果你能将自己的棋子移动到中间网格中,那么就如此操作。否则——

任意将某个棋子移动到一个空闲的网格中。不能移动,那么就是平局。

靠这个程序赢不了太多比赛,但是还是能使用。问题在于,需要在计算机程序里面表示棋盘和棋子,而这就得用整数阵列。在Arduino中,在C语言里面是没有错误检测来确保我们在阵列的范围内的,而且还有很多我不太喜欢的其他功能。

即使到现在,绝大多数的微控制器都不是很强大,对用户也不是很友好,笔记老式的IBM-PCjr也不能防错,我在20世纪80年代就在那些老控制器上写微软的BASIC程序了。这个情况可真是糟糕!

我的朋友Fredrik Jansson,一位来自芬兰的物理学家帮助我对这本书做了一些常识性检查。他给我建议是可以在桌面电脑上做一些早期的比较难的工作,然后再到微控制器上去实现。Fredrik计算得出在棋盘上三个黑色棋子和三个白色棋子的布置总共有1680种可能。因为如果黑色棋子和白色棋子交换位置,这些位置其实没有变过,所以事实上总共只有840种逻辑上不同的位置。这个数字已经小到可以让计算机来历便所有可能的游戏,并且在每一种情况下都走出最佳的一步来。

如果我们用计算机来编制出一张最佳操作的表来,就可以将这张表装在微处理器有限的内存里面。Fredrik得出的结论是我们每一步只需要四个比特。两个比特用来选择棋子,另外两个比特用来指示向上下左右移动。因此,指引840中逻辑位置的操作只需要420个字节。大家还需要一些额外的指令来做最开始的布局,放置不同颜色的三个棋子。但是这套方案看起来试试可以做的。每当有一位对手走了一步之后,微控制器会去查找之前由更强大的兄弟桌面计算机做出来的最佳反应。

如果大家决定了去尝试这个编程策略或者其他某种策略的话,请告知我们最终的效果如何。

------分隔线----------------------------
相关文章推荐:
24.1.2 背景:另一种用与非门做的加法器

      24.1.2 背景:另一种用与非门做的加法器 由于逻辑门可以通过不同的接线方式相互模拟,用异或门和与门的组... [详情]


24.1.1 从比特到状态

      24.1.1 从比特到状态 我们关于二进制的算术规则就说到这里。大家现在已经具备了足够的知识去搭建二进制加... [详情]


项目24:做加法,24.1 二进制的五个规则

      项目 24 :做加法 在我从逻辑门转到其他话题之前,我还得给大家展示一个最基础的逻辑应用:做加法,这样才... [详情]


23.2.5 猜谜的答案

      23.2.5 猜谜的答案 Dudeney 关于窗户的猜谜答案见图 23-6 。窗户的尺寸每一边都是 2 英尺,每一个三角形的... [详情]


23.2.4 制作更多

      23.2.4 制作更多 我之前提到过,我不知道怎样去搭建一个电路能有足够的智能来玩这个游戏。但是我相信我可... [详情]


发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
在线客服