20212212颜瑞淋 实验四 Python综合实践
20212212颜瑞淋 实验四《Python程序设计》实验报告
#学号 20212212《Python程序设计》实验四报告
课程:《Python程序设计》
班级: 2122
姓名: 颜瑞淋
学号:20212212
实验教师:王志强
实验日期:2022年5月23日
必修/选修: 公选课
实验四
(一)实验内容
Python综合应用:在华为ECS服务器(OpenOuler系统)和物理机(Windows/Linux系统)上使用VIM、PDB、IDLE、Pycharm等工具编程实现一个俄罗斯方块小游戏。
(二)实验灵感来源
小时候玩的俄罗斯方块算得上是一个经典小游戏,希望可以通过自己的学习研究完成一个简易版的俄罗斯方块先游戏。
(三)实验过程
1.通过b站,知乎,CSDN博客等网站学习利用pygame制作python小游戏的方法
Python pygame是一款专门为开发和设计 2D 电子游戏而生的软件包,它支 Windows、Linux、Mac OS 等操作系统,具有良好的跨平台性,下载安装它来完成我的游戏制作。
图为已经下载好了pygame
2.按步骤开始编辑代码
import模块pygame以及random包(随机库),以此来实现部分函数的使用
确定游戏的初始位置,得分,背景等;
设置初始press为False,即没有按压键盘;
输入存放俄罗斯方块形状的对应坐标:
"Z": [(-1, -1), (0, -1), (0, 0), (1, 0)],
"O": [(-1, -1), (0, -1), (-1, 0), (0, 0)],
"S": [(-1, 0), (0, 0), (0, -1), (1, -1)],
"T": [(-1, 0), (0, 0), (0, -1), (1, 0)],
"I": [(0, 1), (0, 0), (0, -1), (0, -2)],
"L": [(-1, 0), (0, 0), (-1, -1), (-1, -2)],
"J": [(-1, 0), (0, 0), (0, -1), (0, -2)];
设置初始背景所有格子为0;
第一行格子为1,
即在背景的第一行处随机产生一个形状的俄罗斯方块;
定义一个函数move, 并用if语句来设置函数
当方块在0-19行,0-9列时,如果方块碰壁了,用RGB三原色来设置俄罗斯方块的颜色,设置为蓝色,并设置方块的大小;
重新设置初始位置,即改变俄罗斯方块的位置;
判断俄罗斯方块移动后是否会越界,如果越界,退出(break);
否则,清除原有初始位置的俄罗斯方块,新增俄罗斯方块的位置为[y_drop, x_move];
判断翻转后的俄罗斯方块是否会越界,如果越界,退出(break);
否则,清除原有初始位置的俄罗斯方块,新增俄罗斯方块的位置为翻转后的位置;
如果某一行的背景格子均变成了1(即整行均有格子),则整行清除
设置窗口的大小,即游戏页面的大小
如果发生press的情况,times每次加10,当times超过50时,执行move(10)的情况,并将times重新变回0;
否则,times每次加1;
如果gameover,则游戏退出,执行move(10)的情况;
3.完成全部代码
完整代码
4.运行代码
运行成果
5.购买云服务器得到自己的公网
5.上传源代码到ECS主机
利用winscp将代码文件上传到华为云服务器上(文件为A.py)
6.在putty上登录云服务器并运行代码
下载pip3,以便于pygame的下载
下载pygame(出现错误,但再试一次就可以了)
运行文件,但还是不行……(有点,但是还是要继续啊,认真搞清楚问题是啥,怎么解决!!)
根据错误,找到了解决方法
下载xming,用于图形的显示
下载xterm
进入自己游戏代码的目录并打开xterm
进入xterm界面
7.成功显示游戏(视频发给课代表~)
(四)实验反思
实验过程中遇到的问题和解决过程
- 问题1:在运行代码时,生成的游戏仅可见一部分,上下都被挡掉了
- 问题1解决方案:可以在代码中的这部分改变窗口大小
但由于不同电脑上可见的窗口大小不同,就不做更改
- 问题2:在使用python3命令执行文件时,不能运行
- 问题2解决方案:未下载pip3,进行pip3的安装,并install pygame
- 问题3:运行文件后不能出现游戏页面
- 问题3解决方案:下载xming以及xterm,远程登录图形界面
(五)全课总结
这学期的python课对于我来说算是一个比较大的挑战,怎么说呢,做了四次实验,每次都折腾了很久,偶尔觉得(见以下表情包……)
甚至有时候好不容易搞定一个困难,又来一个……
但是!俗话说得好,世上无难事只怕有心人!
经过每次实验的蹉跎,啊不,历练,我越来越淡定了(*σ´∀`)σ
虽然这些实验过程艰难,但是在我问老师,问同学,问百度,问知乎,问CSDN,问Linux公社,问b站……的努力下,我成功完成这些实验,并且享受这种开始啥啥都不会,到最后虽然不太会,还是可以完成实验的开心中……
可以说这学期我学会了很多,从一个小小白,变成了一个小白,不能不说算是一个巨大成就(*σ´∀`)σ
我学学习了数列的应用,字符串,函数文件及目录操作,数据库,正则表达式,socket,爬虫等,虽然学艺不精,但是我还会继续学习的(*σ´∀`)σ
人生苦短,我用python。很开心自己选了python这门课,王志强老师亲切幽默,上课简单易懂,内容充实,还非常体谅我们这些大一小白白 。我在老师的指导下学到了很多,也在实验的历练下成长了很多,所以说,再来一次,我还选王志强老师的课(*σ´∀`)σ
参考资料:https://www.jianshu.com/p/23ba123ee874
https://www.daehub.com/archives/9949.html#:~:text=%E5%85%B6%E4%B8%AD%20PuTTY%20%E6%98%AF%20SSH%20%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%8C%E8%80%8C,Xming%20%E5%88%99%E6%98%AF%20Windows%20%E5%B9%B3%E5%8F%B0%E7%9A%84%20X%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%82
https://www.freesion.com/article/73691086600/
https://www.linuxidc.com/Linux/2017-01/139241.htm
https://pan.baidu.com/s/1wMDA-8zqd8eiu6iGWGPqFQ?_at_=1653577595955