Skip to content

sjh031802626/2426

Repository files navigation

2426

语言:Pyhton(解释器版本3.8.5)

运行环境:Windows或Linux操作系统

编译方法:

使用python编译器运行直接运行

分工

罗彤:AI大比拼+小游戏部分代码
宋静慧:滑动拼图pygame版最终+小程序滑动拼图

使用方法:

一、AI大比拼+小游戏的部分代码

  1. AI文件夹中的文件实现AI大比拼问题的求解 1.1 original_img文件夹存放无框字符(字母)原图(900 * 900像素); 1.2 tiles文件夹中有若干文件夹,分别存放对应字母原图的切片(_10代表切片像素为10 * 10,_30代表切片像素30 * 30,_300代表切片像素为300* 300); 1.3 chaos文件夹包括两个内容:1、初始乱序图(900 * 900像素),2、乱序图切片文件夹discrete(切片的像素大小与算法中切片代码有关,切片需要与tiles文件夹中的原图匹配,因此切片像素要一致); 1.4 hello.py和project.py的代码负责: (1)图片匹配:从url指示的网址获取问题(包括初始乱序图),从tiles文件夹中匹配原图; (2)8数码问题求解:生成初始乱序图与原图对应的状态(用列表来表示),在强制交换的约束下完成问题求解(包括判断某一状态是否可解); (3)提交求解方案(题号、求解路径、交换方案),返回评测结果。 (hello.py与project.py的差别只在于图像切片的大小,hello.py为300 * 300、project.py为10 * 10) 1.5 compete.py代码是真正用于AI大比拼的代码,基于project.py中的代码,增加了与比赛相关的若干接口,具体调用方式可见代码中的注释; 1.6 性能分析(Call Graph和statistics)两张图片是使用pycharm进行性能分析的结果。

  2. gen_ori.py代码负责生成可解的游戏初始乱序状态(列表)、白块初始位置、目标状态(列表)以及“图片编号-图片”字典(键为图片编号,值为打开的图片,其中包括-1编号,但是不包括白块图片);

  3. puzzle_game.py代码包含了gen_ori.py的代码,并且能根据初始状态、白块初始位置、目标状态自动求解路径。 (尽管能够生成可解的nn大小的游戏状态,但是由于自动求解算法性能的限制,只能解出33的情况,求解4*4规模的问题需要很长很长时间,更大的规模基本解不出来……)

二、拼图小游戏

下载文件夹,运行game.py文件,出现pygame窗口即可。