20212120高芮萁《python程序设计》实验四 Python综合实践实验报告

课程:《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外的其他语言的问题。

我的建议是:王老师上课的时候敲代码可以适当敲慢一点。

最后希望老师以后的课都会上得越来越好。

posted @ 2022-05-31 21:09  rich111  阅读(89)  评论(0编辑  收藏  举报