东方自动机 开发文档

耗时一个月,在Yuckxi的陪伴和支持下​[th114:东方自动机]终于完结。​目前可以自行读取屏幕,分析子弹位置,方向并做出移动判断,单次过程的耗时在50ms一下。当然目前对于密集弹幕的适应还不是很好,但我们已经尽力了

以下是lzh的一些废话:
​         我最开始的时候我用的是基于深度学习的DeepQLearning,但是很可惜它在东方的适应不是很好。后来改用了传统算法路径,这个时候Yuckxi也加入了进来。于是就变成了我们双线程开发。经过长时间的噩梦一般的调试,思考,讨论,尝试的循环,我们终于沐浴了成功的曙光。

当然,这一路走来必然是披荆斩棘,满身疮疾(东方特有词汇,不是打错了)的,很多我们当初想都没有想过的问题,在开发中途像拦路虎一样突然跳出。比如灵梦的阴阳玉,当初完全没有被视为问题,竟然困扰了我们整整一星期。而后,还有键盘输入,耗时控制等一大堆麻烦事。所幸的是,这个过程一直有Yuckxi的支持,他给我提供了很多实用的帮助。很多灵感,比如威胁值的计算公式,也是在讨论中迸发出来的。

虽然自动机并没有打到我最初设想的目标(帮我打完绀珠传),但这一路下来还是收获满满的。我们学会了用数学思维来解决问题(威胁值计算中的角度计算使用了高一的向量积公式),还了解了很多图像处理方面的知识。

最后,再次向Yuckxi表示感谢!愿东方project经久不衰!

 

承接LZH,以下是Yuckxi的一些废话:

这个暑假经过LZH的介绍算是正式入坑东方了。能在东方众里面找到一个如此志趣相投的人实在不容易……

七月末的时候,LZH向我介绍了他的“东方自动机”设想,并向着这个“自动机”的目标不断进发。很感谢他为我打开了一扇门——图形处理的大门。也是由他的介绍之下才开始涉足这个领域。

八月中旬的时候,我加入了这个项目。但由于我Python太菜等原因,我后来转向了其他的编译型语言来做这件项目。这是一个难度不小的项目,加上网上在这方面的资料并不多(几乎没有),再而且也很少有人用除了C++和Python之外的语言进行图像处理,因此这是一条很难走的路。

不过路再难走,也得走下去。从0开始写一个能够自动躲避子弹的东西有多难?真的很难,也真的很耗时间。但我不是一个人,LZH一直和我走在一起。从子弹识别到躲避策略,这些难题都在我们努力之下克服了。非常感谢LZH,在这条路上能有你相伴。

最终在前几天,看见自动机终于能够躲避子弹的时候,我觉得这些天来花掉的时间、熬过的夜都值得了。可能它不是尽善尽美的,但是至少,我们迈出了第一步。

——“看啊,我们造出了一个人工智障!”

——“好耶!”

posted @ 2022-08-25 17:42  linzhuohang  阅读(175)  评论(0编辑  收藏  举报