1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Storm之——实现井字棋游戏(人工智能)

Storm之——实现井字棋游戏(人工智能)

时间:2019-02-14 14:09:07

相关推荐

Storm之——实现井字棋游戏(人工智能)

转载请注明出处:/l1028386804/article/details/79149418

一、下载源码

不多说,大家直接到链接/download/l1028386804/10221555下载源码进行研究。

二、本地部署

这里,我们直接运行Topology可实现本地部署。

运行ScoringTopology的结果如下:

3597 [main] INFO com.lyz.storm.topology.ScoringTopology - SIMULATED LEAF NODE : [---------|O||X||O|---------|X||X||O|---------|O||X||X|---------] w/ state [GAME [OXOXXOOXX]: player(O)history [ , X, X O , X O X, OX O X, XOX O X, XOX OO X, XOXXOO X,OXOXXOO X,]]

运行DrpcTopology的结果如下:

3922 [main] INFO com.lyz.storm.topology.DrpcTopology - Determing best move for O on:---------|X||O|| |---------| ||O|| |---------| || ||X|---------5419 [main] INFO com.lyz.storm.topology.DrpcTopology - RECEIVED RESPONSE [[[---------|X||O|| |---------| ||O|| |---------| ||O||X|---------[10000]]]]

运行RecursiveTopology的结果如下:

12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [ XXOOO XO]: player(O)history [ , O, XO, XO O, XXO O, XXOO O, XXOO XO,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [ XXOOOX O]: player(O)history [ , O, XO, XO O, XXO O, XXO O O, XXO OX O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [ XXOOO XO]: player(O)history [ , O, XO, XO O, XXO O, XXO O O, XXO O XO,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [OXXOX O O]: player(O)history [ , O, XO, XO O, XXO O, XXO O O, XXOX O O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [ XXOX OOO]: player(O)history [ , O, XO, XO O, XXO O, XXO O O, XXOX O O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [OXXO XO O]: player(O)history [ , O, XO, XO O, XXO O, XXO O O, XXO XO O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [ XXO XOOO]: player(O)history [ , O, XO, XO O, XXO O, XXO O O, XXO XO O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [OXXO OXO]: player(O)history [ , O, XO, XO O, XXO O, XXO O O, XXO OXO,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [ XXOX OOO]: player(O)history [ , O, XO, XO O, XXO O, XXO OO, XXOX OO,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [ XXO XOOO]: player(O)history [ , O, XO, XO O, XXO O, XXO OO, XXO X OO,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [OXXOX O O]: player(O)history [ , O, XO, XO O, XOX O,O XOX O,OXXOX O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [O XOXXO O]: player(O)history [ , O, XO, XO O, XOX O,O XOX O,O XOXX O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [O XOX OXO]: player(O)history [ , O, XO, XO O, XOX O,O XOX O,O XOX XO,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [X XOX OOO]: player(O)history [ , O, XO, XO O, XOX O, XOX O O,X XOX O O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [OXXOX O O]: player(O)history [ , O, XO, XO O, XOX O, XOX O O, XXOX O O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [ XXOX OOO]: player(O)history [ , O, XO, XO O, XOX O, XOX O O, XXOX O O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [O XOXXO O]: player(O)history [ , O, XO, XO O, XOX O, XOX O O, XOXXO O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [ XOXXOOO]: player(O)history [ , O, XO, XO O, XOX O, XOX O O, XOXXO O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [O XOX OXO]: player(O)history [ , O, XO, XO O, XOX O, XOX O O, XOX OXO,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [X XOX OOO]: player(O)history [ , O, XO, XO O, XOX O, XOX OO,X XOX OO,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [ XXOX OOO]: player(O)history [ , O, XO, XO O, XOX O, XOX OO, XXOX OO,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [ XOXXOOO]: player(O)history [ , O, XO, XO O, XOX O, XOX OO, XOXX OO,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [OXXOOX O]: player(O)history [ , O, XO, XO O, XO X O,O XO X O,OXXO X O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [OXXO XO O]: player(O)history [ , O, XO, XO O, XO X O,O XO X O,OXXO X O,]]12500 [Thread-12-b-0] INFO com.lyz.storm.operators.isEndGame - END GAME [GAME [O XOXXO O]: player(O)history [ , O, XO, XO O, XO X O,O XO X O,O XOXX O,]]

三、远程部署

为了在远程调用topology,需要启动一个SRPC服务器,启动这个服务和启动Storm中其他服务是一样的方法,用drpc作为参数执行storm脚本:

bin/storm drpc

Storm集群会连接到DRPC服务器上接收命令。我们需要通过配置告诉Storm集群DRPC服务器的位置。在storm.yaml文件中如下配置:

drpc.servers:- 'drpchost1 '- 'drpchost2 '

当配置了服务的服务器启动后,topology的提交方式和其他topology一样,DRPC客户端可以被其他任何需要大规模分布式异步处理的Java应用程序来使用。为了从本地客户端切换到远程,唯一需要改变的是DRPC客户端的命令。需要使用下面的代码来替换DrpcTopology类中的DRPC客户端:

//远程部署。host和port与storm.yaml文件中的配置一致DRPCClient client = new DRPCClient("drpchost1", 3772);

参数指定了DRPC服务的服务器和端口,需要和YAML文件中的配置一致。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。