语言:Pyhton(解释器版本3.8.5) 运行环境:Windows或Linux操作系统
编译方法:
使用方法: 一、AI大比拼+小游戏的部分代码
-
AI文件夹中的文件实现AI大比拼问题的求解 1.1 original_img文件夹存放无框字符(字母)原图(900900像素); 1.2 tiles文件夹中有若干文件夹,分别存放对应字母原图的切片(_10代表切片像素为1010,_30代表切片像素3030,_300代表切片像素为300300); 1.3 chaos文件夹包括两个内容:1、初始乱序图(900900像素),2、乱序图切片文件夹discrete(切片的像素大小与算法中切片代码有关,切片需要与tiles文件夹中的原图匹配,因此切片像素要一致); 1.4 hello.py和project.py的代码负责: (1)图片匹配:从url指示的网址获取问题(包括初始乱序图),从tiles文件夹中匹配原图; (2)8数码问题求解:生成初始乱序图与原图对应的状态(用列表来表示),在强制交换的约束下完成问题求解(包括判断某一状态是否可解); (3)提交求解方案(题号、求解路径、交换方案),返回评测结果。 (hello.py与project.py的差别只在于图像切片的大小,hello.py为300300、project.py为10*10) 1.5 compete.py代码是真正用于AI大比拼的代码,基于project.py中的代码,增加了与比赛相关的若干接口,具体调用方式可见代码中的注释; 1.6 性能分析(Call Graph和statistics)两张图片是使用pycharm进行性能分析的结果。
-
gen_ori.py代码负责生成可解的游戏初始乱序状态(列表)、白块初始位置、目标状态(列表)以及“图片编号-图片”字典(键为图片编号,值为打开的图片,其中包括-1编号,但是不包括白块图片);
-
puzzle_game.py代码包含了gen_ori.py的代码,并且能根据初始状态、白块初始位置、目标状态自动求解路径。 (尽管能够生成可解的nn大小的游戏状态,但是由于自动求解算法性能的限制,只能解出33的情况,求解4*4规模的问题需要很长很长时间,更大的规模基本解不出来……)