网格类数据的存储方法、装置、电子设备及存储介质

文档序号:1868066 发布日期:2021-11-23 浏览:39次 >En<

阅读说明:本技术 网格类数据的存储方法、装置、电子设备及存储介质 (Grid data storage method and device, electronic equipment and storage medium ) 是由 黎秋成 于 2021-07-14 设计创作,主要内容包括:本发明公开了一种网格类数据的存储方法、装置、电子设备及存储介质,通过采集到客户端当前的地图数据后,识别地图数据的属性和取值范围,基于属性和取值范围对地图数据进行转换,得到数据字符串,按照预设的数据拼接规则对地图数据中的各个位进行拼接后得到新的数据字符串,然后将新的数据字符串转换为十进制数据,得到地图数据的值,并按照预设的地图数据在数据库中的存储格式进行存储。通过这样的存储方式可以低成本的开发网格类游戏,节省地图开发成本,同时十进制的存储便于扩展和后续的数据读取,提高运行速度,提升了玩家的游戏体验。(The invention discloses a method, a device, electronic equipment and a storage medium for storing grid data, which are characterized in that after current map data of a client is acquired, attributes and a value range of the map data are identified, the map data are converted based on the attributes and the value range to obtain data character strings, all bits in the map data are spliced according to a preset data splicing rule to obtain new data character strings, then the new data character strings are converted into decimal data to obtain the values of the map data, and the values are stored according to the storage format of the preset map data in a database. By the storage mode, grid games can be developed at low cost, map development cost is saved, decimal storage is convenient for expansion and subsequent data reading, running speed is improved, and game experience of players is improved.)

网格类数据的存储方法、装置、电子设备及存储介质

技术领域

本发明涉及数据处理技术领域,尤其涉及一种网格类数据的存储方法、装置、电子设备及存储介质。

背景技术

随着互联网的发展,网格类游戏逐渐受到玩家青睐,如扫雷、消消乐等更是融入了日常生活中。而目前的网格类游戏更多的是基于地图的玩法,游戏玩家通过定制的地图,进行交互和操作,对于这些地图、交互和操作等信息的显示实现,则需要通过服务器进行存储至内存单元中,然后游戏终端从存储单元中读取来进行显示处理。

在现有技术中,为了便于显示的读取解析,主要是采用二进制和XML文件的方式进行存储,但是这样存储方式由于操作的自由度受限,使得数据读取效率和解析效率并不高,尤其是对于数据量庞大的网格类游戏,会导致游戏的显示运行速度降低,继而影响玩家体验。

发明内容

为了解决上述的问题,本发明提供了一种网格类数据的存储方法、装置、电子设备及存储介质,其目的在于解决现有的游戏数据存储影响数据读取且不便于扩展性,而导致游戏运行速度较低的技术问题。

针对上述问题,本发明采用了以下技术方案:

第一方面,本发明提供了一种网格类数据的存储方法,所述存储方法包括以下步骤:

采集客户端当前的地图数据,并识别所述地图数据的属性和取值范围,基于所述属性和取值范围对所述地图数据进行转换,得到数据字符串;

按照预设的数据拼接规则对所述地图数据中的各个位进行拼接,得到新的数据字符串;

将所述新的数据字符串进行十进制转换处理,得到地图数据的值;

将所述地图数据的值按照预设的地图数据存储格式存储至数据库中。

可选的,所述采集客户端当前的地图数据,并识别所述地图数据的属性和取值范围,基于所述属性和取值范围对所述地图数据进行转换,得到数据字符串包括:

采集客户端当前的地图数据,并将所述地图数据进行网格化处理,得到多个网格地图单元格;

识别每个网格地图单元格的属性;

根据所述属性识别所有网格地图单元格中相同属性的网格地图单元格的数量,并基于所述数量确定各属性下的网格地图单元格的取值范围;

根据所述取值范围确定各属性对应的网格地图单元格的二进制位数,并基于所述二进制位数对各网格地图单元格进行二进制转换,得到二进制字符串。

可选的,所述基于所述二进制位数对各网格地图单元格进行二进制转换,得到二进制字符串包括:

根据所述二进制位数定义空白二进制字符串;

根据所述取值范围和所述属性,对所述空白二进制字符串中的每个位配置对应的取值,得到与各网格地图单元格对应的二进制字符串。

可选的,所述数据拼接规则包括属性字节的排序顺序和各属性字节的取值大小排序,所述按照预设的数据拼接规则对所述地图数据中的各个位进行拼接,得到新的数据字符串包括:

根据所述属性字节的排序顺序对所有所述二进制字符串中的各属性字节的顺序进行调整,得到对应的新的二进制字符串;

根据所述属性字节的取值大小排序对所有所述新的二进制字符串进行调整,得到新的数据字符串。

可选的,所述根据所述属性字节的排序顺序对所有所述二进制字符串中的各属性字节的顺序进行调整,得到对应的新的二进制字符串包括:

识别各所述二进制字符串中各属性字节的位数;

将每个二进制字符串中所述位数等于1的属性字节放置整个字符串中的最低位,将所述位数大于1的属性字节按照高位排位数少、低位排位数多的规则进行排序,得到对应的新的二进制字符串。

可选的,在所述按照预设的数据拼接规则对所述地图数据中的各个位进行拼接,得到新的数据字符串之后,还包括:

检测各网格地图单元格中是否存在用户操作信息;

若存在,则在所述新的数据字符串的最低位后添加至少一个操作属性字节;

根据所述用户操作信息,从所述至少一个操作属性字节中选择对应的属性位,并配置对应的取值,得到新的二进制字符串。

可选的,所述地图数据存储格式为行-单元格列表和行-列-单元格表中的一种;

所述将所述地图数据的值按照预设的地图数据存储格式存储至数据库中包括:

以所述新的二进制字符串中的最高位字节和第二高位字节分别作为行列号;

基于所述行列号对所有的新的二进制字符串存储至行-单元格列表或行-列-单元格表中,得到数据存储表格;

将所述数据存储表格发送至数据库的存储块中进行存储。

第二方面,本发明还提供了一种网格类数据的存储装置,所述网格类数据的存储装置包括:

识别模块,用于采集客户端当前的地图数据,并识别所述地图数据的属性和取值范围,基于所述属性和取值范围对所述地图数据进行转换,得到数据字符串;

拼接模块,用于按照预设的数据拼接规则对所述地图数据中的各个位进行拼接,得到新的数据字符串;

转换模块,用于将所述新的数据字符串进行十进制转换处理,得到地图数据的值;

存储模块,用于将所述地图数据的值按照预设的地图数据存储格式存储至数据库中。

可选的,所述识别模块包括:

网格化单元,用于采集客户端当前的地图数据,并将所述地图数据进行网格化处理,得到多个网格地图单元格;

识别单元,用于识别每个网格地图单元格的属性;根据所述属性识别所有网格地图单元格中相同属性的网格地图单元格的数量;

确定单元,用于基于所述数量确定各属性下的网格地图单元格的取值范围;以及根据所述取值范围确定各属性对应的网格地图单元格的二进制位数;

二进制转换单元,用于基于所述二进制位数对各网格地图单元格进行二进制转换,得到二进制字符串。

可选的,所述二进制转换单元具体用于:

根据所述二进制位数定义空白二进制字符串;

根据所述取值范围和所述属性,对所述空白二进制字符串中的每个位配置对应的取值,得到与各网格地图单元格对应的二进制字符串。

可选的,所述数据拼接规则包括属性字节的排序顺序和各属性字节的取值大小排序,所述拼接模块包括:

第一调整单元,用于根据所述属性字节的排序顺序对所有所述二进制字符串中的各属性字节的顺序进行调整,得到对应的新的二进制字符串;

第二调整单元,用于根据所述属性字节的取值大小排序对所有所述新的二进制字符串进行调整,得到新的数据字符串。

可选的,所述第一调整单元具体用于:

识别各所述二进制字符串中各属性字节的位数;

将每个二进制字符串中所述位数等于1的属性字节放置整个字符串中的最低位,将所述位数大于1的属性字节按照高位排位数少、低位排位数多的规则进行排序,得到对应的新的二进制字符串。

可选的,所述网格类数据的存储装置还包括添加模块,其具体用于:

检测各网格地图单元格中是否存在用户操作信息;

若存在,则在所述新的数据字符串的最低位后添加至少一个操作属性字节;

根据所述用户操作信息,从所述至少一个操作属性字节中选择对应的属性位,并配置对应的取值,得到新的二进制字符串。

可选的,所述地图数据存储格式为行-单元格列表和行-列-单元格表中的一种;所述存储模块包括:

提取单元,用于以所述新的二进制字符串中的最高位字节和第二高位字节分别作为行列号;

表格生成单元,用于基于所述行列号对所有的新的二进制字符串存储至行-单元格列表或行-列-单元格表中,得到数据存储表格;

存储单元,用于将所述数据存储表格发送至数据库的存储块中进行存储。

本发明第三方面提供了一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面提供的网格类数据的存储方法中的各个步骤。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的网格类数据的存储方法中的各个步骤。

通过对上述提供的技术方案的实施,实现如下有益效果:

本发明实施例,通过配置数据库的地图数据存储格式以及数据拼接规则,采集到客户端的当前游戏的地图数据后,识别地图数据的属性和取值范围,基于属性和取值范围对地图数据进行转换,得到数据字符串,对数据字符串中的各位的取值按照数据拼接规则进行拼接后得到新的数据字符串,然后将新的数据字符串转换为十进制数据,得到地图数据的值,并按照地图数据在数据库中的存储格式进行存储。通过这样的存储方式可以低成本的开发网格类游戏,节省地图开发成本,同时十进制的存储便于扩展和后续的数据读取,提高运行速度,提升了玩家的游戏体验。

附图说明

图1为本发明提供的网格类数据的存储方法的一个实施例示意图;

图2为本发明提供的网格类数据的存储方法的另一个实施例示意图;

图3为本发明提供的二进制字符串的结构示意图;

图4为本发明提供的数据存储表格的示意图;

图5为本发明提供的网格类数据的存储装置的一个实施例示意图;

图6为本发明提供的网格类数据的存储装置的另一个实施例示意图;

图7为本发明提供的电子设备的一个实施例示意图。

具体实施方式

针对于现有技术无法灵活的存储网格类游戏地图,定制成本高、自由度受限,继而影响玩家体验的问题,提出了一种通过十进制数据的方式进行存储的方案,该方案具体是通过配置一个地图数据的拼接规则以及数据转换的格式,在将获取到的地图数据按照格式进行转换存储,再按照拼接规则对转换后的地图数据重新拼接,然后对拼接后的数据转换为十进制字符串,最后按照数据库中的数据存储格式进行存储,这样的数据存储方式可以降低网格类游戏的开发低成本、且高扩展性的地图支持,便于读取和解析,提升玩家体验。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1所示,本发明实施例中网格类数据的存储方法的第一个实施例包括:

101、采集客户端当前的地图数据,并识别地图数据的属性和取值范围,基于属性和取值范围对地图数据进行转换,得到数据字符串;

本实施例中,所述地图数据指的是网格类游戏的地图数据,其具体包括地图的环境数据、物件数据,甚至还包括用户在游戏的地图上的交互操作数据。这些数据具体可以通过设置在游戏终端(如客户端)上的传感器,或者设置在屏内监控器件、红外扫描器来采集,例如红外扫描器,通过红外扫描器扫描游戏终端上的显示屏上显示的游戏地图的物件信息和物件在地图中的坐标信息,从而形成地图数据。

进一步的,基于地图数据从游戏后台数据中提取对应的物件数据,根据物件数据识别出物件的所有属性,同时统计整个游戏地图或者显示屏当前显示的地图中与该物件的属性相同的物件的数量,基于数量计算出物件的取值范围,根据属性和取值范围将地图数据转换为符合数据拼接规则的数据形式,得到数据字符串,例如二进制的字符串,但是通过该转换得到二进制的字符串包括该物件的所有属性以及属性对应的取值,其中该取值是基于取值范围来确定的,例如游戏地图中存在多个相同的物件时,这会根据取值范围对每个物件进行编号,该编号按照二进制进行编号,如001、010、011、100、101、110、111等,其二进制的位数是基于取值范围来选定。

在实际应用中,该数据字符串的长度具体是包含了该物件的所有属性的总和,而每个属性都会有自己的取值范围,将所有属性的取值范围加起来就是数据字符串的长度。

102、按照预设的数据拼接规则对地图数据中的各个位进行拼接,得到新的数据字符串;

本实施例中,在进行拼接之前,还包括数据字符串中的各个位的取值进行识别,然后按照预设的数据拼接规则对各个位重新拼接,所述数据字符串中的每个属性都对应有一个属性字节,属性字节的位数根据属性的取值范围来确定,在识别数据字符串的各位的取值过程中,首先将数据字符串按照属性进行字节的划分,然后对划分后的每个字节的每个位进行识别,得到各位的值以及该字节的位数,根据该字节的位数对各属性进行排序,基于属性的排序将各字节进行重新拼接,得到新的数据字符串。

进一步的,在得到新的数据字符串之后,还包括对相同物件的新的数据字符串进行排序,该排序是根据新的数据字符串中的编号字节进行排序,得到当前游戏的所有物件的字符串集合。

进一步的,所述数据拼接规则包括属性字节的排序顺序和各属性字节的取值大小排序,所述按照所述数据拼接规则进行拼接,得到新的数据字符串包括:

根据所述属性字节的排序顺序对所有所述二进制字符串中的各属性字节的顺序进行调整,得到对应的新的二进制字符串;

根据所述属性字节的取值大小排序对所有所述新的二进制字符串进行调整,得到新的数据字符串。

103、将新的数据字符串进行十进制转换处理,得到地图数据的值;

该步骤中,这里新的数据字符串具体是二进制的字符串,根据二进制的计算方法将该二进制的字符串转换为十进制的数值,将该十进制的数值作为地图数据的值。

在实际应用中,一个地图数据可以包括多个物件的数据,而每个物件的数据都会对应生成一个二进制的字符串,同时也会对应转换为一个十进制的数值,这些物件的地图数据按照网格化,最后得到多个地图数据的值。

104、将地图数据的值按照预设的地图数据存储格式存储至数据库中。

该步骤中,该地图数据存储格式为数据表格,在该数据表格中的数据按照行列的方式进行存储,而行列分别代表着物件的不同大类以及小类,基于大类和小类对所有的地图数据的值(二进制的字符串)进行归类后,逐一发送至数据库中存储,具体的首先将每个二进制的字符串存储值数据表格中,然后再发送存储值数据库中。

在本实施例中,该步骤具体是通过以下步骤实现:

以所述地图数据的值中的最高位字节和第二高位字节分别作为行列号;

基于所述行列号对所有的地图数据的值存储至行-单元格列表或行-列-单元格表中,得到数据存储表格;

将所述数据存储表格发送至所述数据库的存储块中进行存储。

在本实施例中,对于上述的数据拼接规则和地图数据存储格式具体是预先配置得到,即是根据游戏的运行需求,在游戏后台的数据库中配置数据库的地图数据存储格式以及数据拼接规则;

在实际应用中,该数据库可以是客户端上的内存单元,可以是与客户端连接的云端数据服务器等等。地图数据存储格式包括行-单元格列表和行-列-单元格表中的一种,而数据拼接规则是地图数据转换为字符串时不同属性字段的拼接方式。

在实际应用中,该地图数据存储格式和数据拼接规则具体可根据不同数据库的存储要求和游戏地图的数据类型来自定义配置,例如游戏中的装备,则可以按照装备的坐标信息、装备的类型、装备的序号等字段进行定义。

通过对该实施例的实施中,通过地图数据的转换、拼接后,转换为十进制的地图数据的值,将地图数据的值按照预设的地图数据存储格式进行存储值数据库中,该存储方式可以为网格类游戏带来低成本、高扩展性的地图支持,加快游戏开发周期,提升玩家体验。

请参阅图2-4,本发明实施例中网格类数据的存储方法的第二个实施例包括:

201、配置数据库的地图数据存储格式以及数据拼接规则;

202、采集客户端当前的地图数据,并将地图数据进行网格化处理,得到多个网格地图单元格;

该步骤中,采集到地图数据为复合数据,至少包括物件和环境,优选的这里选择物件作为地图数据,其采集过程为:首先获取到客户端上显示的游戏地图中的所有信息,从所有信息中识别出物件的信息并进行标记,然后对标记的位置进行数据的采集,得到网格地图单元格,直到采集完所有的物件后,形成网格地图单元格的数据集合。

203、识别每个网格地图单元格的属性;

该步骤中,这里的属性包括物件的类型、物件的标号、物件的等级和物件的序号等,在实际应用中,该属性具体是通过解析地图数据中对应各物件的定义来识别。

204、根据属性识别所有网格地图单元格中相同属性的网格地图单元格的数量,并基于数量确定各属性下的网格地图单元格的取值范围;

该步骤中,基于从地图数据中解析到的属性对所有的物件进行归类,相同属性的网格地图单元格归为一类,然后统计每一类的网格地图单元格的总数量,从而计算出该属性的取值范围,如图4中所示,对于宝物有三种,分别是宝物A1、B1、C1,通过该数量确定宝物这个属性的取值范围是0~3。

205、根据取值范围确定各属性对应的网格地图单元格的二进制位数,并基于二进制位数对各网格地图单元格进行二进制转换,得到二进制字符串;

本实施例中,如宝物的取值范围是0~3,则说明其有需要两个的二进制数才能表达出不同类型的宝物,基于这个取值范围宝物这个属性进行二进制的转换,得到三个网格地图单元格上属性为宝物的二进制取值,其他属性依此相同的转换方式进行二进制的取值配置。

在本实施例中,基于所述二进制位数对各网格地图单元格进行二进制转换,得到二进制字符串的步骤实现具体为:

根据所述二进制位数定义空白二进制字符串,在实际应用中,这里的空白二进制字符串优选采用至少包括六个属性字节的结构定义;

根据所述取值范围和所述属性,对所述空白二进制字符串中的每个位配置对应的取值,得到与各网格地图单元格对应的二进制字符串。

在实际应用中,对于定义空白二进制字符串时,具体是按照相同属性的网格地图单元格进行定义,即是相同网格地图单元格的所有属性相同,例如宝物的属性包括内行号、内列号、元素子类型、元素类型、元素序号等,而每个属性都会配置对应的二进制位数,将所有属性的位数加起来得到宝物这个网格地图单元格的二进制总位数,基于二进制总位数定义空白二进制字符串。

进一步的,在得到空白二进制字符串之后,还包括对各属性在字符串中的位置进行调整,其调整的规则为根据取值范围排序属性,只需要一位就能识别的属性放最低位,然后按高位排位数少、低位排位数多的规则拼接属性,得到空白二进制字符串。

206、识别各二进制字符串中各属性字节的位数和取值;

207、将每个二进制字符串中位数等于1的属性字节放置整个字符串中的最低位,将位数大于1的属性字节按照高位排位数少、低位排位数多的规则进行排序,得到对应的新的二进制字符串;

在本实施例中,在得到新的二进制字符串之后,还包括增加操作信息,由于游戏是用户实时体验和操作的,对于该操作需要在地图中显示体现,这时对于游戏数据的存储就需要增加操作信息的存储,而操作信息只需要通过一位二进制数来体现即可。

可选的,检测各网格地图单元格中是否存在用户操作信息;

若存在,则在所述新的数据字符串的最低位后添加至少一个操作属性字节;

根据所述用户操作信息,从所述至少一个操作属性字节中选择对应的属性位,并配置对应的取值,得到新的二进制字符串。

对于上述新的二进制字符串的生成,下面以图4中的宝物为例进行说明,宝物的属性包括内行号、内列号、元素子类型、元素类型、元素序号和是否点开,通过上述的识别得到内行号、内列号和元素子类型三个属性需要两位二进制数、元素类型属性需要四位二进制数、元素序号属性需要三位二进制数、是否点开属性需要一位二进制数,根据一位就能识别的属性放最低位、大于一位的属性按高位排位数少、低位排位数多的规则对上述的六种属性进行排序,最终得到如图3所示的格式的字符串,然后在图3所示的格式的字符串,依次配置对应的取值,得到新的二进制字符串,即是每个网格地图单元格的字符串。

208、将新的二进制字符串转换为十进制的数值,得到十进制字符串;

209、以十进制字符串对应的二进制字符串中的最高位字节和第二高位字节分别作为行列号;

210、基于行列号对所有十进制字符串存储至行-单元格列表或行-列-单元格表中,得到数据存储表格;

本实施例中,在将各个十进制字符串存储值表格的过程中,还包括对网格地图单元格进行归类合并,如图4中的宝物,对于同一类型的宝物A1则存在三种子类型(即是金银铜),将类型为宝物A1的金银铜三种合并在表格中的一行中存储,同时将对应的二进制字符串和十进制字符串存储在表格中,这样的归类存储,使得后续游戏数据的读取时,可以选择二进制读取,也可以选择十进制读取,终端根据显示的需求进行自动选择,大大提高了读取数据的解析速度,也提高了游戏的运行速度。

211、将数据存储表格发送至数据库的存储块中进行存储。

在该步骤之后,还包括:若检测到客户端上的地图数据发生变化时,则获取新的地图数据,按照上述的步骤对新的数据进行转换,得到新的二进制字符串和十进制字符串,并通过以属性为索引查询数据库中属性全部相同的记录进行更新即可,从而实现游戏数据的循环更新,大大降低了数据量的叠加暂用资源,影响游戏的运行的问题,

本发明实施例中,通过识别和定义网格地图单元格的属性及其取值范围,确定与范围匹配的二进制位数;根据取值范围排序属性,只需要一位就能识别的属性放最低位,然后按高位排位数少、低位排位数多的规则拼接属性,得到单元格的定义;把每个单元格的属性,根据定义转换为二进制,按规则拼接,得到一长串的二进制;把二进制转为十进制,得到单元格的值;按“行-单元格值列表”的格式存储到数据库里;采用本发明的方法,可以低成本的开发网格类游戏,节省地图开发成本;可以灵活定制地图属性和玩法,提升玩家体验;可以简化地图信息,节省地图存储成本。

上面对本发明实施例中网格类数据的存储方法进行了描述,下面对本发明实施例中网格类数据的存储装置进行描述,请参阅图5,本发明实施例中网格类数据的存储装置一个实施例包括:

识别模块501,用于采集客户端当前的地图数据,并识别所述地图数据的属性和取值范围,基于所述属性和取值范围对所述地图数据进行转换,得到数据字符串;

拼接模块502,用于按照预设的数据拼接规则对所述地图数据中的各个位进行拼接,得到新的数据字符串;

转换模块503,用于将所述新的数据字符串进行十进制转换处理,得到地图数据的值;

存储模块504,用于将所述地图数据的值按照预设的地图数据存储格式存储至数据库中。

本实施例提供的装置,通过配置数据库的地图数据存储格式以及数据拼接规则,采集到客户端的当前游戏的地图数据后,识别地图数据的属性和取值范围,基于属性和取值范围对地图数据进行转换,得到数据字符串,对数据字符串中的各位的取值按照数据拼接规则进行拼接后得到新的数据字符串,然后将新的数据字符串转换为十进制数据,得到地图数据的值,并按照地图数据在数据库中的存储格式进行存储。通过这样的存储方式可以低成本的开发网格类游戏,节省地图开发成本,同时十进制的存储便于扩展和后续的数据读取,提高运行速度,提升了玩家的游戏体验。

进一步地,请参阅图6,图6为网格类数据的存储装置各个模块的细化示意图.

识别模块501,用于采集客户端当前的地图数据,并识别所述地图数据的属性和取值范围,基于所述属性和取值范围对所述地图数据进行转换,得到数据字符串;

拼接模块502,用于按照预设的数据拼接规则对所述地图数据中的各个位进行拼接,得到新的数据字符串;

转换模块503,用于将所述新的数据字符串进行十进制转换处理,得到地图数据的值;

存储模块504,用于将所述地图数据的值按照预设的地图数据存储格式存储至数据库中。

在本实施例中,所述识别模块501包括:

网格化单元5011,用于采集客户端当前的地图数据,并将所述地图数据进行网格化处理,得到多个网格地图单元格;

识别单元5012,用于识别每个网格地图单元格的属性;根据所述属性识别所有网格地图单元格中相同属性的网格地图单元格的数量;

确定单元5013,用于基于所述数量确定各属性下的网格地图单元格的取值范围;以及根据所述取值范围确定各属性对应的网格地图单元格的二进制位数;

二进制转换单元5014,用于基于所述二进制位数对各网格地图单元格进行二进制转换,得到二进制字符串。

在本实施例中,所述二进制转换单元5014具体用于:

根据所述二进制位数定义空白二进制字符串;

根据所述取值范围和所述属性,对所述空白二进制字符串中的每个位配置对应的取值,得到与各网格地图单元格对应的二进制字符串。

在本实施例中,所述数据拼接规则包括属性字节的排序顺序和各属性字节的取值大小排序,所述拼接模块502包括:

第一调整单元5021,用于根据所述属性字节的排序顺序对所有所述二进制字符串中的各属性字节的顺序进行调整,得到对应的新的二进制字符串;

第二调整单元5022,用于根据所述属性字节的取值大小排序对所有所述新的二进制字符串进行调整,得到新的数据字符串。

在本实施例中,所述第一调整单元5021具体用于:

识别各所述二进制字符串中各属性字节的位数;

将每个二进制字符串中所述位数等于1的属性字节放置整个字符串中的最低位,将所述位数大于1的属性字节按照高位排位数少、低位排位数多的规则进行排序,得到对应的新的二进制字符串。

在本实施例中,所述网格类数据的存储装置还包括添加模块505,其具体用于:

检测各网格地图单元格中是否存在用户操作信息;

若存在,则在所述新的数据字符串的最低位后添加至少一个操作属性字节;

根据所述用户操作信息,从所述至少一个操作属性字节中选择对应的属性位,并配置对应的取值,得到新的二进制字符串。

在本实施例中,所述地图数据存储格式为行-单元格列表和行-列-单元格表中的一种;所述存储模块504包括:

提取单元5041,用于以所述新的二进制字符串中的最高位字节和第二高位字节分别作为行列号;

表格生成单元5042,用于基于所述行列号对所有的新的二进制字符串存储至行-单元格列表或行-列-单元格表中,得到数据存储表格;

存储单元5043,用于将所述数据存储表格发送至所述数据库的存储块中进行存储。

本发明实施例中,通过地图数据的转换、拼接后,转换为十进制的地图数据的值,将地图数据的值按照地图数据存储格式进行存储值数据库中,该存储方式可以为网格类游戏带来低成本、高扩展性的地图支持,加快游戏开发周期,提升玩家体验。

上面图5和图6从模块化功能实体的角度对本发明实施例中的网格类数据的存储装置进行详细描述,下面从硬件处理的角度对本发明实施例中电子设备进行详细描述。

图7是本发明实施例提供了一种电子设备的结构示意图,该电子设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,CPU)710(例如,一个或一个以上处理器)和存储器720,一个或一个以上存储应用程序733或数据732的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器720和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对电子设备700中的一系列指令操作。更进一步地,处理器710可以设置为与存储介质730通信,在电子设备700上执行存储介质730中的一系列指令操作。在实际应用中,该应用程序733可以被分割成识别模块501、拼接模块502、转换模块503、存储模块504和添加模块505(虚拟装置中的模块)的功能。

电子设备700还可以包括一个或一个以上电源740,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口760,和/或,一个或一个以上操作系统731,例如:Windows Serve,MacOSX,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图7示出的电子设备结构还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令或计算机程序,当所述指令或计算机程序被运行时,使得计算机执行上述实施例提供的网格类数据的存储方法的各个步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(randomaccessmemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:终端操作方法、装置、电子设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类