20193427《Python程序设计》实验四报告

20193427 2019-2020-2 《Python程序设计》实验四报告

课程:《Python程序设计》
班级: 1934
姓名: 杜雨茁
学号:20193427
实验教师:王志强
实验日期:2020年5月23日
必修/选修: 公选课

1.实验内容

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等
我选择做一个贪吃蛇小游戏和一个测打字速度的小游戏
测打字速度源代码如下:
import sys
import random
import time
import pygame
from pygame.locals import *

def print_text(font, x, y, text, color=(255, 255, 255)):
imgText = font.render(text, True, color)
screen.blit(imgText, (x, y))

pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption('Keyboard Demo')
font1 = pygame.font.Font(None, 24)
font2 = pygame.font.Font(None, 200)
white = (255, 255, 255)
yellow = (255, 255, 0)

key_flag = False
correct_answer = 97 # a
seconds = 11
score = 0
speed = 0
clock_start = 0
game_over = True

while True:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
elif event.type == KEYDOWN:
key_flag = True
elif event.type == KEYUP:
key_flag = False
keys = pygame.key.get_pressed()
if keys[K_ESCAPE]:
sys.exit()
if keys[K_RETURN]:
if game_over:
game_over = False
clock_start = time.time()
score = 0
seconds = 11
speed = 0
clock = clock_start

if not game_over:
    current = time.time() - clock_start
    if seconds < current:
        game_over = True
    else:
        if keys[correct_answer]:
            correct_answer = random.randint(97, 122)
            clock_start = time.time()
            score += 1
            speed = 60 * score / (clock_start - clock)

screen.fill((0, 100, 0))
print_text(font1, 0, 0, "Let's see how fast you can type!")
print_text(font1, 0, 20, "Try to keep up for 10 seconds...")

if key_flag:
    print_text(font1, 500, 0, "<key>")

if not game_over:
    print_text(font1, 0, 80, "Time: " + str(int(seconds-current)))

print_text(font1, 0, 100, "Speed: " + str(int(speed)) + " letters/min")

if game_over:
    print_text(font1, 0, 160, "Press Enter to start...")

print_text(font2, 0, 240, chr(correct_answer-32), yellow)

pygame.display.update()

运行结果:

3. 实验过程中遇到的问题和解决过程

  • 问题1:在运行过程中安装库出现了问题
  • 问题1解决方案:通过百度找帖子,询问同学,最后找到了解决的方法
  • 问题2:有很多地方不是很熟练,会出现一些小错误而影响整体代码
  • 问题2解决方案:通过观看视屏及笔记来复习所学的东西
  • 问题三:刚开始不太清楚原理,无从下手
  • 问题三解决方案:通过查询百度还有参考《Python游戏编程入门》一书解决了问题

其他(感悟、思考等)

  • 通过这次实验我提高了自身的自主学习能力,能有效地利用周围的资源来提高自己,比如网络技术贴、身边的同学等等,在遇到一个问题首先先自己去思考、解决,而不是求助于人;
  • 学过的知识要及时复习巩固,就像这次的实验很多内容都有或多或少的忘记,掌握的不是很熟练;
  • 在编程过程中要更加细致小心,经常一个小小的细节,比如说符号或者缩进量就可能会导致整个程序的错误。

参考资料

《python编程从入门到实践》
《Python游戏编程入门》

课程总结

通过十二周的python学习,使我对这门语言有了基本的认识,当然,我也学会了基本的操作。刚开始学习时,因为人们对他的一些固有的态度,

我对这门语言的第一了解就是这是一门比c语言简单的语言。但在学习的过程中,我逐渐意识到,这里的简单,只是简便、易懂,在编程实现一个产
品的功能时代码更为的简洁,并非技术上的简单。明白了这一点,我也意识到了练习和自学的重要性,刚开始,我总是寄希望于在课堂上可以学到
所有的东西,现在,我才意识到,这是是不符合实际的,很惭愧,在历时十二周的课程中,除了老师布置的课后作业,我没有经常练习,做得最多的
是和视频中的老师一起同步编程。因此,直到期末大作业的时候,我才发现自己所知甚少,完全不能独立的去开发一个小游戏或是完成一个简单的
爬虫。
当然,这门课程除了在技术方面给我带来的影响,也让我学会了遇到苦难时不要立即的求助于人,首先要自己去摸索,去分析问题,独立的去找解
决的方法,例如去百度或者去博客看一些技术贴,实在无法自己解决时,再求助于老师,这样,你的技术就会突飞猛进。然后去总结自己的问题,
争取在第二遍看到时,可以从容不迫的去解决它。
虽然这一学期的选修课程结束了,但是python交给我的东西远远不止这些,这是一个新的起点,我将会在接下来的时间里继续努力学习这门语言,
争取取得更大的进步。

建议与意见

因为课时原因,老师在过程中的讲课速度在我个人看来略微有点快,有时候会更不上进度,只能自己课下去看书或者视频,希望老师能更加注重基础,
讲一些点的细节类的东西。

posted @ 2020-06-14 21:47  杜肚肚  阅读(272)  评论(0编辑  收藏  举报