Python小游戏一直是编程学习者喜爱的实践项目,既能巩固基础知识,又能体验开发的乐趣。在探索过程中,关于Python小游戏的教程和代码分享并不少见,但很多都存在代码不全、运行报错或功能缺失的问题,让学习者感到困扰。本文整理了16款经典的Python小游戏,每款都提供完整可运行的代码,经过严格测试确保能够顺利执行。1. 五子棋
童年游戏不可缺少的五子棋,你攻我守,守中进攻,五子棋一玩就可以玩一下午。

'''游戏开始界面'''class gameStartUI(QWidget): def __init__(self, parent=None, **kwargs): super(gameStartUI, self).__init__(parent) self.setFixedSize(760, 650) self.setWindowTitle('五子棋 —— 九歌') self.setWindowIcon(QIcon(cfg.ICON_FILEPATH)) # 背景图片 palette = QPalette() palette.setBrush(self.backgroundRole(), QBrush(QPixmap(cfg.BACKGROUND_IMAGEPATHS.get('bg_start')))) self.setPalette(palette) # 按钮 # --人机对战 self.ai_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('ai'), self) self.ai_button.move(250, 200) self.ai_button.show() self.ai_button.click_signal.connect(self.playWithAI) # --联机对战 self.online_button = PushButton(cfg.BUTTON_IMAGEPATHS.get('online'), self) self.online_button.move(250, 350) self.online_button.show() self.online_button.click_signal.connect(self.playOnline) '''人机对战''' def playWithAI(self): self.close() self.gaming_ui = playWithAIUI(cfg) self.gaming_ui.exit_signal.connect(lambda: sys.exit()) self.gaming_ui.back_signal.connect(self.show) self.gaming_ui.show()
2.炸弹人
如果你是一个80后,那么炸弹人绝度是你童年的欢乐之一,虽然简单而粗糙的画面,却依旧抵挡不了它在FC上的经典。
'''游戏主程序'''def main(cfg): # 初始化 pygame.init() pygame.mixer.init() pygame.mixer.music.load(cfg.BGMPATH) pygame.mixer.music.play(-1, 0.0) screen = pygame.display.set_mode(cfg.SCREENSIZE) pygame.display.set_caption('Bomber Man —— 九歌') # 开始界面 Interface(screen, cfg, mode='game_start') # 游戏主循环 font = pygame.font.SysFont('Consolas', 15) for gamemap_path in cfg.GAMEMAPPATHS: # -地图 map_parser = mapParser(gamemap_path, bg_paths=cfg.BACKGROUNDPATHS, wall_paths=cfg.WALLPATHS, blocksize=cfg.BLOCKSIZE) # -水果 fruit_sprite_group = pygame.sprite.Group() used_spaces = [] for i in range(5): coordinate = map_parser.randomGetSpace(used_spaces) used_spaces.append(coordinate)
3.推箱子
不禁回味起了童年,推箱子顾名思义就是推箱子。用键盘上的上、下、左、右键移动小人,把箱子全部推到指定的位置即可过关。箱子只能推,不能拉,并且小人一次只能推动一个箱子。
'''开始游戏'''def startGame(screen): clock = pygame.time.Clock() # 加载字体 font = pygame.font.SysFont('arial', 18) if not os.path.isfile('score'): f = open('score', 'w') f.write('0') f.close() with open('score', 'r') as f: highest_score = int(f.read().strip()) # 敌方 enemies_group = pygame.sprite.Group() for i in range(55): if i < 11: enemy = enemySprite('small', i, cfg.WHITE, cfg.WHITE) elif i < 33: enemy = enemySprite('medium', i, cfg.WHITE, cfg.WHITE) else: enemy = enemySprite('large', i, cfg.WHITE, cfg.WHITE) enemy.rect.x = 85 + (i % 11) * 50 enemy.rect.y = 120 + (i // 11) * 45 enemies_group.add(enemy) boomed_enemies_group = pygame.sprite.Group() en_bullets_group = pygame.sprite.Group() ufo = ufoSprite(color=cfg.RED)
4.俄罗斯方块
回味一下属于我们的童年~俄罗斯方块,如果要说到游戏圈里的资历,俄罗斯方块应该是当之无愧的老大哥了
import osimport sysimport randomfrom modules import *from PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt5.QtWidgets import *'''定义俄罗斯方块游戏类'''class TetrisGame(QMainWindow): def __init__(self, parent=None): super(TetrisGame, self).__init__(parent) # 是否暂停ing self.is_paused = False # 是否开始ing self.is_started = False self.initUI() '''界面初始化''' def initUI(self):
5.贪吃蛇
还记得当初在黑白掌机上玩的贪吃蛇吗?想重温当时的快乐,当时的回忆吗
import cfgimport sysimport pygamefrom modules import *'''主函数'''def main(cfg): # 游戏初始化 pygame.init() screen = pygame.display.set_mode(cfg.SCREENSIZE) pygame.display.set_caption('Greedy Snake —— 九歌') clock = pygame.time.Clock() # 播放背景音乐 pygame.mixer.music.load(cfg.BGMPATH) pygame.mixer.music.play(-1) # 游戏主循环 snake = Snake(cfg) apple = Apple(cfg, snake.coords) score = 0 while True:
如果你现在还是不会Python也没关系,下面我会给大家免费分享一份Python全套学习资料, 包含视频、源码、课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友。附录:更多学习资料
python课程400集,2026最新版来啦!!!从零基础开始,全面讲解Python基础,与一般教程不同,该教程增加了手写数据结构和算法、手写神经网络项目。同时加入AI工具编程,让零基础学员在学习Python时就开始接触高深的底层知识、神经网络底层实现的知识。最终达到达可以手写神经网络的境界。
本套视频一共400集,本套视频共分4季:
内容共分26章,讲解了Python基础的方方面面,可以作为Python学习者的“宝典”。同时,穿插了3个大型实战项目:1. 坦克大战游戏。 采用游戏开发的方式,寓教于乐,快乐中掌握Python基础。
2. 手写算法和数据结构。 算法和数据结构是很多大公司面试的不二选择,我们这里讲解内容的同时,手把手带你实现一个个底层算法,将内功练扎实。
3.手写神经网络。 Python是人工智能的第一语言。我们创造性的在基础课程中就加入了如何编写一个自己的神经网络,为踏入神经网络的大门打下“坚实基础”。
按这个步骤走,你会发现编程真的没那么难~
还有Python电子书,Python练习题,Python练手项目,Python漫画书,Python动画版教程,面试题等等海量学习资料尾语 💝
感谢你观看我的文章呐~本次航班到这里就结束啦 🛬
希望本篇文章有对你带来帮助 🎉,有学习到一点知识~
领取方式: