20244227马箫忆Python《实验报告四》

课程:《Python程序设计》
班级: 2442
姓名: 马箫忆
学号:20244227
实验教师:王志强
实验日期:2025年5月27日——6月1日
必修/选修:专选课

1.实验内容
Python综合应用:爬虫、数据处理、可视化、机器学习、神经网络、游戏、网络安全等。
例如:编写从社交网络爬取数据,实现可视化舆情监控或者情感分析。
例如:利用公开数据集,开展图像分类、恶意软件检测等
例如:利用Python库,基于OCR技术实现自动化提取图片中数据,并填入excel中。
例如:爬取天气数据,实现自动化微信提醒
例如:利用爬虫,实现自动化下载网站视频、文件等。
例如:编写小游戏:坦克大战、贪吃蛇、扫雷等等
注:在Windows/Linux系统上使用VIM、PDB、IDLE、Pycharm等工具编程实现。
2.实验过程
(1)分析确定实验方向分析
  本次结课大作业选择了编写小游戏的方向,考虑自身的能力与手头的资源,我计划使用python程序实现一个类似于2048(俄罗斯方块)的小游戏。通过网络上的查找与学习,结合自己课堂的学习内容,来实现本次程序的编写。
(2)编写程序内容
首先需要初始化一个游戏棋盘,大小为4*4,初始化时需要生成两个2或4的数字,位置随机。然后,处理玩家输入,上下左右箭头键控制数字的移动方向。移动时需要处理每一行或列的合并,例如向左移动时,每一行从左到右合并相同数字,类似的逻辑适用于其他方向。合并后需要检查是否有空格,并随机生成新的数字(通常是 2,概率 90%,4 的概率 10%)。还需要实现得分系统,每次合并数字时累加得分。同时,需要检测游戏是否结束,即棋盘填满且无法合并任何数字。在代码结构上,需要定义函数来处理移动(如 move_left、move_right 等),合并逻辑,生成新数字,绘制棋盘和数字,以及检测游戏结束的条件。
需要注意异常处理,比如确保移动操作不会越界,生成新数字时找到有效的空格。此外,图形界面的绘制需要清晰,包括格子的颜色、数字的位置和大小,确保玩家体验。最后,测试代码的完整性,确保可以运行,没有语法错误,并且功能正常:移动、合并、生成新数字、得分显示、游戏结束检测等。







3.实验过程中的问题及解决办法
(1)实验初始阶段未详细考虑格子的颜色及对应数字的颜色,造成视觉效果不佳,玩家体验感极差,可通过浅色格子使用深色数字(或相反)解决。
(2)在运行过程中发现格子与数字的大小不匹配或数字位置有偏移,所以采用固定数字大小(如40号字体)简化解决。

4.实验总结与感悟
这次用 Python 编写 2048 小游戏,就像亲手搭建一座数字积木城堡。从棋盘初始化时的 “摸着石头过河”,到看着数字随箭头灵动合并,每一次代码调试都是和程序的 “趣味对话”。最难忘为格子设计渐变色时,像画家调配颜料般反复调整 RGB 值,当 2048 在橙红色格子里 “诞生” 的瞬间,成就感爆棚!编程不再是冰冷的代码堆砌,而是用逻辑编织乐趣的魔法 —— 键盘按下的不只是按键,更是让创意落地的 “启动键”。看着自己写的游戏流畅运行,忽然懂了:原来代码也能 “跳舞”,而我们都是创造舞步的人。这大概就是编程的魅力,永远有新的惊喜在等待探索。
学习 Python 的三个月,像是拆开一盒充满惊喜的逻辑拼图。从笨拙地敲下第一行print("Hello World"),到用 Pygame 打造会 “跳舞” 的 2048 小游戏,每一次代码跑通时的雀跃,都让我真切感受到编程的魅力 —— 它是理性与创意的奇妙共振。这三个月的学习,让我从对代码编辑有种莫名的恐惧,到现在期待按下运行按钮。这门课教会我的,不止是语法和库的用法,更是用编程思维拆解问题的能力。Python 像一把钥匙,让我看见技术与生活的连接:原来数据可以讲故事,代码能变成会互动的游戏。未来我想继续探索机器学习和爬虫,让这门 “语言” 带我解锁更多可能。
5.附运行视频链接
哔哩哔哩https://b23.tv/LDVvtlJ

posted @ 2025-05-31 18:16  白银老师  阅读(30)  评论(0)    收藏  举报