课程:《Python程序设计》
班级:2121
姓名: 高芮萁
学号:20212120
实验教师:王志强
实验日期:2022年5月22日
必修/选修: 公选课
1.实验内容
Python综合应用:运用pygame尝试编写flappy bird代码
2. 实验过程及结果
(1)首先,听到这个实验,我了心里有点紧张,因为以前从来没有尝试过这样,仔细阅读了实验要求,发现可以做爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等,因为在之前我做个爬虫,所以我首先选择了做爬虫,但是经过一番尝试,我发现问题并没有这么简单,尝试做爬虫做了一个下午,却无论如何都不能运行,所以我选择做一个小游戏,在网上进行了查阅资料以及询问同学,我选择做一个简单的小游戏——小鸟不碰小球。
(2)进行代码的编写

源代码:
##应用数据库及函数
from turtle import *
from random import randrange
from time import sleep
##定义变量
bird=[-100,80]
ball=[[240,0]]
bird_size=50##定义小鸟的大小
ball_size=80##定义小球的大小
##定义函数
def change():
bird[1]=bird[1]+bird_size
def distance(a,b,x,y):
return ((a-x) ** 2 + (b-y) ** 2) ** 0.5
def hit():
for n in range(len(ball)):
if distance(ball[n][0],ball[n][1],bird[0],bird[1])<(bird_size+ball_size)/2 :##此处为判断小球与小鸟是否相撞
return True
return False
def inside():
if bird[1]<-300+bird_size/2 or bird[1]>300-bird_size/2:
return False
else :
return True
def draw():
clear()
for n in range(len(ball)):
up()
goto(ball[n][0],ball[n][1])
dot(ball_size,"dark green")
ball[n][0]=ball[n][0]-1
up()
goto(bird[0],bird[1])
dot(bird_size,"yellow")
bird[1]=bird[1]-5
update()
def gameloop():
if randrange(40)==1:
x=240
y=randrange(-300,300)
ball.append([x,y])
if len(ball)!=0:
if ball[0][0]<-220:
ball.pop(0)
draw()
if (not inside()) or hit():
return
ontimer(gameLoop,30)
##主程序
setup(420,620,0,0)
hideturtle()
tracer(False)
bgcolor("light pink")##给游戏制定粉色的背景
listne()
onkey(lambda: change()," ")
gameLoop()
done()
(3)遇到的问题
在敲完代码进行运行时,发现其一直报错,第一次检查下来发现,程序的逻辑以及英语都没有错,于是我开始地毯式的搜索,惊讶的发现却是因为某些地方多敲了一个空格,所以将这改进之后,发现程序可以运行了。
(4)连接云服务器,上传代码
首先我先下载了xming,我们需要先打开putty登录,打开ECS主机,同时也将代码上传到ECS主机上,然后在putty上进行程序的运行,最后进行录屏。因为我的华为云配置不行,我就借用了其他同学的服务器上进行代码的运行。
3、主要问题
(1)代码的编写存在很大的问题,在上网搜索提问,但还是运行不了,后面运行成功了,发现游戏界面只有背景,最终去选问了学长,才将游戏运行运行出来;
(2)python和c语言不一样,一个空格也会使代码不能运行,或是运行不了,在上文中已经提到我的代码关于空格的问题;
(3)在登录putty进行运行时没有屏幕,询问了同学之后才发现需要下载xming。
4、本学期课程感想
这个学期我选择python是因为想着自己作为一个计算机科学与技术专业的学生,以后都是要学python,于是就选择了这门课。但这个学期我还要学一门c语言,所以这两门语言,我有时候会搞混淆。但是却是在学到了很多东西。在这学期的python课上,我都一直在认真听讲,跟着老师一起敲代码,只是有时候老师的代码敲得得太快,没有跟得上老师的节奏。最后还是很幸运能个选到这门课,学习到了很多的知识。
王老师是一个很温柔,很有学问的老师,在课间,也会帮我们解决python外的其他语言的问题。
我的建议是:王老师上课的时候敲代码可以适当敲慢一点。
最后希望老师以后的课都会上得越来越好。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!