萌新做点小玩意儿DAY-2 用JAVA写个微信自动消息回复(轰炸)脚本

从DAY-1说的准备今天做的工作说起,先说一下目前的构想,实现一个时空平衡的好的AI算法并不简单,在我对五子棋有了初步的了解之后,初步分析出来的方法主要分三步,同时也发现了自己的思维中的漏洞和问题。

(1)对特定的棋术和棋型进行赋权和声明定义,如活四(差一子且两点均活可成五)、冲四(差一子但有一点活可成五)、活三(差两子且两点均活)、眠三(差两点但有一点活)、活二(差三点且两点均活)、眠二(差三点但有一点活)。

出现的问题:声明定义虽然简单,但是如何给每种棋术赋一个合适的权值很难,比如说活四优先级远远高于其他的棋术。不能简单的3456评分,因此我对这一点很头疼。

(2)算法在人下完一步棋后对整个棋盘进行打分,对当前棋盘运用正则表达式,分析出当前敌人的棋面评分与我方棋面评分,选择进攻或者防守。

出现的问题:如何制定一个好的选择标准和效益风险权衡标准,五子棋中风险跟收益基本对等但是加入因为一分之差选择去防守而丧失主动,那这个AI永远赢不了人类。

(3)选择好进攻防守后,算法根据对整个棋盘剩余空间打分的情况,以棋盘坐标形成一个二维数组。根据数组中评分最高的点进行下棋。

出现的问题:只能评估一步棋,没有远见只有近谋,可以作为人机博弈的简单工具但是绝对不可能战胜一步思多步的人类。而且计算量巨大,第二次评分就要有10的四次方的计算量。

日后我会再学习一下α-β剪枝算法,每天改进一点我的算法。
说到今天做的小玩意儿,自动消息回复(不如说是消息轰炸),主要用到awt包中的Robot类来模拟按键和控制时延,用Scanner获取写入的文本,再调用Clipboard类来封装文字,通过循环实现回复(hong zha)。代码也是非常的简单明了,也可以改进一下多套用几个循环来实现多条不同消息的连发。效果图就不放了…
明天的话继续完善五子棋AI算法,同时做一个算法有关的,学了好久再不用某些算法就要忘了。
TXT格式源代码下载链接:提取码9d3v
萌新做点小玩意儿DAY-2 用JAVA写个微信自动消息回复(轰炸)脚本_第1张图片

你可能感兴趣的:(java)