【Python小游戏】智商爆棚,推荐一款益智类亲子娱乐首选—某程序员老爸:成语编成填空“游戏”,贪玩女儿1天牢记500词(厉害了我的Python)
前言
成语填空想必大家都是十分熟悉的了,特别是有在上小学的家长肯定都有十分深刻的印象。
在我们的认知里看图猜成语不就是一些小儿科的东西吗?
当然了你也别小看了成语调控小游戏,有的时候知识储备不够,你还真的不一定猜得出来是什
么?更重要的是有的时候给你这个提示你都看不懂,那你就拿他没办法。
所有文章完整的素材+源码都在👇👇
粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。
——小学语文必备
成语是小学语文非常重要的一个知识点,几乎是逢考必有,作为基础,自然是需要长期的积
累,并且需要积累到一定的数量,有了一定的量才能够产生质变,对于语文成绩才能够有一个
分数上的提高。
词汇是语文不变的重点,尤其是成语,在作文中适量运用,可以为作文增加不少情感色彩,丰
富情感表达,使内容变得更有味道,更具味道,内涵。
但是对于成语的记忆却是很多同学语文学习中的痛难点,死记硬背效果太差,忙活一天就背了
几个词,效率实在是低下。
然而小学正是养成一个良好学习习惯的阶段,所以要找到适合自己的学习方法,这款游戏不仅
可以锻炼小孩子的思维能力,更能增加家人之间的娱乐呢!家里有小孩子的可以一起玩儿哦!

正文
一、环境准备
1)运行环境
本文用到的环境如下——
Python3、Pycharm社区版,第三方模块:pygame等部分自带的库只 要安装完 Python就可
以直接使用了,需要安装 的库的话看教程下🎐
一般安装:pip install +模块名镜像源安装:pip install -i https://pypi.douban.com/simple/+模块名
(之前有说过安装报错的几种方式跟解决方法,不会安装的可以去看下,还有很多国内镜像源 也有文章的)
2)素材图片等

二、代码展示
主程序:
import sys
import random
import pygame
from pygame.locals import *
reload(sys)
sys.setdefaultencoding('utf-8')f = open('words.txt')
all_idiom = f.readlines()
f.close()word_dic = {}
for idiom in all_idiom:idiom = idiom.strip().decode('utf-8')for word in idiom:if word not in word_dic: word_dic[word] = [idiom]else:word_dic[word].append(idiom)word_arr = list(word_dic.keys())header_height = 30
main_space = 20block_size = 36
block_num=12
bspace = 2
space = 20
width = block_size * block_num + main_space * 2
height = header_height + block_size * block_num + main_space * 2 + (block_size+space) * 3pygame.init()
screen = pygame.display.set_mode((width,height))
screencaption = pygame.display.set_caption(u'成语填空')font = pygame.font.Font(u'syht.otf', int(block_size*0.8))dray_gray = 50,50,50
white = 255,255,255
#textImage = font.render(u'你好', True, white)class IdiomInfo(object):def __init__(self,idiom):self.idiom = idiomself.dire = 0self.word_arr = []class WordInfo(object):def __init__(self, word, i, j):self.i = iself.j = jself.word = wordself.is_lock = Trueself.state = -1self.hide_index = -1self.op_hide_index = -1class Matrix(object):rows = 0cols = 0data = []def __init__(self, rows, cols, data=None):self.rows = rowsself.cols = colsif data is None: data = [None for i in range(rows * cols)]self.data = datadef set_val(self, x, y, val):self.data[y * self.cols + x] = valdef get_val(self, x, y):return self.data[y * self.cols + x]def exist_val_four_around(self, x, y, ignore_set):move_arr = [(-1,0),(1,0),(0,-1),(0,1)]for dx,dy in move_arr:tx = x + dxty = y + dyif (tx,ty) in ignore_set: continueif tx < 0 or tx >= self.cols or ty <0 or ty >= self.rows: continueif self.data[ty * self.cols + tx]: return Truereturn Falsedef check_new_idiom(matrix, new_idiom, new_dire, word_info):windex = new_idiom.index(word_info.word)cx,cy = word_info.i, word_info.jignore_set = set([(cx,cy)])new_idiom_word_arr=[]for i in range(-windex,-windex+len(new_idiom)): if i==0: new_idiom_word_arr.append(word_info)else:tx = cx+i if new_dire == 0 else cxif tx < 0 or tx >= block_num: return None,Nonety = cy if new_dire == 0 else cy+iif ty < 0 or ty >= block_num: return None,Noneif matrix.exist_val_four_around(tx, ty, ignore_set): return None,Noneold_word_info = matrix.get_val(tx, ty)if old_word_info:return None,Nonenew_word_info = WordInfo(new_idiom[i+windex], tx, ty)new_idiom_word_arr.append(new_word_info)return new_idiom_word_arr,windexdef add_idiom_to_matrix(matrix, word_dic, idiom_dic, idiom_num):if idiom_num == 0: return 0for idiom,idiom_info in idiom_dic.items():dire = idiom_info.direnew_dire = 1 - direfor word_info in idiom_info.word_arr:word = word_info.wordidiom_list = word_dic[word]for new_idiom in idiom_list:if new_idiom in idiom_dic: continuenew_idiom_word_arr,windex = check_new_idiom(matrix, new_idiom, new_dire, word_info)if new_idiom_word_arr:new_idiom_info = IdiomInfo(new_idiom)new_idiom_info.dire = new_direfor new_index in range(len(new_idiom_word_arr)):new_word_info = new_idiom_word_arr[new_index]if new_index == windex:new_idiom_info.word_arr.append(word_info)else:matrix.set_val(new_word_info.i, new_word_info.j , new_word_info)new_idiom_info.word_arr.append(new_word_info)idiom_dic[new_idiom] = new_idiom_inforeturn len(new_idiom) -1 + add_idiom_to_matrix(matrix, word_dic, idiom_dic, idiom_num - 1)return 0def get_idiom_matrix(word_arr, word_dic, idiom_num):cx = 4cy = 4matrix = Matrix(block_num, block_num)n = random.randint(0,len(word_arr)-1)word = word_arr[n]idiom = word_dic[word][0]idiom_dic={}idiom_dic[idiom] = IdiomInfo(idiom)wn = len(idiom)last_i = -100for i in range(len(idiom)):word_info = WordInfo(idiom[i],cx-1+i,cy)matrix.set_val(cx-1+i,cy,word_info)idiom_dic[idiom].word_arr.append(word_info)wn += add_idiom_to_matrix(matrix, word_dic, idiom_dic, idiom_num-1)return matrix, idiom_dic, wnbg_image = pygame.image.load('bg.jpeg')
bg_image = pygame.transform.scale(bg_image,(width, height))bg2_image = pygame.image.load('bg2.jpeg')
bg2_image = pygame.transform.scale(bg2_image,(block_size*block_num,block_size*block_num))block_bg_image = pygame.image.load('tzg.jpg')
block_bg_image = pygame.transform.scale(block_bg_image,(block_size-bspace*2,block_size-bspace*2))def get_hide_arr(matrix, idiom_dic, all_word_num, percent):hide_arr = []for k,v in idiom_dic.items():n = random.randint(0, len(v.word_arr)-1)word_info = v.word_arr[n]if word_info.hide_index != -1:continueword = word_info.wordinfo = matrix.get_val(word_info.i,word_info.j)info.word = ''info.hide_index = len(hide_arr)info.is_lock = Falsehide_arr.append([word_info.i,word_info.j,word,None])tmp_arr = []for i in range(block_num):for j in range(block_num):info = matrix.get_val(i,j)if info and info.word:tmp_arr.append((i,j,info.word))while len(hide_arr) < all_word_num*percent:n = random.randint(0,len(tmp_arr)-1)i,j,word = tmp_arr.pop(n)info = matrix.get_val(i,j)info.word = ''info.hide_index = len(hide_arr)info.is_lock = Falsehide_arr.append([i,j,word,None])return hide_arr def get_next_select(matrix, x, y):arr = []for i in range(block_num):for j in range(block_num):info = matrix.get_val(i, j)if info is not None and len(info.word) == 0:dist = (i-x)*(i-x)+(j-y)*(j-y)if i<x: dist+=0.2if j<y: dist+=0.4arr.append((i,j,dist))if len(arr) == 0:return Nonearr.sort(cmp=lambda x,y:cmp(x[-1],y[-1]))return (arr[0][0],arr[0][1])def check_idiom():for idiom, idiom_info in idiom_dic.items():tmp_idiom_str = ''word_arr = idiom_info.word_arrfor word_info in word_arr:word = word_info.wordif len(word) > 0:tmp_idiom_str+=wordif len(tmp_idiom_str) == len(idiom):state = 1 if tmp_idiom_str == idiom else 2else:state = 0for word_info in word_arr:if word_info.state != 1: word_info.state = statefor idiom, idiom_info in idiom_dic.items():word_arr = idiom_info.word_arrfor word_info in word_arr:if word_info.state != 1:return Falsereturn Truestage = 1def init(new_stage):idiom_num = (new_stage/5)+3if new_stage>100:percent = 0.7else:percent = 0.2+(new_stage*1.0/100)*(0.7-0.2)matrix,idiom_dic,all_word_num = get_idiom_matrix(word_arr, word_dic, idiom_num)hide_arr = get_hide_arr(matrix, idiom_dic, all_word_num, percent)select_rect = hide_arr[0][0],hide_arr[0][1]stage_textImage = pygame.font.Font(u'syht.otf', 30).render(u'第%s关'%new_stage, True, dray_gray)return matrix,idiom_dic,all_word_num,hide_arr,select_rect,stage_textImagematrix,idiom_dic,all_word_num,hide_arr,select_rect,stage_textImage = init(stage)stage_font_width, stage_font_height = stage_textImage.get_size()
stage_x = (width - stage_font_width)/2
stage_y = (header_height - stage_font_height)/2+main_space/2
while True:for event in pygame.event.get():if event.type == pygame.QUIT:pygame.quit()exit()if event.type == MOUSEBUTTONDOWN:pressed_array = pygame.mouse.get_pressed()if pressed_array[0]:x, y = pygame.mouse.get_pos()for i in range(block_num):for j in range(block_num):bx = main_space + block_size*i+bspaceby = header_height + main_space + block_size*j+bspaceif x >= bx and x <= bx+block_size-bspace*2 and y >= by and y<= by+block_size-bspace*2:info = matrix.get_val(i, j)if info and info.state != 1 and info.hide_index >= 0:if info.op_hide_index>=0:hide_arr[info.op_hide_index][-1] = Noneinfo.word = ''info.op_hide_index=-1check_idiom()select_rect = i,jbreaksx = main_spacesy = header_height + main_space+ block_size*block_num +spacen = 0for hi in range(len(hide_arr)):tmp_x = sx + (n%block_num)*block_sizetmp_y = sy + (n/block_num)*block_sizeif hide_arr[hi][-1] is None and x >= tmp_x and x <= tmp_x+block_size-bspace*2 and y >= tmp_y and y<= tmp_y+block_size-bspace*2:info = matrix.get_val(select_rect[0],select_rect[1])info.word = hide_arr[hi][2]info.op_hide_index = hiinfo.state = 0hide_arr[hi][-1] = select_rectnew_select_rect = get_next_select(matrix, select_rect[0],select_rect[1])select_rect = new_select_rectflag = check_idiom()if flag:stage += 1matrix,idiom_dic,all_word_num,hide_arr,select_rect,stage_textImage = init(stage)breakn += 1screen.blit(bg_image, (0,0))screen.blit(stage_textImage, (stage_x,stage_y))panel = screen.subsurface((main_space,header_height+main_space,block_size*block_num,block_size*block_num))panel.blit(bg2_image, (0,0))for i in range(block_num):for j in range(block_num):info = matrix.get_val(i,j)if info is not None:bx = block_size*i+bspaceby = block_size*j+bspacepanel.blit(block_bg_image, (bx,by))if info.state == 1:textImage = font.render(info.word, True, (30,144,30))elif info.state == 2:textImage = font.render(info.word, True, (255,0,0))elif info.is_lock == 1:textImage = font.render(info.word, True, (150,150,150))else:textImage = font.render(info.word, True, dray_gray)tw, th = textImage.get_size()dx=(block_size-bspace*2-tw)/2dy=(block_size-bspace*2-th)/2panel.blit(textImage, (bx+dx,by+dy))if (i,j) == select_rect:pygame.draw.rect(panel,(255,0,0),(bx,by,block_size-bspace*2,block_size-bspace*2),2)sx = main_spacesy = header_height + main_space+ block_size*block_num +spacen = 0for i,j,word,op in hide_arr:screen.blit(block_bg_image, (sx + (n%block_num)*block_size,sy + (n/block_num)*block_size))if op is None:textImage = font.render(word, True, dray_gray)tw, th = textImage.get_size()dx=(block_size-bspace*2-tw)/2dy=(block_size-bspace*2-th)/2screen.blit(textImage, (dx+sx+ (n%block_num)*block_size,dy+sy+ (n/block_num)*block_size))n+=1pygame.display.update()
三、效果展示
1)成语填空第2关

2)成语填空第56关

总结
填词、娱乐、做游戏……原来成语还能这么记哦~
这样娱乐性质的学习是不是更加能激起孩子的学习动力呀,看来这款小游戏还是做的挺值得的
哈,有想要代码的可以滴滴我哈!
✨完整的素材源码等:可以滴滴我吖!或者点击文末hao自取免费拿的哈~
🔨推荐往期文章——
项目4.4 【Pygame实战】这两款脑洞大开的文字剧情版游戏,99% 的人打了五星好评-《巨龙之洞》-《太空矿工》
项目4.5 【Pygamre实战】2023人气超高的模拟经营类游戏:“梦想小镇“代码版火爆全场,免费体验分享下载哦~
项目1.5 Pygame小游戏:植物大战僵尸游戏真的有“毒”?戒不掉啊~
项目1.6 【Pygame小游戏】斗地主我见多了,BUT 这款开源欢乐斗地主,最让人服气~
项目0.5 重温经典:Python版飞机大战源码,装逼神器。玩游戏就玩自己开发的~
项目0.6 【Python实战项目】做一个 刮刮乐 案例,一不小心....着实惊艳到我了。
🎁文章汇总——
Python文章合集 | (入门到实战、游戏、Turtle、案例等)
(文章汇总还有更多你案例等你来学习啦~源码找我即可免费!)

相关文章:
【Python小游戏】智商爆棚,推荐一款益智类亲子娱乐首选—某程序员老爸:成语编成填空“游戏”,贪玩女儿1天牢记500词(厉害了我的Python)
前言 成语填空想必大家都是十分熟悉的了,特别是有在上小学的家长肯定都有十分深刻的印象。 在我们的认知里看图猜成语不就是一些小儿科的东西吗? 当然了你也别小看了成语调控小游戏,有的时候知识储备不够,你还真的不一定猜得出…...
使用web3连接Georli测试网络
文章目录1.使用geth方式在终端2.写成脚本2.1 通过metamask (现成的太复杂,搞不太来)2.2 通过自己的接口3.通过truffle方式连接 (不成功)目前的工作情况是,已在remix写好执行合约并部署在Georli测试网络中&a…...
Python uWSGI 的安装配置
以 Ubuntu/Debian 为例,先安装依赖包: apt-get install build-essential python-dev Python 安装 uWSGI 1、通过 pip 命令: pip install uwsgi 2、下载安装脚本: curl http://uwsgi.it/install | bash -s default /tmp/uwsgi 将…...
033.Solidity入门——20函数的可视范围
修饰符可见性描述public在合约内和合约外都可以被访问,即合约内外部都可以调用该函数。这种类型的函数可以被合约内和合约外的任何地址调用。private只有在当前合约内可以被访问,即只有合约内可以调用该函数。这种类型的函数只能在合约内部被调用。exter…...
智能家居项目(三)之框架设计及框架代码文件工程建立
目录 一、智能家居项目框架设计草图 二、框架代码文件工程建立 三、添加声音识别模块的串口读取功能 一、智能家居项目框架设计草图 代码思路讲解: 1、一个指令工厂,一个控制工厂,实际上就是通过链表链起来的数据。具体怎么链接起来&…...
全网最全的Ansible中常用模块讲解
目录 前言 一、ansible实现管理的方式 二、Ad-Hoc执行方式中如何获得帮助 三、ansible命令运行方式及常用参数 四、ansible的基本颜色代表信 五、ansible中的常用模块 1、command 2、shell 3、script 4、copy 5、fetch 6、file 7、 unarchive 8、archive 9、h…...
linux程序分析工具
嵌入式调试工具1. nm2. addr2line3. readelf3.1 ELF 文件分类3.2 ELF文件组成3.3使用1. nm nm源于name,是linux下一个文本分析工具,可以罗列指定文件中的符号(函数名、变量,以及符号类型)。 nm命令参数如下: 用法:nm …...
Python3,2分钟掌握Doscoart库,你也能成为艺术家。
2行代码绘制水彩画1、引言2、 代码实战2.1 模块介绍2.2 模块安装2.3 代码示例2.3.1 创建默认图片2.3.2 设置参数创建图片2.3.3 查看设置参数2.3.4 查看配置2.3.5 保存配置2.3.6 加载配置2.3.7 导出配置文件2.3.7 生成Python代码2.3.8 调用文档3、总结1、引言 小屌丝࿱…...
1225057-68-0,Alkyne PEG4 TAMRA-5,四甲基罗丹明-四聚乙二醇-炔基TAMRA红色荧光染料连接剂
中英文别名:CAS号:1225057-68-0 | 英文名:5-TAMRA-PEG4-Alkyne |中文名:5-四甲基罗丹明-四聚乙二醇-炔基物理参数:CASNumber:1225057-68-0Molecular formula:C36H41N3O8Molecular weight&#x…...
Ae:解释素材
所谓解释素材 Interpret Footage,就是通过修改素材的某些属性(像素长宽比、帧速率、颜色配置文件及 Alpha 通道类型等),让它能更好地参与到合成中去。Ae菜单:文件/解释素材快捷键:Ctrl Alt G在项目面板里…...
无文件攻击
无文件攻击是一种高级持续性威胁(APT)的攻击方式,它不会在目标系统的磁盘上留下可执行文件,而是利用系统内置的工具或脚本执行恶意代码,从而绕过传统的安全防护措施。无文件攻击的最大特点就是恶意代码直接在内存中运行…...
JS高级——数据类型
数据类型 基本类型 String: 任意字符串Number: 任意的数字boolean: true/falseundefined: undefinednull: null 对象类型 Object: 任意对象Function 一种特别的对象(可以执行)Array: 一种特别的对象 判断 typeof //不能区分数组与对象、null与obje…...
场景案例│数字员工在银行业的典型应用场景,效率及准确率“双高”
伴随数字经济的高速发展,企业数字化转型步伐不断加快,银行内部信息系统越趋复杂,业务处理的自动化及智能化需求日益旺盛。调查显示,数字员工为60~75%的银行流程带来约30~40%的效能提升,能够全面帮助银行在各场景流程中…...
2023美国大学生数学建模竞赛选题建议
总的来说,这次算是美赛环境题元年,以往没有这么多环境题目,大部分题目都是开放度相当高的题目。C君认为的难度:D>C>AE>BF,开放度:DF>ABE>C。A题 遭受旱灾的植物群落这次A题为环境类题目&…...
整合K8s+SpringBoot+gRpc
本文使用K8s当做服务注册与发现、配置管理,使用gRpc用做服务间的远程通讯一、先准备K8s我在本地有个K8s单机二、准备service-providerpom<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.…...
ROS 教程:使用 Moveit C++ 接口进行拾取和放置任务
文章目录 简介Moveit C++ 接口Gazebo 取放世界初始化界面拾取流程1.移动到原位2.将TCP放在蓝框上方3.打开夹具4. 将 TCP 移近物体5.关闭夹具6. 将 TCP 移至板上方7./8. 降低 TCP 并打开夹具使用 Moveit 避免碰撞将碰撞对象添加到 Moveit 规划组结论参考简介 本教程展示了如何使…...
seo细分和切入点
seo细分和切入点本文重点介绍做SEO网站细分和切入点的方法:当我们的行业和关键词竞争性比较大的时候,我们可以考虑对行业或者产品做细分,从而找到切入点。可以按照以下三个方面进行细分。1、按城市细分例如:A:餐饮培训…...
PyQt5数据库开发1 4.3 QSqlTableModel 之 Qt项目的创建
目录 一、新建Qt项目 1. 编辑资源文件 2. 添加前缀 3. 新建放资源文件的目录 4. 添加图标文件 二、Action 1. 新建打开数据库Action 2. 添加其他Action 三、工具栏 1. 添加工具栏 2. 拖动actOpenDB到工具栏 3. 设置工具栏属性 4. 添加分隔符 5. 添加其他工具 6.…...
【大数据】第三章:详解HDFS(送尚硅谷笔记和源码)
什么是HDFS HDFS是(Hadoop Distributed File System)的缩写,也即Hadoop分布式文件系统。它通过目录树定位在分布式场景下 在不同服务器主机上的文件。它适用于一次写入,多次读出的场景。 HDFS的优缺点 优点 1,高容…...
27岁想转行IT,还来得及吗?
来不来得及不还是看你自身的意愿和条件,这个问题要问你自己吧! 每个人的能力、看法都不同。面对类似的问题,很多人会把侧重点放在IT上,或者27岁上面。那么我们试着换一个方式来问呢:什么时候适合转行,有哪些…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...
