93
社区成员
发帖
与我相关
我的任务
分享课程:《Python程序设计》
班级: 2241
姓名: 谭力力
学号:20224129
实验教师:王志强
实验日期:2024年5月14日
必修/选修: 专选课
Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
课代表和各小组负责人收集作业(源代码、视频、综合实践报告)
例如:编写从社交网络爬取数据,实现可视化舆情监控或者情感分析。
例如:利用公开数据集,开展图像分类、恶意软件检测等
例如:利用Python库,基于OCR技术实现自动化提取图片中数据,并填入excel中。
例如:爬取天气数据,实现自动化微信提醒
例如:利用爬虫,实现自动化下载网站视频、文件等。
例如:编写小游戏:坦克大战、贪吃蛇、扫雷等等
注:在Windows/Linux系统上使用VIM、PDB、IDLE、Pycharm等工具编程实现。
根据实验内容和实验要求,在查阅了相关资料后决定编写贪吃蛇小游戏
具体实验过程如下:
1.下载安装pygame,并检测Pygame包是否安装成功

在PyCharm 中导入pygame模块进行程序开发所需进行的配置

2.导入pygame库并初始化,然后设置游戏窗口的大小

3.定义游戏结束的函数以及蛇的移动和方向控制的函数

4.编写游戏的主循环,这也是贪吃蛇游戏的核心

5.运行编写好的贪吃蛇小游戏,结果如下:

在游戏中,蛇可以通过键盘上的方向键进行控制,每当吃到一个白色的食物方块时,蛇就会长大,并且增加一分。如果撞到自己或墙壁,游戏则结束。
from datetime import time
import pygame
import sys
import random
pygame.init()
width, height = 640, 480
screen = pygame.display.set_mode((width, height))
black = pygame.Color(0, 0, 0)
white = pygame.Color(255, 255, 255)
red = pygame.Color(255, 0, 0)
clock = pygame.time.Clock()
snake_pos = [100, 50]
snake_body = [[100, 50], [90, 50], [80, 50]]
speed = 10
direction = 'RIGHT'
change_to = direction
food_pos = [random.randrange(1, (width//10)) * 10, random.randrange(1, (height//10)) * 10]
food_spawn = True
score = 0
def gameOver():
my_font = pygame.font.SysFont('arial', 90)
GO_surface = my_font.render('Your Score is: ' + str(score), True, red)
GO_rect = GO_surface.get_rect()
GO_rect.midtop = (width/2, height/4)
screen.fill(black)
screen.blit(GO_surface, GO_rect)
pygame.display.flip()
time.sleep(3)
pygame.quit()
sys.exit()
def changeDirection(event, direction, change_to):
if event.key == pygame.K_UP and direction != 'DOWN':
change_to = 'UP'
elif event.key == pygame.K_DOWN and direction != 'UP':
change_to = 'DOWN'
elif event.key == pygame.K_LEFT and direction != 'RIGHT':
change_to = 'LEFT'
elif event.key == pygame.K_RIGHT and direction != 'LEFT':
change_to = 'RIGHT'
return change_to
while True:

问题1:pygame插件未安装,导致代码无法运行
问题1解决方案:在CSDN查找如何下载pygame,具体下载步骤在实验过程第一步。
问题2:编写游戏的主循环代码时多次出错
问题2解决方案:在CSDN上寻找到了解决方法。
感想体会:编写贪吃蛇游戏的代码确实是一个具有挑战性的过程。贪吃蛇小游戏涉及到的元素和逻辑也比较繁琐,要编写这样一个小游戏对我来说还是有较大的难度。在编写过程中,我面临了许多挑战。首先是关于游戏逻辑的设计,需要考虑蛇的移动、食物的生成、碰撞检测等问题,这需要仔细思考并且合理地设计代码结构。贪吃蛇游戏还涉及到一些技术细节,比如如何实现蛇的移动等,这些细节问题虽然看似简单,但实际上需要我不断地思考和尝试,确保游戏的流畅性和可玩性。最具有挑战性的还是编写贪吃蛇主循环代码,耗费了大量的时间。不过在这个过程中,我不仅提升了自己的编程技能,也增强了我对游戏开发的理解和认识。
在Python基础课程结束之后,我对这段学习经历深有感触。通过学习这门课程,我掌握了Python语言的基本语法和编程逻辑,对程序设计有了更深入的理解,同时也培养了我的逻辑思维能力和问题解决能力。这门课程让我在编程的道路上迈出了重要的一步。我通过课程学习了Python的基本数据类型、控制结构、函数、模块等知识点,掌握了Python编程的基本技能。在课程的每个环节中,志强老师都耐心地教导我们,详细讲解每一个知识点,引导我们解决问题,让我们在学习中感受到了成就感和乐趣。在这段学习过程中,我深刻感受到了老师对我们的包容。我们基础普遍较差,但是无论是面对我们提出的问题,还是在课程中的讲解过程中,志强老师总是细心倾听,耐心解答,让我们感受到了他对我们学习的重视和支持。老师的耐心与细心教导让我受益良多,让我在学习中不断成长。在此,我要表达对志强老师的感激之情,感谢老师在教学中的用心教导和耐心指导,让我受益匪浅。这段学习经历将成为我成长道路上宝贵的记忆,也让我对未来的学习和发展充满信心和期待。谢谢志强老师!谢谢这段宝贵的学习时光!