找回密码
 立即注册
搜索
热搜: 活动 交友
查看: 61|回复: 1

App 大赛:Hangman

[复制链接]

1

主题

1

回帖

42

积分

提示词程序员

积分
42
发表于 4 天前 | 显示全部楼层 |阅读模式
本帖最后由 tr1somy 于 5-6-2025 01:51 编辑

"Hangman" 想必大家都玩过,就是通过猜字母来揭开隐藏的单词。由于猜测次数有限制,人们一般会在脚手架上画个火柴人以统计猜测的次数,也便有了"Hangman"这个名称。


不过,"接"字母的Hangman,你听说过吗?


I. 玩法介绍


游戏一开始,玩家会看到一个托盘,一个空的单词框,和一些正在掉落的字母。玩家可以通过鼠标来控制托盘来接住字母,但有时候,字母会因为反重力折返...
当然,这只是为了恶搞玩家而定制的。如果玩家接到了字母,且字母在隐藏单词之内,那么该字母在单词中的位置会显现出来;如果字母不在单词中,那么玩家会被惩罚,所用时间增加5秒。如果将单词中的字母全部猜出,玩家立即胜利。该游戏没有限时,没有限定次数,只有一次次打破记录的挑战性。


很显然,游戏没那么简单
玩着玩着,屏幕上会逐渐掉落小炸弹。如果接到,屏幕上所有掉落的字母将全部消失,换来新的一批字母,且玩家会被惩罚增加10秒用时。到后期,屏幕上甚至会出现巨型炸弹(megabomb),大到能让你猝不及防。如果接到,玩家必须立刻猜出单词,否则玩家失败。耗到最后是没用的,megabomb只会越来越多,让你没有逃离空间...


II. 心路历程


这其实是去年12月就完成的游戏,但是此后没有找到机会发布。在去年的学校IT课上,钱老师给我们布置了一周内要完成的hangman group project,当然要求并没有让我们做成pygame,只是一个简单的标准的hangman程序即可(可以参考zip中的hangman.exe)。很显然,这太没有挑战性了,所以我和LapisLa2uli两人决定创造一个全新的"hangman",正好一周的时间也算充足。

我们的程序经历了百般迭代(可以参考zip中的其他.py),每天晚上就是你写完我写,我写完你写,毕竟我和LapisLa2uli的生物钟几乎是相反的(甚至有一次我肝程序还没睡他就已经醒了),这便进行得很顺利(希望是吧)。整个程序的框架构思都是LapisLa2uli提出的,其余的代码部分就是你写一段我写一段。虽然最后有点赶,exe没成功转化,但是最后还是靠肝完成了(还在课上进行了20分钟的presentation让钱老师濒临崩溃)。

(看一下最后修改时间就知道这东西有多伤肝了)

III. 技术架构与实现

这个游戏最主要的结构和展示都是用pygame实现的,掉落的字母,隐藏的单词,下方的托盘和各类炸弹都是用最基本的面向对象的class实现的。总而言之,整个代码都没有涉及到深层的原理,除了一个用来调色的colorsys库。代码的原理也很简单,先是创建一些class,像CLS_Catcher, CLS_Bomb, CLS_Megabomb, CLS_Character, 和 CLS_Word,每个都定义其属性和外观,然后再通过一个framework来执行程序,跟中A中B的pygame代码格式其实十分相似。大多数界面都是用pygame最基本的图形来绘制的,所以在美观上也并非完美。比较独特的是,这个游戏还有一个存储纪录的txt,也就是说在完成单词之后会判定是否破纪录,然后再更改文件中的内容,最后展示新的界面。还有一个比较独特的,也就是之前提到的“字母折返”现象,是RT乒乓中的random gravity,主要是整蛊玩家用的。主要的结构展示在以下流程图中:

(因大小问题已放入附件中)

IV: 亮点与难点

Stregths: 该游戏玩法新颖,独特,可以无聊时游玩
Weaknesses: 游戏界面美观性还待处理,可以增加更多元素

V: 玩法展示




(注:游戏帧率并非那么低,只是gif限制罢了)

游玩愉快!
(注:可将zip中的hamlet.txt改成任意文档,但必须在record.txt增加可能出现的字母长度)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

1

主题

1

回帖

42

积分

提示词程序员

积分
42
 楼主| 发表于 4 天前 | 显示全部楼层

-

本帖最后由 tr1somy 于 5-6-2025 01:49 编辑

作者:LapisLa2uli (余成昊),tr1somy (胡越)

gif貌似无法显示所以放这里的附件里了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|RealDevClub ( 沪ICP备2024093864号-1 )

GMT+8, 5-10-2025 23:17 , Processed in 0.060656 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表