指南门小说网 > 游戏竞技 > 编程之战 > 第一百二八章 地图压缩(中)

第一百二八章 地图压缩(中)(1 / 1)

“阿历克斯,再想想别的法子吧”,牛仔央求地说道。

“唉,好吧”,杨成只好单手托腮,开始了思考。

地图信息实例像这样:

[true,true,true,false,true]

[false,false,true,false,false]

[true,false,true,false,true]

[true,false,false,false,true]

[true,true,true,true,true]

这是一个5X5的矩阵。

其中true代表可通行的区域,false标注的区域无法通行。

那么,怎么把这个地图实例转为手机存储呢?

一种最简单的方法,是把这个实例序列化为字符串,就像这样:

“[[true,true,true,false,true],[false,false,true,false,false],[true,false,true,false,true],[true,false,false,false,true],[true,true,true,true,true]]“

这种方法很有效,但缺点也很明显。

占用的存储空间太多了,远远超过了10个字符的长度。

所以,必须想一个方法,对地图信息进行压缩。

杨成通过观察,发现了一种比较好的压缩方法。

使用二进制!

true可以用数字1来替代,false用数字0来替代。

那么矩阵就成了0和1构成的数字矩阵。

然后,将矩阵的每一行,看作是二进制数字。

比方说,第一行:

[true,true,true,false,true]

替换成数字:

[1,1,1,0,1]

看作二进制数字:

“11101”

然后将这个二进制数字,转换为36进制。

得到小写字母“t”。

这样,足足减少了4个字符,达到了压缩的目的!

对矩阵的每一行都这么处理,就可以得到5个36进制字符。

再将这5个字符用逗号分割开来,以表明行结束。

总共只需要5+4=9个字符,其中包括4个逗号。

这个方法是切实可行的,但还有更好的办法!

请记住本书首发域名:booktxt.net。顶点小说手机版阅读网址:m.booktxt.net

最新小说: 变身反派少女 火影中的学习大师 小倾心 全职召唤法师 从乡村球队走向豪门列表 木叶之赚钱养家 召唤玩家后我成了海王 穿成病弱反派后 下路禁止秀恩爱[电竞] 北地枪王张绣