20191130实验四python综合实践

LYhi LYhi     2022-12-02     444

关键词:

------------恢复内容开始------------

实验四 Python综合实践

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
课代表和各小组负责人收集作业(源代码、视频、综合实践报告)


(1)程序能运行,功能丰富。(需求提交源代码,并建议录制程序运行的视频)
(2)综合实践报告,要体现实验分析、设计、实现过程、结果等信息,格式规范,逻辑清晰,结构合理。
(3)在实践报告中,需要对全课进行总结,并写课程感想体会、意见和建议等。

 

一、实验内容

Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。

本次实验内容:一个简单的贪吃蛇小游戏

二、实验过程及结果

1.安装PyGame

在官网Welcome to Python.org下载pygame 2.0.1并安装

在cmd中输入python -m pip install --user pygame安装好pygame

在python中检验是否安装完成

 

2.由于个人思路不完善,在网上调查多个贪吃蛇代码,构造出了以下简单小游戏

运行结果如下

使用wasd表示上下左右移动贪吃蛇。

 

 三、游戏完整代码

# 导入模块
import pygame
import random
# 初始化
pygame.init()
w = 720 #窗口宽度
h = 600 #窗口高度
ROW = 30 #行数
COL = 36 #列数
#将所有的坐标看作是一个个点,定义点类
class Point:
row = 0
col = 0
def __init__(self, row, col):
self.row = row
self.col = col
def copy(self):
return Point(row = self.row,col = self.col)
#显示窗口和标题
size = (w, h)
window = pygame.display.set_mode(size)
pygame.display.set_caption(\'贪吃蛇\')
#定义蛇头坐标
head = Point(row = ROW/2, col = COL/2)
#蛇身体
snake_list = [
Point(row = head.row,col = head.col+1),
Point(row = head.row,col = head.col+2),
Point(row = head.row,col = head.col+3)
]
#产生食物
def pro_food():
#食物不能与蛇重叠
while True:
pos = Point(row=random.randint(1,ROW-2), col=random.randint(1,COL-2))
is_coll = False
if head.row == pos.row and head.col == pos.col:
is_coll = True
for snake in snake_list:
if snake.col == pos.col and snake.row == pos.row:
is_coll = True
break
if not is_coll:
return pos
food = pro_food()
#定义颜色
bg_color = (255, 255, 255)
head_color = (0, 128, 128)
food_color = (180, 250, 0)
snake_color = (200,200,200)
#给定初始方向
dire = \'left\'
def rect(point, color):
cell_width = w/COL
cell_height = h/ROW
left = point.col*cell_width
top = point.row*cell_height
pygame.draw.rect(
window, color,
(left,top,cell_width, cell_height, )
)
pass
# 游戏循环
quit = True
clock = pygame.time.Clock()
while quit:
for event in pygame.event.get():
#退出方式
if event.type == pygame.QUIT:
quit = False
elif event.type == pygame.KEYDOWN:
#键盘控制
if event.key == 273 or event.key == 119:
if dire == \'left\' or dire == \'right\':
dire = \'up\'
elif event.key == 274 or event.key == 115:
if dire == \'left\' or dire == \'right\':
dire = \'down\'
elif event.key == 276 or event.key == 97:
if dire == \'up\' or dire == \'down\':
dire = \'left\'
elif event.key == 275 or event.key == 100:
if dire == \'up\' or dire == \'down\':
dire = \'right\'
#吃
eat=(head.row == food.row and head.col == food.col)
if eat:
food = pro_food()
#处理身体
#1.原来的头换到身体最前端
snake_list.insert(0,head.copy())
#2.删除身体最后一个
if not eat:
snake_list.pop()
#移动
if dire == \'left\':
head.col -= 1
elif dire == \'right\':
head.col += 1
elif dire == \'up\':
head.row -= 1
elif dire == \'down\':
head.row += 1
#检测:
dead=False
#1.撞墙
if head.col < 0 or head.row< 0 or head.col >= COL or head.row >= ROW:
dead=True
#2.撞自己
for snake in snake_list:
if head.col == snake.col and head.row == snake.row:
dead=True
break
if dead:
print(\'dead\')
quit = False
#绘制背景
pygame.draw.rect(window, bg_color, (0, 0, w, h))
#蛇头
rect(head, head_color)
#食物
rect(food,food_color)
#蛇身
for snake in snake_list:
rect(snake,snake_color)
pygame.display.flip()
#游戏帧数
clock.tick(10)

四、实验心得

通过练习更加熟悉了python的使用,同时了解了pygame的基础模块并完成了一个小游戏。由于考试复习和学校活动排列,完成实验花费的时间较少,有不完善以及出现问题的部分,后续如果有时间将继续修改。

 

201993052019-2020-2《网络攻防实践》综合大实践

TheArtofTheScam:DemystifyingHoneypotsinEthereumSmartContracts一、前言二、知识梳理三、实验四、问题与解决五、总结与建议六、参考资料 查看详情

201993182019-2020-2《网络攻防实践》综合实践

201993182019-2020-2《网络攻防实践》综合实践1.实验背景本次实践的目的是对漏洞挖掘软件SlowFuzz开展实验,探究其性能的好坏,并对实验结果进行分析。1.1FuzzingFuzzing是一种通过向目标系统提供非预期的输入并监视异常结果来发现... 查看详情

202013032020-2021-2《python程序设计》实验四报告

202013032020-2021-2《Python程序设计》实验四报告课程:《Python程序设计》班级:2013姓名:张奕博学号:20201303实验教师:王志强实验日期:2021年6月19日必修/选修:公选课1.实验内容Python综合应用:爬虫、数据处理、可视化、机器学... 查看详情

实验四20203112梁志鹏

...:《Python程序设计》班级:2031姓名:梁志鹏学号:20203112实验教师:王志强实验日期:2021年5月24日必修/选修:公选课1.实验内容Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。鉴于课程最... 查看详情

实验四

1.综合使用loop,[bx],编写完整汇编程序,实现向内存b800:07b8开始的连续16个字单元重复填充字数据0403H。在dos中输入下列的程序运行过后出现的如上图 在程序中将0403H修改为0441H后运行的如上图2.综合使用loop,[bx],编写完整汇编... 查看详情

python综合程序设计——做一个可视化大屏(代码片段)

目录标题预览一、实验目的二、设备与环境三、实验内容四、实验结果及分析1、实验运行过程及分析2、运行结果3、心得体会源码领取预览一、实验目的通过该实验把Python语言中基本知识和第三方库得到综合应用。完成可视化热... 查看详情

python综合程序设计——做一个可视化大屏(代码片段)

目录标题预览一、实验目的二、设备与环境三、实验内容四、实验结果及分析1、实验运行过程及分析2、运行结果3、心得体会源码领取预览一、实验目的通过该实验把Python语言中基本知识和第三方库得到综合应用。完成可视化热... 查看详情

实验四(代码片段)

实验四三、实验内容1.综合使用loop,[bx],编写完整汇编程序,实现向内存b800:07b8开始的连续16个字单元重复填充字数据0403H。assumecs:codecodesegmentmovax,0b800hmovds,axmovbx,07b8hmovcx,000fhS:mov[bx],0403hincbxincbxloopsmovax,4c00hint21hcodeendsend2.综合 查看详情

实验四

实验结论实验任务1:综合使用loop,[bx],编写完整汇编程序,实现向内存b800:07b8开始的连续16个字单元重复填充字数据0403H。  源代码:    运行结果:    将源代码程序中字数据0403H修改为0441H,再次运行。   实... 查看详情

软件工程综合实践的第二次实验报告

...定1757127,李铮达1759118这次是软件工程综合实践的第二次实验,本次任务是结对编程,就是找一个小伙伴一起写代码,一人写代码一人复审代码,这样可以更快的找出代码的错误,然后立即更改,提高开发效率。下面是老师发布... 查看详情

实验四

...向内存0:200~0:23F依次传送数据0~63(3FH)源代码结果3.教材实验4(3)(P121)assumecs:code   codeseg 查看详情

实验四

实验内容1.(1)综合使用loop,[bx],编写完整汇编程序,实现向内存b800:07b8开始的连续16个宇单元重复填充字数据0403H;代码如下:运行结果: (2)将源代码程序中字数据0403H—修改为0441H,再次运行;代码如下: 运行结果:&... 查看详情

实验四

实验结论1.综合使用loop,[bx],编写完整汇编程序,实现向内存b800:07b8开始的连续16个字单元重复填充字数据0403H代码如下对其进行编译链接运行这个程序,结果如下图 将源代码程序中字数据0403H→修改为0441H对其进行编译链接... 查看详情

实验九:efang的虚拟主机的搭建(综合实验)

实验目的:熟练掌握虚拟主机搭建的全过程整个实验的需要搭建的框架实验一:IIS实验二:DNS实验三:SQL实验四:Serv-U实验五:Winwebmail实验六:EFang的虚拟主机的搭建看前面的演示(略)实验一:IIS实验二:DNS实验三:SQL实验四... 查看详情

实验四

 任务一:综合使用loop和[bx],编写完整汇编源程序,实现向内存b800:07b8开始的连续16个字单元重复填充字数据0430h。代码:运行结果:任务二:综合使用loop,[bx],编写完整汇编源程序,实现向内存0:200~0:23F依次传送数据0~63(3FH)... 查看详情

实验四

 d实验内容一:综合使用loop,【bx】,编写完整的汇编程序,事先向内存b800:07b8开始的连续16个字单元重复填充数据0403H 所写的代码如下图 当运行后会出现下图所示的结果  当把0403h改为0441h后结果如下图练习2... 查看详情

汇编实验四

一:综合使用loop,[bx],编写完整汇编程序,实现向内存b800:07b8开始的连续16个字单元重复填充字数据0403H:汇编连接:运行结果:综合使用loop,[bx],编写完整汇编源程序,实现向内存0:200~0:23F依次传送数据0~63(3FH):assume  cs:... 查看详情

python大作业

python第四次实验(大作业)学号20181316《Python程序设计》实验报告课程:《Python程序设计》班级:2018姓名: 曾令杰学号:20181316实验教师:王志强实验日期:2021年6月20日必修/选修:公选课1.实验内容Python综合实践,从网上找... 查看详情