Python实现四个经典小游戏合集

article/2025/9/12 2:39:09

这篇文章主要介绍了利用Python编写一个经典小游戏的合集,包括:贪吃蛇,扫雷,俄罗斯方块,五子棋。感兴趣的小伙伴可以跟随小编一起学习一下

目录

  •  一、效果展示
    • 1、俄罗斯方块
    • 2、扫雷
    • 3、五子棋
    • 4、贪吃蛇
  • 二、代码展示
    • 1、俄罗斯方块
    • 2、扫雷
    • 3、五子棋
    • 4、贪吃蛇

 一、效果展示

1、俄罗斯方块

这个应该是玩起来最最简单的了…

2、扫雷

运气好,点了四下都没踩雷哈哈…

3、五子棋

我是菜鸡,玩不赢电脑人…

4、

4、贪吃蛇

害,这个是最惊心动魄的,为了我的小心脏,不玩了不玩了…

女朋友:你就是借机在玩游戏,逮到了

啊这…

那我不吹牛逼了,我们来敲代码吧~

二、代码展示

1、俄罗斯方块

方块部分

这部分代码单独保存py文件,这里我命名为 blocks.py

方块形状的设计,一开始我是做成 4 × 4,长宽最长都是4的话旋转的时候就不考虑怎么转了,就是从一个图形替换成另一个。

要实现这个功能,只要固定左上角的坐标就可以了。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

import random

from collections import namedtuple

Point = namedtuple('Point', 'X Y')

Shape = namedtuple('Shape', 'X Y Width Height')

Block = namedtuple('Block', 'template start_pos end_pos name next')

# S形方块

S_BLOCK = [Block(['.OO',

                  'OO.',

                  '...'], Point(0, 0), Point(2, 1), 'S', 1),

           Block(['O..',

                  'OO.',

                  '.O.'], Point(0, 0), Point(1, 2), 'S', 0)]

# Z形方块

Z_BLOCK = [Block(['OO.',

                  '.OO',

                  '...'], Point(0, 0), Point(2, 1), 'Z', 1),

           Block(['.O.',

                  'OO.',

                  'O..'], Point(0, 0), Point(1, 2), 'Z', 0)]

# I型方块

I_BLOCK = [Block(['.O..',

                  '.O..',

                  '.O..',

                  '.O..'], Point(1, 0), Point(1, 3), 'I', 1),

           Block(['....',

                  '....',

                  'OOOO',

                  '....'], Point(0, 2), Point(3, 2), 'I', 0)]

# O型方块

O_BLOCK = [Block(['OO',

                  'OO'], Point(0, 0), Point(1, 1), 'O', 0)]

# J型方块

J_BLOCK = [Block(['O..',

                  'OOO',

                  '...'], Point(0, 0), Point(2, 1), 'J', 1),

           Block(['.OO',

                  '.O.',

                  '.O.'], Point(1, 0), Point(2, 2), 'J', 2),

           Block(['...',

                  'OOO',

                  '..O'], Point(0, 1), Point(2, 2), 'J', 3),

           Block(['.O.',

                  '.O.',

                  'OO.'], Point(0, 0), Point(1, 2), 'J', 0)]

# L型方块

L_BLOCK = [Block(['..O',

                  'OOO',

                  '...'], Point(0, 0), Point(2, 1), 'L', 1),

           Block(['.O.',

                  '.O.',

                  '.OO'], Point(1, 0), Point(2, 2), 'L', 2),

           Block(['...',

                  'OOO',

                  'O..'], Point(0, 1), Point(2, 2), 'L', 3),

           Block(['OO.',

                  '.O.',

                  '.O.'], Point(0, 0), Point(1, 2), 'L', 0)]

# T型方块

T_BLOCK = [Block(['.O.',

                  'OOO',

                  '...'], Point(0, 0


http://chatgpt.dhexx.cn/article/NITtmifU.shtml

相关文章

10个python入门小游戏,零基础打通关,就能掌握编程基础

前言 不会python就不能用python开发入门级的小游戏? 当然不是,我收集了十个python入门小游戏的源码和教程,并且即使你没有python基础,只要跟着这十个小游戏的开发详细教程去做,以及有了全部的源码,那就能…

python小游戏源码

见缝插针小游戏,设置关卡,难度逐渐增大,效果图如下,需要的话去个人主页提取资源 部分代码如下: def __init__(self, angle): self.x x0 self.y y0 length self.center (self.x, self.y) …

10个python经典小游戏(上)-五一嗨起来(动图演示+源码分享)

🐚作者简介:苏凉(专注于网络爬虫,数据分析) 🐳博客主页:苏凉.py的博客 👑名言警句:海阔凭鱼跃,天高任鸟飞。 📰要是觉得博主文章写的不错的话&…

30个Python小游戏,小白练手,我都能玩一天

大家好,我是雨雨~ 今天给大家带来30个py小游戏,一定要收藏!全部源码都整理好了小游戏源码腾讯文档-在线文档https://docs.qq.com/doc/DRnZDTnFGVUFMc3FL 有手就行 1、吃金币 【有手就行系列不介绍玩法了附源码】 源码分享: i…

6个Python童年小游戏,开始敲起来,玩吧!

你的童年,我的童年好像都一样,谁的童年又没玩过游戏呢,这些小游戏应该只有玩过才会懂吧 虽然程序员敲代码多年,但童心还是一直都在的,今天就分享一些私藏的童年游戏,十几行代码就能进入使用Python开发的小…

Java开发面试简历这么写,命中率达70%

上篇文章我们了解到,想要有面试机会,首先要完成一份好的简历。但是在撰写简历的时候,往往有一些细节很容易被忽视,导致面试机会远远不如自己的期望值。一份经过优化的简历,面试的命中率可以达到70%。那我们就来看看&am…

java开发个人简历模板_java程序开发个人简历模板

java程序开发需要有扎实的程序编码知识,下面java程序开发个人简历模板是小编为大家带来的,欢迎浏览。 java程序开发个人简历模板 延伸阅读 面试,简历很重要,那好的简历模板应该如何制作呢? 写简历之前,你得先站在用人…

JAVA开发(nginx)

主要描述下面4个内容: 1.Nginx的正向代理和反向代理 2.Nginx的动静分离 3.Nginx的负载均衡 4.Nginx的配置详解 解释: Nginx的正向代理:代理的是客户端。 Nginx的反向代理:代理的是服务端。在web服务中,一般都是…

8年Java开发教你如何写简历

前言 成为优秀的架构师是大部分初中级工程师的阶段性目标。优秀的架构师往往具备七种核心能力:编程能力、调试能力、编译部署能力、性能优化能力、业务架构能力、在线运维能力、项目管理能力和规划能力。 这几种能力之间的关系大概如下图。编程能力、调试能力和编…

java开发简历项目经验,面试必会

java基础 1.1java的8种基本数据类型装箱拆箱 1.2重写重载封装继承多态 1.3 Stack Queue 1.7 Concurrent包 1.8面向对象 1.9 String StringBuffer StringBuilder hashcode equ 1.10 java文件读取 1.11 Java反射 1.12 JDK NDK JRE JNI 1.13 static和final的区别 1.14 …

java有关物流管理的简历_Java开发实习生大学生简历模板

求职意向 Java开发实习生 福建福州 薪资面议 随时到岗 教育背景 2020.x -2020x 锤子简历大学 软件工程(本科) 通过CET4/6等级考试 主修课程:Java程序设计、Web程序设计、JavaEE应用开发、数据库系统原理、Linux操作系统、数据通信与计算机网络。 工作经验 2020.x -2…

《R语言入门》如何在Windows下安装R语言编程环境

R语言主页:https://www.r-project.org/ R语言开发环境下载安装地址:https://cran.r-project.org/mirrors.html 这是一个下载镜像站点的列表页面,之前贴了其中一个的链接,结果过了一段时间之后不能访问了; 有Linux…

R语言安装ggcor包

找了很多方法,一直安装不上去,后来把包下载了本地,用本地安装的方法,也还是报错。后来兜兜转转找到了这个方法,非常好用!参考了看见你啦,自己根据实际情况,也稍作修改。 1.下载ggco…

【入门】R语言最详细Windows安装指南

登录R语言官网https://www.r-project.org/ 选择CRAN mirror 下拉找到China 选择其中任意一个,这里我选的是清华的一个mirror 点开后选择Download R for Windows(如果是其他系统则选择其他对应链接) 选择base 得到 选择Download R 3.5.3 fo…

R 安装详解

目录 1.R软件 的下载 1.1 R下载 1.2 RStudio下载 2.辅助软件 notepad 3.R 扩展软件包的安装与管理 4.基本 R 软件的用法 1.基本运行 2.项目目录 5.RStudio 软件 1.介绍 2.项目 3.帮助 4.使用历史命令 5.放大显示某一窗格 6.运行程序 7.中文编码问题 8.Rmd 文件 …

【R语言(一)】R 和 RStudio的安装与初步使用

1. R语言和RStudio基本介绍 2. R的下载安装 3. 添加R的环境变量 4. windows系统安装RStudio步骤 5. R中的常见语法 6. R和python在语法上的主要区别 1. R语言和RStudio基本介绍 R是一种流行的统计软件和编程语言,用于数据分析和可视化。它是一个开源的软件&am…

R语言环境下载及RStudio安装教程

R语言官网:https://www.r-project.org/ RStudio官网链接:https://rstudio.com/products/rstudio/download/#download R语言环境配置: 进入官网后: 选择中国科技大学镜像 安装适合自己系统的R环境 如果是初学的话基础版也可以…

R语言:R语言ggplot2的安装过程。

一、R语言的安装。 1.在搜索引擎中输入网址:R: The R Project for Statistical Computing (r-project.org)R: The R Project for Statistical Computing (r-project.org),跳转到R语言官网。 R: The R Project for Statistical Computing (r-project.or…

R 语言详细安装教程(保姆级)及 RStudio简易安装教程

进入官网 官网地址 点击下载 单击 “Download” 栏目下的 “CRAN” ,即可跳转到 R 综合资料网的路径上 ,如下图所示 从镜像路径中选择 China 栏目下的任意一个链接,单击进入 R 的下载界面,如图所示 这里可以选择不同的系统&am…

R包的安装

R包的安装 R语言的特点就是有众多的第三方扩展包,扩展包涉及到各行各业的数据分析内容。 包是R函数、数据、预编译代码以一种定义完善的格式组成的集合,包括R程序,运行该程序的其他语言(例如C语言),解释这个程序功能、方法的帮助…