20224129 2023-2024-2 《Python程序设计》实验4 Python综合实践

20224129谭力力 2024-05-18 16:43:51

20224129 2023-2024-2 《Python程序设计》实验4 Python综合实践

课程:《Python程序设计》
班级: 2241
姓名: 谭力力
学号:20224129
实验教师:王志强
实验日期:2024年5月14日
必修/选修: 专选课

1.实验内容

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
课代表和各小组负责人收集作业(源代码、视频、综合实践报告)
例如:编写从社交网络爬取数据,实现可视化舆情监控或者情感分析。
例如:利用公开数据集,开展图像分类、恶意软件检测等
例如:利用Python库,基于OCR技术实现自动化提取图片中数据,并填入excel中。
例如:爬取天气数据,实现自动化微信提醒
例如:利用爬虫,实现自动化下载网站视频、文件等。
例如:编写小游戏:坦克大战、贪吃蛇、扫雷等等
注:在Windows/Linux系统上使用VIM、PDB、IDLE、Pycharm等工具编程实现。


2.实验过程及结果

根据实验内容和实验要求,在查阅了相关资料后决定编写贪吃蛇小游戏
具体实验过程如下:
1.下载安装pygame,并检测Pygame包是否安装成功

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

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


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

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

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

在游戏中,蛇可以通过键盘上的方向键进行控制,每当吃到一个白色的食物方块时,蛇就会长大,并且增加一分。如果撞到自己或墙壁,游戏则结束。

 

3.源代码

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:
    

4.游戏运行视频

 

5.本次实验遇到的问题及感想体会

问题1:pygame插件未安装,导致代码无法运行
问题1解决方案:在CSDN查找如何下载pygame,具体下载步骤在实验过程第一步。
问题2:编写游戏的主循环代码时多次出错
问题2解决方案:在CSDN上寻找到了解决方法。

感想体会:编写贪吃蛇游戏的代码确实是一个具有挑战性的过程。贪吃蛇小游戏涉及到的元素和逻辑也比较繁琐,要编写这样一个小游戏对我来说还是有较大的难度。在编写过程中,我面临了许多挑战。首先是关于游戏逻辑的设计,需要考虑蛇的移动、食物的生成、碰撞检测等问题,这需要仔细思考并且合理地设计代码结构。贪吃蛇游戏还涉及到一些技术细节,比如如何实现蛇的移动等,这些细节问题虽然看似简单,但实际上需要我不断地思考和尝试,确保游戏的流畅性和可玩性。最具有挑战性的还是编写贪吃蛇主循环代码,耗费了大量的时间。不过在这个过程中,我不仅提升了自己的编程技能,也增强了我对游戏开发的理解和认识。


6.课程总结与感想体会

在Python基础课程结束之后,我对这段学习经历深有感触。通过学习这门课程,我掌握了Python语言的基本语法和编程逻辑,对程序设计有了更深入的理解,同时也培养了我的逻辑思维能力和问题解决能力。这门课程让我在编程的道路上迈出了重要的一步。我通过课程学习了Python的基本数据类型、控制结构、函数、模块等知识点,掌握了Python编程的基本技能。在课程的每个环节中,志强老师都耐心地教导我们,详细讲解每一个知识点,引导我们解决问题,让我们在学习中感受到了成就感和乐趣。在这段学习过程中,我深刻感受到了老师对我们的包容。我们基础普遍较差,但是无论是面对我们提出的问题,还是在课程中的讲解过程中,志强老师总是细心倾听,耐心解答,让我们感受到了他对我们学习的重视和支持。老师的耐心与细心教导让我受益良多,让我在学习中不断成长。在此,我要表达对志强老师的感激之情,感谢老师在教学中的用心教导和耐心指导,让我受益匪浅。这段学习经历将成为我成长道路上宝贵的记忆,也让我对未来的学习和发展充满信心和期待。谢谢志强老师!谢谢这段宝贵的学习时光!

...全文
181 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文针对离网光伏直流微网中存在的功率供需失衡问题,提出了一种基于光伏最大功率点跟踪(MPPT)与锂离子储能系统双向削峰填谷协同控制的解决方案,并通过Simulink仿真平台进行了系统建模与验证。研究聚焦于间歇性光伏出力条件下48V直流母线电压的稳定控制,构建了包含光伏阵列、Boost DC-DC变换器、负载、双向DC-DC变换器及锂离子电池在内的完整系统架构。通过整合MPPT算法实现光伏出力的最大化捕获,同时设计储能系统的双向充放电闭环调控策略,在光照充足时储存多余电能,在光照不足或负载高峰时释放电能,从而实现“削峰填谷”,有效平衡系统功率,维持直流母线电压稳定。研究还融合了能量管理策略与电池充放电控制逻辑,提升了微网系统的能量自给率、运行稳定性及对复杂工况的适应能力。; 适合人群:具备电力电子、新能源系统、自动化或电气工程等相关专业背景,从事微电网、分布式能源系统、储能控制、光伏系统集成等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于离网型直流微网能量管理系统的设计与仿真验证;②为光伏-储能协同控制策略的研究与优化提供理论依据和技术参考;③实现直流母线电压的精确稳定控制,提升储能系统利用效率,增强系统在光照波动和负载变化等复杂工况下的可靠性和鲁棒性。; 阅读建议:建议结合提供的Simulink仿真模型进行实践操作,重点关注MPPT算法(如扰动观察法或增量电导法)与储能系统充放电控制逻辑(如基于电压阈值或功率预测的充放电策略)之间的协同机制,深入理解能量管理策略的实现流程,并可通过修改光照强度、负载大小等参数,扩展研究不同运行场景下的系统性能表现。

93

社区成员

发帖
与我相关
我的任务
社区描述
Python程序设计作业
软件构建 高校 北京·丰台区
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧