Python3编程实战Tetris机器人(序)
背景
本系列文章,使用Python3一步步记录Tetris游戏的编写全过程,游戏功能包括手动游戏、游戏回放(数据库操作)、自动游戏(AI机器人)、强化学习、优化AI机器人。已经完成C++版本,Qt5之QGraphicsItem编写Tetris俄罗斯方块游戏。
规划
- 项目结构
- 界面设计
- block类,最小方块定义
- tetris类,俄罗斯方块定义
- tetris方块的移动与旋转
- game类,游戏流程控制
- 多线程改造
- 游戏暂停功能
- 设计通用数据库操作封装,基于sqlite3
- 设计ORM实现自动查询
- 存储历史数据,实现游戏回放
- 简单AI
- 内存泄漏修正
- 强化学习
- 加强版AI
设计思路
该游戏尽量不使用第三方库,主要注重算法,因此界面库选择python内置的tkinter。设计思想也采用传统的方式,用一个二维数组来控制游戏空间,类似迷宫的方式。选择这种方式有一个好处是,游戏的数据直观存在,容易获取。
效果图
游戏空间大小
10 x 20
得分设计:
- 消一层得一分
- 消二层得三分
- 消三层得七分
- 消四层得十分
控制键位
- 方向上键 : 旋转
- 方向左键 : 左移
- 方向右键 : 右移
- 方向下键 : 下移
- 空格按键 : 下移到底
项目进度
已经完成手动游戏、游戏回放、简单AI、手动自动随时切换。
项目标签(里程牌)
- v1.0.1(manual-play) - 手动游戏功能 里程碑版
- v1.1(auto-play) - 自动游戏功能 里程碑版,发现内存泄漏
- v1.2(less-block) - 解决内存泄漏
项目地址
https://gitee.com/zhoutk/ptetris
或
https://github.com/zhoutk/ptetris
运行方法
1. install python3, git
2. git clone https://gitee.com/zhoutk/ptetris (or download and unzip source code)
3. cd ptetris
4. python3 tetris
This project surpport windows, linux, macOs
on linux, you must install tkinter first, use this command:
sudo apt install python3-tk
相关项目
已经实现了C++版,项目地址:
https://gitee.com/zhoutk/qtetris
全栈编程
自由程序员,技术路线c,delphi, c++,c#,java,php,node.js,python,golang,typescript;超喜欢re...
被 10 篇内容引用
推荐阅读
node.js基于 cmake-js 进行插件开发实战
以前工作在node.js环境下,做微服务产品; 三年前转回到C++环境,已经有一些代码积攒。我将以往基于node.js与C++的相关项目结合起来(C++代码以addon插件嵌入),实现了一个微服务快速(rest api service)开发框...
zhoutk阅读 794
MongoDB 插入时间与更新时间(create_time/update_time)
MongoDB 在数据库层面不能像 MySQL 一样设置自动创建 create_time/update_time,自动更新 update_time
qbit阅读 13.9k评论 2
通用ORM的设计与实现
我们通用的ORM,基本模式都是想要脱离数据库的,几乎都在编程语言层面建立模型,由程序去与数据库打交道。虽然脱离了数据库的具体操作,但我们要建立各种模型文档,用代码去写表之间的关系等等操作,让初学者一时...
zhoutk赞 1阅读 2.8k
Python3 全能安装详解
小编今天折腾了一天,整个Python3 人工智能开发包。卡在pip 包管理器上大半天。找遍大部分资料,就搞不懂为嘛每篇文章就只写一个片面的知识点就不能汇总一下嘛。下面来啦,小编来整理一下,避免下次找不到了。微...
叶剑飞雪阅读 688
python3调用 prometheus API
{代码...}
台湾省委书记阅读 627
【CS 285 DRL Homework 2】Policy Gradients 策略优化
主要的训练算法集中在 RL_Trainer.run_training_loop 中。通过观察一个循环(iteration)的调用过程,可总结为:
Petrickstar阅读 601
Linux下Python3.9任意目录快速编译安装和配置上手实用指南
本文叙述在Linux Centos7系统下,在任意非标准目录(意味着不需要root或sudo权限)通过官方源码包编译安装Python3.9的快速安装指南。
apollo008阅读 561
宣传栏
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。