C1任务一01-信息编码

C1任务一01-信息编码

  • 修改植物大战僵尸存档
    • 修改《植物⼤战僵⼫》的存档⽂件,能跳到指定关卡,例如「5-1」
    • 修改《植物⼤战僵⼫》的存档⽂件,让游戏账户有指定数量的⾦币
    • 修改《植物⼤战僵⼫》的存档⽂件,能解锁「迷你游戏」选项
    • 修改《植物⼤战僵⼫》的存档⽂件,能解锁「⽣存模式」选项
    • 自我练习
            • 卡槽
            • 水车![在这里插入图片描述](https://img-blog.csdnimg.cn/20210418215152361.jpg)
            • 钉耙![在这里插入图片描述](https://img-blog.csdnimg.cn/2021041821520699.jpg)
            • 屋顶车
            • 机枪射手
            • 向日葵![在这里插入图片描述](https://img-blog.csdnimg.cn/20210418215244839.jpg)
            • 犹豫菇![在这里插入图片描述](https://img-blog.csdnimg.cn/20210418215307393.jpg)
            • 香蒲![在这里插入图片描述](https://img-blog.csdnimg.cn/202104182153216.jpg)
            • 地磁王
            • 吸金磁
            • 冰西瓜
            • 加农炮
            • 模仿者![在这里插入图片描述](https://img-blog.csdnimg.cn/20210418215428147.jpg)
  • 计算机像素相关的系列任务
    • 通过⼆进制的0和1「画」出图形
    • 「画」出⾃⼰的名字或昵称
    • 理解⼆进制存储图⽚⽂件的底层原理
      • 自我尝试
  • 拓展任务
    • 通过搜索引擎了解bmp或png⽂件数据格式的特征
      • bmp
      • png
    • ⽤截图⼯具截⼀幅8×8⼤⼩纯⽩⾊的bmp/png图⽚
    • ⽤⼆进制编辑器观察bmp或png图⽚⽂件数据的规律
    • 在⽩底上⽤⿊⾊线条「画」出字⺟「C」
  • 自测
    • 110101010001转⼗六进制是多少?有什么最快的计算⽅法能得到结果?
    • 101011.101011对应的⼗进制数是多少?
    • 常⻅的⾳频编码格式有哪些?
    • 常⻅的视频编码格式有哪些?
    • 一个尺⼨8×8⼤⼩的png全⿊图⽚前四个字节的⼗六进制值是什么?
    • UTF8三字节的编码⽅式为:1110xxxx 10xxxxxx 10xxxxxx,汉字【中】的Unicode编码⼗六进制值是0x4e2d,Unicode编码按三字节编码转换到⼗六进制的UTF8编码的计算过程是什么?
    • 如果要提供⼀个实时的流媒体服务器,除了ffmpeg,还需要使⽤哪个组件?

修改植物大战僵尸存档

要完成该项任务,首先要寻找到植物大战僵尸的用户数据存储文件。由于传统的文件查找效率较低,最终通过everything进行查找,最终发现路径为C:\ProgramData\PopCap Games\PlantsVsZombies\userdata。还是比较深的一个文件。
C1任务一01-信息编码_第1张图片
找到文件后,接下来会有两个文件users及users1
在这里插入图片描述
通过分别打开,多次尝试后发现,users存储的是多用户的id,在全部id下面一行,存储用户个数
C1任务一01-信息编码_第2张图片

修改《植物⼤战僵⼫》的存档⽂件,能跳到指定关卡,例如「5-1」

通过尝试,得出在user1中第一行04是关卡,由于是两位16进制,则5-1关卡应该为29
C1任务一01-信息编码_第3张图片

修改《植物⼤战僵⼫》的存档⽂件,让游戏账户有指定数量的⾦币

通过尝试,得出金币数量修改应该是在第一行的08、09、0a、0b四个位置。没改变一位金币数量变化10,且是16进制存储,计算得出要改变为指定金币数额应该是22dd,由于这里排列是从后往前的,所以是dd22
C1任务一01-信息编码_第4张图片

修改《植物⼤战僵⼫》的存档⽂件,能解锁「迷你游戏」选项

修改《植物⼤战僵⼫》的存档⽂件,能解锁「⽣存模式」选项

经过测试,第一行0c表示通过次数,只要将0c改为>0即可解锁迷你游戏和生存模式
C1任务一01-信息编码_第5张图片

自我练习

经过测试得出以下数据位置

卡槽

卡槽

水车在这里插入图片描述
钉耙在这里插入图片描述
屋顶车

在这里插入图片描述

机枪射手

在这里插入图片描述

向日葵在这里插入图片描述
犹豫菇在这里插入图片描述
香蒲在这里插入图片描述
地磁王

在这里插入图片描述

吸金磁

在这里插入图片描述

冰西瓜

在这里插入图片描述

加农炮

在这里插入图片描述

模仿者在这里插入图片描述

计算机像素相关的系列任务

首先在https://studio.code.org/s/pixelation上申请账户,然后即可开始任务

通过⼆进制的0和1「画」出图形

通过0和1来进行绘图,0表示黑色区域,1表示白色区域
C1任务一01-信息编码_第6张图片

「画」出⾃⼰的名字或昵称

C1任务一01-信息编码_第7张图片C1任务一01-信息编码_第8张图片

理解⼆进制存储图⽚⽂件的底层原理

二进制存储图片底层原理就是通过0和1来控制颜色进行显示,就如上面进行的0和1控制黑色和白色的显示。
而在不同类型的图片中,遵从着不同的标准和规则进行,从而能够表现更多的颜色,而不仅仅是黑白。
例如:GIF文件内部是按块划分的,包括控制块( Control Block )和数据块(Data Sub-blocks)两种

在code.org里面,如下图,是通过第一行来控制宽度,第二行控制高度,第三行控制有多少位来表现色彩
C1任务一01-信息编码_第9张图片

自我尝试

拓展任务

通过搜索引擎了解bmp或png⽂件数据格式的特征

bmp

BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持
C1任务一01-信息编码_第10张图片
图片转载自https://www.cnblogs.com/wainiwann/p/7086844.html

  1. 数据存储
    bmp文件中,若一个数据需要多位来存,是低地址存低位数据,高地址存高位数据的。
  2. 文件存储
    文件不进行压缩,色彩表现力丰富,但占用空间很大。
    每个像素占一个字节,取得这个字节后,以该字节为索引查询相应的颜色,并显示到相应的显示设备上
  3. 文件显示
    调色板其实是一张映射表,标识颜色索引号与其代表的颜色的对应关系。它在文件中的布局就像一个二维数组palette[N][4],其中N表示总的颜色索引数,每行的四个元素分别表示该索引对应的B、G、R和Alpha的值,每个分量占一个字节。如不设透明通道时,Alpha为0。

png

  1. 数据存储
    使用无损压缩
    C1任务一01-信息编码_第11张图片

⽤截图⼯具截⼀幅8×8⼤⼩纯⽩⾊的bmp/png图⽚

通过Photoshop完成一个88像素的图片,快速导出为PNG
后来发现Photoshop似乎不能制作出bmp文件,发现Windows自带的画图工具就可以导出了,于是用画图3D导出了8
8像素的bmp文件在这里插入图片描述
在这里插入图片描述

⽤⼆进制编辑器观察bmp或png图⽚⽂件数据的规律

PNGC1任务一01-信息编码_第12张图片
BMP
C1任务一01-信息编码_第13张图片

在⽩底上⽤⿊⾊线条「画」出字⺟「C」

0000为黑色,ffff为白色,依此就可以画出.
C1任务一01-信息编码_第14张图片

自测

110101010001转⼗六进制是多少?有什么最快的计算⽅法能得到结果?

d51
通过四位二进制直接转换十六进制,四位二进制直接算出大小转换为十六进制

101011.101011对应的⼗进制数是多少?

小数点之前的依靠2的次方来转换,小数点之后的按照2的-次方转换
最终结果为43.671875

常⻅的⾳频编码格式有哪些?

印象中最深的就是MP3,ogg,wav
了解以后知道还有AAC、WMA、WAV、ATRAC、PLAC、APE

常⻅的视频编码格式有哪些?

H264 , VP8, AVS, RMVB,WMV,QuickTime(mov)、MP4等

一个尺⼨8×8⼤⼩的png全⿊图⽚前四个字节的⼗六进制值是什么?

在这里插入图片描述
C1任务一01-信息编码_第15张图片
1个字节是8位二进制,是2位16进制,所以前四个字节的16进制是
89 50
4e 47
0d 0a
00 00

UTF8三字节的编码⽅式为:1110xxxx 10xxxxxx 10xxxxxx,汉字【中】的Unicode编码⼗六进制值是0x4e2d,Unicode编码按三字节编码转换到⼗六进制的UTF8编码的计算过程是什么?

将UNICODE转换为UTF-8编码时应先转换为二进制,然后去除高位0,然后根据所剩编码的位数决定所需最小的UTF-8编码位数,最终转换为UTF-8。
假如在Unicode中汉字“中”的编码为“0x4e2d”,把它转换为二进制为100 1110 0010 1101,然后按照UTF-8的方法进行转换。可以将Unicode二进制从地位往高位取出二进制数字,所以可知中字的UTF8的编码也应该为4e2d
后来网上验证之后得到为中
C1任务一01-信息编码_第16张图片

如果要提供⼀个实时的流媒体服务器,除了ffmpeg,还需要使⽤哪个组件?

还需要ffsever配合使用

你可能感兴趣的:(C1任务一01-信息编码)