这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 下井字棋(Tic-Tac-Toe)的机器人

共1条 1/1 1 跳转至

下井字棋(Tic-Tac-Toe)的机器人

工程师
2011-03-15 14:34:06     打赏
下井字棋(Tic-Tac-Toe)的机器人
写于: 星期二 03 六月 @ 21:11:40
 
乐高(LEGO)机器人很多人都知道深蓝(DeepBlue),他曾经战胜世界国际象棋冠军。现在我是使用乐高作了一个可以与人下井字棋(三子棋)的机器人,它不会输给任何人!

下井字棋(Tic-Tac-Toe)的机器人

 

主要部件:
马达:4(其中3个为带齿轮马达,另一个为乐高微型马达)
触动传感器:1
光线传感器:1

控制器:
乐高控制器RCX,关于RCX,可以参考:

RCX内部结构及编程软件介绍

 

编程环境:
NQC (一种类似于C语言并可对RCX进行编程的语言),关于NQC,大家可以参考:

ROBOLAB之外的绝对首选――NQC编程语言

工作原理:
这是一台可以跟人下棋的游戏机。也许大家在小时候都玩过这个游戏(游戏棋盘如下图)。游戏的开始,通过控制马达的运动使光线传感器扫描棋盘上所有的格子,从而获得棋盘当前的状态,通过RCX的计算,决定下棋的位置,再控制马达来将乒乓球放到计算出的位置中。


游戏棋盘(3 X 3)

 

技术特点:


这个机器人最大的特点是体现了人工智能,充分发挥了RCX的特点。一方面RCX可以从传感器读取数据和控制马达输出,另一方面RCX具有很强的计算能力,很容易将自己的算法编写在里面,从而实现了智能控制。
我们的程序使用了下棋程序常用的计分算法,非常简单和容易实现,具体如下:在下棋之前,根据棋盘的情况以及一定的计分方法计算每个格子的分数,找出最大分数,就是下棋子的地方。此算法也有一定的局限,在格子增加时,例如使五子棋,或则是象棋等,很难找到合理的计分方法,这时更多的是使用深度搜索。



计分算法一例

 

程序下载:

ttt.nqc (请使用NQC软件打开)




关键词: 井字     Tic-Tac-Toe     机器人    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]