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

article/2025/9/12 3:05:07

大家好,我是雨雨~

今天给大家带来30个py小游戏,一定要收藏!
全部源码都整理好了
小游戏源码腾讯文档-在线文档https://docs.qq.com/doc/DRnZDTnFGVUFMc3FL

有手就行

1、吃金币

【有手就行系列不介绍玩法了+附源码】

 

源码分享:

import os
import cfg
import sys
import pygame
import random
from modules import *'''游戏初始化'''
def initGame():# 初始化pygame, 设置展示窗口pygame.init()screen = pygame.display.set_mode(cfg.SCREENSIZE)pygame.display.set_caption('catch coins —— 九歌')# 加载必要的游戏素材game_images = {}for key, value in cfg.IMAGE_PATHS.items():if isinstance(value, list):images = []for item in value: images.append(pygame.image.load(item))game_images[key] = imageselse:game_images[key] = pygame.image.load(value)game_sounds = {}for key, value in cfg.AUDIO_PATHS.items():if key == 'bgm': continuegame_sounds[key] = pygame.mixer.Sound(value)# 返回初始化数据return screen, game_images, game_sounds'''主函数'''
def main():# 初始化screen, game_images, game_sounds = initGame()# 播放背景音乐pygame.mixer.music.load(cfg.AUDIO_PATHS['bgm'])pygame.mixer.music.play(-1, 0.0)# 字体加载font = pygame.font.Font(cfg.FONT_PATH, 40)# 定义herohero = Hero(game_images['hero'], position=(375, 520))# 定义食物组food_sprites_group = pygame.sprite.Group()generate_food_freq = random.randint(10, 20)generate_food_count = 0# 当前分数/历史最高分score = 0highest_score = 0 if not os.path.exists(cfg.HIGHEST_SCORE_RECORD_FILEPATH) else int(open(cfg.HIGHEST_SCORE_RECORD_FILEPATH).read())# 游戏主循环clock = pygame.time.Clock()while True:# --填充背景screen.fill(0)screen.blit(game_images['background'], (0, 0))# --倒计时信息countdown_text = 'Count down: ' + str((90000 - pygame.time.get_ticks()) // 60000) + ":" + str((90000 - pygame.time.get_ticks()) // 1000 % 60).zfill(2)countdown_text = font.render(countdown_text, True, (0, 0, 0))countdown_rect = countdown_text.get_rect()countdown_rect.topright = [cfg.SCREENSIZE[0]-30, 5]screen.blit(countdown_text, countdown_rect)# --按键检测for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()sys.exit()key_pressed = pygame.key.get_pressed()if key_pressed[pygame.K_a] or key_pressed[pygame.K_LEFT]:hero.move(cfg.SCREENSIZE, 'left')if key_pressed[pygame.K_d] or key_pressed[pygame.K_RIGHT]:hero.move(cfg.SCREENSIZE, 'right')# --随机生成食物generate_food_count += 1if generate_food_count > generate_food_freq:generate_food_freq = random.randint(10, 20)generate_food_count = 0food = Food(game_images, random.choice(['gold',] * 10 + ['apple']), cfg.SCREENSIZE)food_sprites_group.add(food)# --更新食物for food in food_sprites_group:if food.update(): food_sprites_group.remove(food)# --碰撞检测for food in food_sprites_group:if pygame.sprite.collide_mask(food, hero):game_sounds['get'].play()food_sprites_group.remove(food)score += food.scoreif score > highest_score: highest_score = score# --画herohero.draw(screen)# --画食物food_sprites_group.draw(screen)# --显示得分score_text = f'Score: {score}, Highest: {highest_score}'score_text = font.render(score_text, True, (0, 0, 0))score_rect = score_text.get_rect()score_rect.topleft = [5, 5]screen.blit(score_text, score_rect)# --判断游戏是否结束if pygame.time.get_ticks() >= 90000:break# --更新屏幕pygame.display.flip()clock.tick(cfg.FPS)# 游戏结束, 记录最高分并显示游戏结束画面fp = open(cfg.HIGHEST_SCORE_RECORD_FILEPATH, 'w')fp.write(str(highest_score))fp.close()return showEndGameInterface(screen, cfg, score, highest_score)'''run'''
if __name__ == '__main__':while main():pass

2、打乒乓

3、滑雪

 

4、并夕夕版飞机大战

5、打地鼠

简简单单

6、小恐龙

玩法:上下控制起跳躲避

 

7、消消乐

玩法:三个相连就能消除

8、俄罗斯方块

玩法:童年经典,普通模式没啥意思,小时候我们都是玩加速的。

9、贪吃蛇

玩法:童年经典,普通魔术也没啥意思,小时候玩的也是加速的。

普普通通

【玩法详细介绍+源码】

10、24点小游戏

玩法:通过加减乘除操作,小学生都没问题的。

11、平衡木

玩法:也是小时候的经典游戏,控制左右就行,到后面才有一点点难度。

还有配置文件

12、外星人入侵

玩法:这让我想起了魂斗罗那第几关的boss,有点类似,不过魂斗罗那个难度肯定高点。

13、贪心鸟

玩法:有点类似那个炸弹人,控制好走位问题不大。

14、井字棋888‘’

玩法:我打赌大家在课堂上肯定玩过这个,想想当年和同桌玩这个废了好几本本子。

有点困难

【玩法详解+源码获取看底部】

15、炸弹人

玩法详解:小时候的又一经典游戏,小时候很多次都被自己炸死了。

16、保卫森林

玩法详解:类似保卫萝卜,塔防类的小游戏,布局一定要合理,考虑射程属性等等

 

17、五子棋

玩法详解:小时候很爱玩,先出是有必胜方法的,后面才知道会有禁手这个规则,就比较复杂了,大家可以学一下先出必胜的开局,有浦月、流星、丘月、游星、慧星等等。

18、吃豆豆

玩法详解:考验手速和操作和走位,我不喜欢玩这类跑来跑去的。

19、坦克大战

玩法详解:这是经典中的经典,我喜欢玩双人模式,后面有一些改版的模式,这是我觉得少数几个现在玩都不过时的游戏。

20、超级玛丽

玩法详解:经典中的经典,小时候玩觉得可难了,操作不必介绍了吧。

21、水果忍者

玩法详解:切水果风靡一时的游戏,不知道为啥总是切刀炸掉,挺解压的游戏。

极度困难

【攻略大全+源码获取看底部】

22、飞机大战

攻略大全:从这里开始的游戏,真正算的上有难度了,这个飞机大战跟童年玩的比起来还是差一点。

23、2048

攻略大全:也是曾经风靡一时的,越到后面越难,合成的时候一定要大数放在角落。

24、推箱子

攻略大全:以前的那个手机上都有的游戏,越推到后面的关卡越难,我好像是玩到二十多关就玩不下去了。

25、塔防

攻略大全:又是一种塔防类的游戏,有点意思,就是速度太快了,反应不过来。

26、植物大战僵尸

攻略大全:最经典的植物大战僵尸,操作不用介绍了,不过可以自己玩玩看。

27、扫雷

玩法详解:扫雷还是挺有意思的,技能玩又考验推理

终极挑战

【太难了。。源码领取看文章底部】

28、拼图

游戏体验:三个终极挑战,能完成一个就算你厉害,拼图是我最烦的,太难了。

29、走迷宫

游戏体验:我反正没走出去,大家能走出去吗

30、最强游戏

游戏体验:可太难控制了。。

 30个Python小游戏全部源码

“Python”游戏源码腾讯文档-在线文档https://docs.qq.com/doc/DRnZDTnFGVUFMc3FL


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

相关文章

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语言),解释这个程序功能、方法的帮助…

入门必学 | R语言程序包的安装与使用指南

R包的安装与使用 R语言程序包的简介R包的主要来源R包安装前的设置镜像镜像设置方法 R包安装方法1)CRAN平台2)Bioconductor平台3)Github平台 R包检查和加载使用R包安装与使用的常见问题温馨提示 R语言程序包的安装与使用问题–入门重要环节之一…

R、RStudio下载与安装方法

现如今,R语言是统计领域广泛使用的工具,是属于GNU系统的一个自由、免费、源代码开放的软件,是用于统计计算和统计绘图的优秀工具。而RStudio是R的集成开发环境,用它进行R编程的学习和实践会更加轻松和方便。下面就教大家如何下载并…

安装低版本的R语言、和自行下载安装各个版本的R语言包、以及多环境运行R

1. 下载并安装最新的R版本软件,以国内的清华的镜像为例(国内镜像速度快) https://mirrors.tuna.tsinghua.edu.cn/CRAN/ 2. 官网上如何下载老版本或低版本(旧版本)的R语言(同时下载多个版本的R&#xff0c…

R语言安装软件包

R语言安装软件包 1 打开RGui.exe,执行install.packages("software name"),安装成功后会提示The downloaded binary packages are in ...,给出了程序包存放路径2 选择程序包,点击Install package(s) from local files...…