# 2048-Demo-Python **Repository Path**: devilmaycry812839668/2048-Demo-Python ## Basic Information - **Project Name**: 2048-Demo-Python - **Description**: 网友moporgic编写的python版本的《2048》游戏运行环境,其运行性能是目前个人所能找到的最好的python版本实现。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: https://www.cnblogs.com/devilmaycry812839668/p/16581926.html - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-08-13 - **Last Updated**: 2022-08-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: 不再维护的项目 ## README # 2048-Demo-Python Simple 2048 Puzzle Game in Python (Demo)

Basic framework for developing 2048 programs in Python.

## 文件说明: 共有4个《2048》游戏环境的实现,分别为文件:
py2048.py
py2048_1.py
py2048_2.py
env_5bits_2048.py
除此之外,还有调用这四个实现进行测试的主文件为main.py。

## 测试平台: Ubuntu22.04系统,i7-10700k CPU 工作频率为5.0Ghz

## 性能测试结果: moporgic原始环境万次游戏的平均用时: 73.3795, 总步数:26108430
移动缓存表方法万次游戏的平均用时: 132.7472, 总步数:26115191
移动缓存表改进后方法万次游戏的平均用时:115.6608, 总步数:26129569
个人设计的缓存表方法万次游戏的平均用时:342.4837, 总步数:25777707

## 对于测试结果个人给出的解释(特指python语言中): 1. 对于计算量较小的操作,使用预计算的方式缓存起来并不划算,因为对内存读取是要耗费较大时间的,而这个时间有可能已经大于了CPU重新计算这个结果所需的时间;
2. 循环操作是比较耗时的,尤其是频繁的循环操作,如果能降低循环操作的次数(使用for遍历的次数)可以一定程度上减少运算时长;
3. 在数据量较小的情况下,对list类型数据进行按索引读取和相等比较操作的性能要远远优于numpy.array类型。