0行代码,实现植物大战僵尸脚本
CSDN上个月推出了C站能力认证,在校大学生可以参加CSDN的高校俱乐部,组内可以一起领取任务、小组多人组队学习,任务提交后可以领取下一个任务。一下就吸引了我的眼球,还以为CSDN换策划了,此前我一直以为CSDN的策划是DNF的史派克。毕竟这种组队学习做任务的有趣活动可不像CSDN策划能干出来的事啊。不过转念一想,CSDN这两年版本不断地迭代,一直在不断地变好,这次总算是思路对了。(犹记得大一那会儿,玩儿CSDN用的最多的功能就是帮助反馈了~没事就给客服提功能或bug需求,体验做甲方的感觉,妙哉。如今,CSDN的前端相比以前已经变得有了很大的提升了。) 好了,闲言少叙,一起来看看我们领到的第一个任务吧!
C1任务01-修改游戏存档
- 一、C1挑战任务说明
- C1挑战任务实现
- 修改关卡
- 修改金币
- 二、C1自测任务
- 10进制转换16进制
- 二进制转10进制
- 常见的视频编码格式
- 65对应的ASCII码
- 三、C1附加题
一、C1挑战任务说明
任务资源提供:
- 这一任务主要考察计算机中的进制转换、在计算机中修改进制文件。
- 植物大战僵尸(单机版):链接,提取码
5t30
- 十六进制编辑器Hex Editor Neo(windows版):链接,提取码
1171
经过小组搜索与调查,我们发现:
- win10对此款游戏的兼容性很差,解决方案是打开时在属性中
打开兼容性
和用640x480屏幕分辨率运行
,并且将默认输入法切换为英文
。 - 植物大战僵尸的存档并非使用二进制存档,而是使用了
十六进制存档
。因为进制越高,每个字符所包含的信息量就越多,使用十六进制可以更紧凑地表示二进制。 - 必须
先玩一关并存档
,然后对存档的修改才有效。 - 当前关卡、游戏金币信息存储在:
C:\ProgramData\PopCap Games\PlantsVsZombies\userdata\user1.dat
文件中。
C1挑战任务实现
实现修改关卡和金币前需要先试玩一关并存档,这样本地才能有存档信息。
修改关卡
当前关卡1-2,将C:\ProgramData\PopCap Games\PlantsVsZombies\userdata\user1.dat
文件拖到Hex Editor Neo编辑器中后,发现第1行第04列中存储的十六进制数字是0-2:
我们的任务是将游戏关卡修改为5-2。第1-2关卡对应的16进制存储数据是0-2,表明大关卡是从0开始计数而非从1开始计数,容易推得5-2关卡对应的16进制存储数据即为4-2。-
没有实际意义,只是助记符号。所有现在问题转化为:计算出十进制的42转换为16进制的数值,填入并保存。
容易算的5-2关卡对应的16进制数为2a,我们用数据2a覆盖掉数据02
并保存 ,重启游戏,发现关卡成功跳转至5-2:
修改金币
仍然将C:\ProgramData\PopCap Games\PlantsVsZombies\userdata\user1.dat
文件拖到Hex Editor Neo编辑器中后,通过试玩游戏,我们目前获取了10枚金币,对应的16进制存储数据为01。经过不断修改数据发现二者存在一个10倍关系,即金币数量除以10再转化为16进制才是真正存储的数据
。
我们的任务是将金币修改为10000,问题转化为:计算出十进制的1000转换为16进制的数值,填入并存储。
容易得出十进制的1000对应的16进制数为3e8,此时就出现了歧义,3e8需要两列来存储,单独第8列并不能存储。额外的1列究竟该选用第7列还是第九列呢?
存储3e8的两列中哪一位是高位哪一位是低位呢?
经过多次测试,最终得出的结论是:选用第8列和第九列来存储3e8,且右侧为高位。我们使用3e8覆盖掉原数据
并保存,重新登录游戏,发现金币成功修改为¥10000:
至此,C1挑战任务完成。
二、C1自测任务
10进制转换16进制
10进制转换为16可以无脑使用短除法,每次除以16,最后将余数从下往上写。但是110101010001
这个数字实在是太大了,应该会有更简单的方法,但是我不清楚,有了解10进制转换为16进制的简便算法的朋友欢迎在文章下留言。这里我 “啪” 的一下就打开了计算器,很快啊!得出了110101010001
对应的16进制数为:19A2881651
(出题人,你不讲武德~)
二进制转10进制
二进制1010 1110 1011
转换为对应的十进制可以直接使用略小置权法
进行口算,这是一种十进制和二进制之间转换最快速的方法:
- 101110^{11}1011 =2048
- 10910^{9}109 =512
- 10710^{7}107 =128
- 10610^{6}106 =64
- 10510^{5}105 =32
- 10310^{3}103 =8
- 10210^{2}102 =2
- 10110^{1}101 =1
- 2048+512+128+64+32+8+2+1=
2795
常见的视频编码格式
常见的视频编码格式有五种:H.264
、MPEG-4
、MPEG-2
、WMA-HD
、VC-1
。
现在市场上主流的两类高清视频文件:
- 一类是
经过MPEG-2标准压缩
,以tp和ts为后缀的视频流文件 - 另一类是
经过WMV-HD标准压缩
,以wmv为后缀的文件
65对应的ASCII码
不想多bb,上ASCII码表图,不过大写字母A对应65
,小写字母a对应97
属于计算机常识。
三、C1附加题
C1附加题分析:
- 二进制画图在线网站:code.org
- 该网站给出的画图框中前两行是画布长和宽,我根据自己的需要将长改成了32,宽改成了12,然后画出来我的名字:Hudie.
0010 0000
0000 1100
11111111111111111111111111111111
11011101111111111111111111111111
11011101111111111011111111111111
11011101111111111011111111111111
11011101111111111011011111111111
11000001111111111011111000011111
11011101101101111011011011011111
11011101101101100011011011011111
11011101101101101011011000011111
11011101101101101011011011111111
11011101100001100011011000010111
11111111111111111111111111111111
至此,领取的第一个任务已经完成了,通过该任务我复习了计算机中的进制转换问题,周末想尝试一下帮助室友更改三国志单击游戏的数据。虽然最近忙着向Spring技术栈纵向发展,不过抽出时间来组队共同学习,在技术栈上横向扩展,复习复习基础知识,也是很有意思和意义的事情。最后,这是第一次对CSDN的活动感兴趣,希望这样的共同组队学习小组模式可以发展的更好。
0行代码,实现植物大战僵尸脚本相关推荐
- 有轻功:用3行代码让Python数据处理脚本获得4倍提速
Python是一门非常适合处理数据和自动化完成重复性工作的编程语言,我们在用数据训练机器学习模型之前,通常都需要对数据进行预处理,而Python就非常适合完成这项工作,比如需要重新调整几十万张图像的尺 ...
- Python3,3行代码,自动为脚本生成命令行,我默默的收藏了。
为python脚本生成命令行 1.引言 2.常规方法 3.Fire模块 3.1 模块介绍 3.2 代码示例 3.2.1 参数替换 3.2.2 类支持 3.2.3 代码示例 4.总结 1.引言 小屌丝: ...
- 【Android】0行代码实现任意形状图片展示--android-anyshape
前言 在Android开发中, 我们经常会遇到一些场景, 需要以一些特殊的形状显示图片, 比如圆角矩形.圆形等等.关于如何绘制这类形状, 网上已经有很多的方案,比如自定义控件重写onDraw方法, 通 ...
- 只需0行代码 | 文科生也能画词云图!
点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自数据管道 摘要: 词云图,也叫文字云,是对文本中出现频率较高的"关键 ...
- 0行代码拿210万年薪,ChatGPT催生新型「程序员」岗:工作纯靠和AI聊天
梦晨 发自 凹非寺 量子位 | 公众号 QbitAI 靠玩ChatGPT,还能找到新工作? 没错,Riley Goodside(后面叫他好面哥)4月份开始在网上发布玩GPT-3的心得. 最近ChatG ...
- 逆向-注入步骤代码 植物大战僵尸注入代码安放植物HOOK汇编代码
//获取窗口句柄 DWORD CMFCApplication1Dlg::GetWindows(CString Filename) { HWND hWnd = ::FindWindow(NULL ...
- 写一段植物大战僵尸的代码用Python
好的,我可以用 Python 写一段代码模拟植物大战僵尸的游戏.我们可以使用一个二维列表来存储游戏场地上的每一个单元格,并使用字符来表示每个单元格上的内容,例如 "P" 表示植物, ...
- Python用20行代码实现完整邮件功能 [完整代码+建议收藏]
大家好,我是Lex 喜欢欺负超人那个Lex 擅长领域:python开发.网络安全渗透.Windows域控Exchange架构 今日重点:python脚本实现发送邮件,邮件添加附件,读取接收邮件等功能. ...
- python你TM太皮了——区区30行代码就能记录键盘的一举一动
先看看效果 Like This↓ 一.公共WiFi 公用电脑什么的 在我们日常在线上工作.玩耍时,不论开电脑.登录淘宝.玩网游 统统都会用到键盘输入 在几乎所有网站,例如淘宝.百度.126邮箱等等 为 ...
- 植物大战僵尸 进制转换 使用JAVA 更改关卡 和金钱
文章目录 前言 一.进制转换 将二进制.八进制.十六进制转换为十进制 将二进制.八进制.十六进制转换为十进制 二.获取数据修改关卡 小技巧进制转换 三.获取数据修改阳光 四.通过编码修改关卡和金钱 修 ...
最新文章
- python从外部传入参数_从另一个Python脚本运行一个Python脚本,并传入参数 - python...
- Armadillo脱壳练习笔记(一)
- 合并果子(NOIP2004)
- 给大家推荐个学英语的网站
- 关于mysql的一些问题
- MFC m_pMainWnd
- bellman ford优先队列优化简介模板
- matplotlib创建图的基本方法
- fm核武破解 java出错_关闭Java时后台的FM无法恢复
- python使用PIL把透明背景图片转成白色背景
- C语言全局变量和数组的应用
- 内网穿透的几种方式-免费与收费(钉钉、Frp、花生壳、nat123)
- Python实现CRAPS赌博游戏
- python fun函数输入某年某月_Python编程实现输入某年某月某日计算出这一天是该年第几天的方法...
- MMGG聚焦| Mines of Dalarnia-土地预售在即
- 推荐一款插件layim.js 阿里大牛贤心制作的一款webim聊天插件
- 什么是 HTTP Headers?
- 谁来拯救中国的语言文学
- [转载]基于UML的需求分析和系统设计(完整案例和UML图形演示)
- Visual Effect Graph——块和操作符