# 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类型。