收藏 分享(赏)

综合课程设计文档.doc

上传人:dreamzhangning 文档编号:2533395 上传时间:2018-09-21 格式:DOC 页数:29 大小:1.35MB
下载 相关 举报
综合课程设计文档.doc_第1页
第1页 / 共29页
综合课程设计文档.doc_第2页
第2页 / 共29页
综合课程设计文档.doc_第3页
第3页 / 共29页
综合课程设计文档.doc_第4页
第4页 / 共29页
综合课程设计文档.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、 编号 综合课程设计论文题目 连连看游戏 二级学院 计算机科学与工程学院 专 业 计算机科学与技术 班 级 111030706 学生姓名 周莉娟 学号 11103070633指导教师 张金荣 职称 时 间 2013.12.23-2014.1.10 重庆理工大学综合课程设计论文 连连看游戏 I目 录摘要 II1绪论 12需求分析 .22.1 方案设计 .22.2 功能描述 .22.3 功能需求 .22.4 功能模块及思路 32.4.1 绘图 .32.4.2 获取图片位置的思路 .32.4.3 分类判断法 .32.4.4 系统需求分析总结 .53系统设计 .63.1 总体设计 .63.1.1 系统

2、基本功能 .63.1.2 系统流程 .73.1.3 主要功能模块 .113.2 详细设计 .123.2.1 规则详解 .133.2.2 部分程序代码解析 .144系统测试 194.1 程序运行测试 194.2 测试计划及分析 215结 语 .235.1 本文工作总结 235.2 课题展望 .235.3 心得体会 .24致 谢 .26参 考 文 献 .27重庆理工大学综合课程设计论文 连连看游戏 II摘要近年来,java 作为一种新的编程语言,以其可移植性和平台无关性等优点,得到了广泛得应用,特别是 Java 与万维网的完美结合,使其成为网络编程好嵌入式编程领域的首选语言。本设计报告阐述了连连看

3、游戏的分析与设计的全过程,并在论文中相应的位置插入了图片、流程图以及一些具有技巧性的程序代码,更加清晰的描述了该游戏是如何实现的。连连看游戏编写简单容易上手等特点,非常适合人们完成工作的时候适当的娱乐要求。这些小游戏大都以益智和娱乐为目的,不仅给紧张工作的人们以放松,还可以让人们的大脑得到开发。连连看游戏采用了 Java 语言开发,以 eclips 为开发平台。游戏主界面是基于 SWING 的开发,使得游戏界面简单清晰,并调用了其中的一些函数,完成了事件的触发功能。希望通过这次开发设计出的连连看游戏,给大家的生活带来一些乐趣。游戏通过定义二维数组,根据一定的算法实现规定的路径判断。关键词:连连

4、看游戏 算法 java 路径 重庆理工大学综合课程设计论文 连连看游戏 11绪论游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以作为相关联处理。 “连连看”的发展经历了从桌面游戏、在线游戏、不同版本连连看游戏社交游戏三个过程。游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看” 。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于 2004 年,取得了国家版权局的计算机软件著作权登记证书。随着 Flash 应用的流行

5、,网上出现了多种在线 Flash 版本“连连看” 。如“水晶连连看” 、 “果蔬连连看”等,流行的“水晶连连看”以其华丽界面吸引了一大批女性玩家。2008 年,随着社交网络的普及和开放平台的兴起, “连连看”被引入了社交网络。 “连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者 Jonevey 在 Manyou 开放平台上推出的“宠物连连看”最为流行。现在网络小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外,很多游戏不乏经典。连连看游戏就是典型。不管走到哪个网页游戏网站,连连看游戏总是排在受玩家欢迎排名的前 5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女

6、老少、工薪白领、是一款适合大众的经典网络休闲小游戏。本次课程设计正好以连连看受欢迎的程度来锻炼同学们所学知识,以便把所学的知识应用到现实生活中。这是一次考验,也是一次锻炼,让同学们真真切切的感受到所学的知识并不是与现实生活脱节,反而可以用所学知识解决现实生活中的问题。因此,本次课程设计的目的正在于此,锻炼同学们的编程能力与解决问题的能力。重庆理工大学综合课程设计论文 连连看游戏 22需求分析2.1方案设计在概要设计阶段,主要是本方案:所有的图片都是按约定好的种类数和在同一区域的重复次数随机出现,并且每张图片的出现次数为偶数,每一关的图片数量是不同的,这样就出现了游戏的等级。由于出现的图片种类和

7、重复次数都是由软件约定,这样缺乏玩家自主选择的空间。本方案还提供了网络对战平台,只要在联网的前提下,输入对方的 IP 和端口号,就可以与对方建立连接,玩网络版的连连看。2.2功能描述本设计采用单机版本和网络版本,没有用到菜单选项,只用到面板中添加鼠标点击的 Click 事件和 JButton 按钮添加相应的事件。游戏规则是模仿普通的连连看游戏,主要是鼠标两次点击的图片能否消去的问题。当前,前提是点击两张相同的图片,若点击的是用一张图片或者两张不同的图片,则不能消去。若两张图片用三根以内的直线连在一起,就可以消去,否则,不予处理。网络版的连连看必须有网络支持,即必须连入互联网,否则,无法建立通信

8、。在联网的情况下,输入对方服务器信息,即可进行游戏。2.3功能需求1.设计游戏界面2.游戏基本功能3.在游戏无解决方案时重排列重庆理工大学综合课程设计论文 连连看游戏 32.4功能模块及思路2.4.1 绘图这个问题其实比较简单,但在当初,我们花了相当长的时间,在面板上画了相应的几十张图片,还有同学弄了几十个 JButton 按钮添上相应的背景色,果然不过关的。老师说有简单的方法,让我们自己去试,结果,没弄出来。后来老师用了个两重循环,JPanel 用来画图。2.4.2 获取图片位置的思路本游戏采用二维数组,用 i、j 表示行列。程序开始时给数组中的各个元素赋初值为 0,即表示没有图片。然后数组

9、控制整个游戏区域,游戏区域外围为空白区域,即相关元素的值为 0.这样就可以保证游戏开始后,第二层显示的图片之间的相连路径处理没有阻碍了。2.4.3 分类判断法要判断图片 1 和图片 2 是否能通过一条有 n 个转角的路径相连,可以转化为判断能否找到图片 3,3 与 1 能直线相连,且 3 与 2 能用一条有 n-1 个转角的路径相连。若这样的图片 3 存在,那么 1 与 2 就可以通过一条有 n 个转角的路径相连。根据转角数不得超过 2 个的规则,我们分为转角数为 0、1、2 这三种情况讨论。(1)0 转角连通(直线连通) :两个图片的纵坐标或横坐标相等,且两者连线间没有其他图案阻隔。(2)一

10、个转角连通:其实相当于两个图片的横向与纵向的直线相交只有一个焦点。(3)两个转角连通:判断图片 1 与图片 2 能否经过两个转角的路径连通实质上可以转化为判断能否找到一个点 3,这个 3 能与 1 直线连接,且 3 与 2重庆理工大学综合课程设计论文 连连看游戏 4可以通过有 2 个转角的路径连通。若能找到这样一个 3 点,那么 1 与 2 的路径就可以连通。判断是否经过两个转角连通的算法需要做两个方向上的扫描:水平扫描和垂直扫描。水平判断:如下图所示,为了判断 A,B 能否通过 2 个转角连通,则从 A 开始在水平方向上向左右扫描,并判断经过的点能否与 B 点经过一个转角连通。显然 C 点能

11、与 B 点经过一个转角连通。故 A,B 能经过两个转角连通。图 2-1垂直判断: 如下图所示,为了判断 A,B 能否通过两个转角连通,则从 A 开始在垂直方向上上下扫描,并判断经过的点能否与 B 点经过 1 个转角连通。显然C 点能与 B 点经过 1 个转角连通,故 A,B 经过 2 个转角连通。图 2-22.4.4 系统需求分析总结通过对现行连连看系统的调查与分析,本系统的结构基本合理,系统功能重庆理工大学综合课程设计论文 连连看游戏 5基本能够达到 Windows 小游戏的要求。本系统的输入边界是用户进行鼠标事件操作,图片全部消除,游戏结束。本次课程设计的代码基本实现了连连看的基本要求,可

12、以选择难易程度,可以选择单机版或者网络版,有计时和得分、退出等功能。基本考虑周全了消除图片的每一种算法,即哪种情况可以消除,哪种情况不可以消除。3系统设计本次系统设计是对一个系统进行详细而具体的设计,本系统的设计主要分重庆理工大学综合课程设计论文 连连看游戏 6为总体设计和详细设计两个部分。总体设计是对整个系统结构化的设计,包括系统的大致框架和各个函数已经类的说明;详细设计是对各个类和函数进行定义和具体实施。3.1总体设计本课程设计采用的是单机版和网络版模式,当在一定时间内消除完全部的小方块游戏过关,当游戏进行到一定阶段死局了,则可点击重新排列按钮把剩余没消的图片随机重新排列。网络版的连连看可

13、以 把对手的游戏界面传到本机上,可以随时看到对方状态。3.1.1 系统基本功能由于基础尚浅,所以本次设计的 java 连连看游戏不能与专业的连连看游戏相提并论。但是连连看的一些基本功能是实现了的,逻辑设计方面也只有简单的“客户选择”、“游戏等级”、“计时”、“重新排列”、“得分”、“重新开始”等。客户选择:客户可以选择单机版或网络版的玩法;等级选择:每一种游戏都有难易程度,玩家可以选择相应的游戏等级;计时:玩家可以看到游戏进行时间;得分:玩家可以看到自己得到了多少分数;重新排列:当游戏进行到一定阶段成了死局,可以点击重新排列,游戏继续进行;重新开始:玩家游戏结束后可以重新开始再来一局。3.1.

14、2 系统流程系统流程是对系统进行大概分析后得出的系统各功能的流动情况以及各个操作之间的关系,上一步操作都是与下一步操作有着紧密的联系,即下一步操作都是建立在上一步的基础之上的。系统流程主要是对系统流程图的分析,系统流程图清晰的反映了系统的运行情况 和走向。重庆理工大学综合课程设计论文 连连看游戏 7流程图部分:开始客户选择模式单机版网络版游戏等级中级初级高级输入服务器信息图 3-1重庆理工大学综合课程设计论文 连连看游戏 8启动程序的大致流程开始接受用户点击两张图片是否相同两张图片是否可以相连程序中是否还有图片可以消除结束是是否否图 3-2主函数流程重庆理工大学综合课程设计论文 连连看游戏 9

15、是否为相同图片是否在同一位置是不能消去是否是否在一条横线否是否相邻是消去是是否在一条竖线否是否直线相连否消去是是否相邻是消去是是否直线相连消去否是当两图不在一条直线上 , 则以两图在X 、 Y 方向的延长线上去找两个点 , 使其可以练成直线否否消去 不能消去是否图 3-3消除算法流程重庆理工大学综合课程设计论文 连连看游戏 103.1.3 主要功能模块图 3-4代码用到的类客户端的主界面类 Class ClientGameClass ClientGamefor(int i=1;i newjps= new ArrayList();List newzb= new ArrayList();for(i

16、nt i=1;i50;i+)for(int j=1;j50;j+)if(jpsij!=null)newjps.add(jpsij);newzb.add(zbij);jps= new JPanel 5050;zb= new int 5050;for(int i=0;inewjps.size();i+)int zb1 = testzb(newzb.get(i),r);JPanel newjp= newjps.get(i);newjp.setBounds(zb10*32, zb11*32,30, 30);jpszb10zb11= newjp;jPanel1.add(newjp);jPanel1.va

17、lidate();jPanel1.repaint();重庆理工大学综合课程设计论文 连连看游戏 15System.out.println(“重新排列完成“ );private JPanel jps= new JPanel 5050;/定义图标的二维数组private int zb= new int 5050;/定义相应的图标的二维坐标int f=1;private boolean compare(int ox,int oy,int tx,int ty)/本段代码是两个坐标点的比较int re=0;/变量,状态标志判断if(oy=ty)if(txox)ox=ox+tx; tx=ox-tx;ox=

18、ox-tx; for(int x=ox;x=tx;x+)if(zbxoy!=0)re+;else if(ox=tx)if(tyoy)ty=ty+oy;oy=ty-oy;ty=ty-oy;for(int y=oy;y=ty;y+)if(zboxy!=0)re+;if(re=0)return true;return false;public class ServerSend implements Runnable/发送消息类,重写 Run 方法GameEntity ge = new GameEntity(jps, zb) ;/构建和客户端通信的对象Thread th = new Thread(ne

19、w ServerSend(this.oos,ge);/新建客户端发送消息的线程th.start();/启动服务器发送线程private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) GameEntity ge=new GameEntity(2,this.jTextField1.getText();/构建和服务器通信对象Thread th=new Thread(new ClientSend(this.oos,ge);/新建客户端发送消息的线程th.start();/启动客户端发送线程this.jTextField1.se

20、tText(“);重庆理工大学综合课程设计论文 连连看游戏 16public class GameEntity implements Serializable/构建服务器和客户端通信的类private int messagetype;/消息类型;1发送客户端游戏图标序列2发送文本消息private String textmessage;/文本消息Class ClientGamehe Class ServerGame 类中的消除图标函数private void remove(int ox,int oy,int tx,int ty) /两个图标若满足消去的条件,则消去选中的两个图标/ this.r

21、emove(jpsoxoy);/ this.remove(jpstxty);Thread addscore = new Thread(new MyRunnable(this);jpsoxoy.setVisible(false);/隐藏该图标jpstxty.setVisible(false);jpsoxoy=null;/把该图标位置置为空,方便为以后连线的图标相消jpstxty=null;addscore.start();zboxoy=0;/坐标位置为0,表明该位置没有图标zbtxty=0;onex = -1;oney = -1;/ this.repaint();public class Ser

22、verSend implements Runnable/服务器发送消息类,重写Runnable方法private GameEntity ge;/和客户端通信对象private ObjectOutputStream oos;/2.不能每次进线程都实例化对象输出流(对象输出流只能构建一次)public ServerSend(ObjectOutputStream oos,GameEntity ge) super();this.ge = ge;this.oos=oos;Overridepublic void run() try System.out.println(“客户端发送的线程“);oos.wr

23、iteObject(ge);/发送对象服务器oos.flush();oos.reset();/3.重置对象输出流 catch (IOException e) e.printStackTrace();重庆理工大学综合课程设计论文 连连看游戏 17public class ServerAccept implements Runnable /服务器接收客户端信息的类,与客户端接收服务器的类思路一致public ServerAccept(ServerGame dg,InputStream in) super();this.dg = dg;this.in=in;try this.ois = new Ob

24、jectInputStream(in); catch (IOException e) e.printStackTrace();Overridepublic void run() try GameEntity ge=(GameEntity)ois.readObject();while(true)dg.jPanel2.removeAll();int count=1;for(int i=1;ige.getJps().length;i+)for(int j=1;jge.getJps()i.length;j+)if(ge.getJps()ij!=null)dg.jPanel2.add(ge.getJps

25、()ij);System.out.println(“服务器接收到客户端发来的jpanel对象“+count);count+;dg.jPanel2.validate();dg.jPanel2.repaint();ge=null;System.out.println(“服务器等待接收“);ge=(GameEntity)(ois.readObject();System.out.println(“服务器已接收“); catch (Exception e) e.printStackTrace();重庆理工大学综合课程设计论文 连连看游戏 184系统测试4.1程序运行测试图 4-1这是玩家选择权利,可以选

26、择单机版和网络版图 4-2游戏等级选择重庆理工大学综合课程设计论文 连连看游戏 19图 4-3这是玩家选择的游戏高级版本界面,有计时功能,计算得分,重新排列,重新开始,退出等功能。图 4-4服务器启动界面重庆理工大学综合课程设计论文 连连看游戏 20图 4-5服务器信息输入界面图 4-6服务端和客户端界面图 4-7客户端和服务器发消息的文本框4.2测试计划及分析1 检验的先后顺序重庆理工大学综合课程设计论文 连连看游戏 21在检验两个方块能否消掉的时候,我们要让两个方块同时满足两个条件才行,就是两者配对并且成功连接。所以,这里应该先检验配对,如果该条件不成立的话,就不要进行连线检测了,这样可以

27、避免很多不必要的复杂运算。当然,如果玩家在做这个游戏的时候,配对规则不够简单的话,那么就先做简单的,把麻烦的放在后面。2 程序异常处理Java 如今是非常流行的语言,有时我们的代码有瑕疵时,系统提供try/catch 异常处理代码,只需点击提供的相应说明,则可自动生成,自动处理掉引起异常的代码。我在此要说明的是,在运行程序时,如果要玩网络版本的游戏,则要启动服务器,否则,要引起异常,甚至死机。本程序核心还是判别两个格子是否可以消去的问题。最直接的方法就是,对于游戏中尚未消去的格子,两两都计算一下,它们是否可以消去。此外,本程序是采用的是判断法,即不断地判断各种情况,哪些情况可以消,不断的去比较

28、判断,因此,比较费时。重庆理工大学综合课程设计论文 连连看游戏 225结 语5.1本文工作总结通过本次 3 周的课程设计集训,我学到了很多。以前是有某些计算机语言编程基础,但是对于 JAVA,还真是零基础。但是,作为计算机学生,再加上老师从基础才讲解,刚开始还是容易理解的。第一周老师主要给我们讲解 java 的变量、常量、类、继承、数组、线程等基础的知识,认识 java 以及逐渐熟悉java,为本次的课程设计打下基础。因为本学期刚刚学过 C#,java 的一些语法巧合和 C#有些类似,所以,老师讲的 java 知识对于我们理解起来也不难。第一周,学习 java 的基础知识,因为是基础,加上老师

29、经常用通俗易懂的事情给我们举例,不想理解都难。第二周,在老师的带领下,我们逐步开始了我们的课程设计环节,做一个简单的 java 连连看游戏,本游戏包括单机版和网络版,第二周,我们主攻单机版的连连看。由于本校电脑安装的 java 程序有些落伍,所以,游戏的界面和代码的功能用不同软件实现。游戏的界面是用 NetBeans IDE 6.7.1 软件设计的,至于里边的功能嘛,就是 eclipse。第二周的工作就比第一周充实了许多,同时也艰难了一些,好在有老师带领,要不然,对本次的课程设计,真的没有信心了。本周的核心在于连连看的算法实现,首先要考虑到在什么情况下可以消除相同的图片,要怎么样实现该功能是我

30、们应该思考的问题。本周在老师的带领下,我们渐渐完善了单机版的连连看。第三周,还有网络版的连连看,因为之前的连连看代码已经基本完善,所以,本周主要是实现网络的传输连接,把本机的连连看传到另外的电脑上实现联机对战。主要的是用到线程。启动服务器线程和客户端线程。本周,虽然经历了许多的代码错误,但在同学老师的帮助下,连连看游戏基本实现了,不管是单机版还是网络对战。重庆理工大学综合课程设计论文 连连看游戏 235.2课题展望本次的课程设计,全靠老师一步步带领,我们才能较顺利地完成本次任务。但是,由于时间有限,加上老师也要给同学们留下一定空间实现自己的想法,所以,老师教给我们的代码只是基本的连连看功能。其

31、他的比如暂停、向对方仍炸弹等由自己思考实现。本次课程设计,让我更深一步体会到了计算机语言的强大,可以实现我们生活中的许多的事情,这个连连看游戏就是最好的说明。本次课程设计,让我明白了一件事,那就是我们可以用自己所学的知识来做一些项目,前提是我们相不相信自己,敢不敢,有没有信心。作为计算机专业出身的学生,我们可以凭借自己所学的做一些小型项目,解决生活中的事情或是实现一些小游戏,比如这次的连连看。Java 如今是一门非常流行、应用非常广泛的计算机语言,很有发展前景,加上这次的课程设计,加深了对 Java 语言的熟悉与了解。学习好 Java 语言可以说也是掌握了一门技术。因此,在今后的学习中,Jav

32、a 语言也不失为一门好的计算机语言供我继续学习。今天我可以用 Java 做一个简单的连连看游戏,明天,我也许能用 Java 实现功能更强,内容更丰富的项目。5.3心得体会三周的课程设计,真的让我感觉到时间真如白驹过隙,这三周,我觉得自己过得很既繁忙又充实,勤奋上进的同学、浓郁的学习氛围加上风趣幽默的老师,更是提高了我们学习的积极性。这 3 周的课程设计,只有课程设计,可谓做到了心无杂念,至少,没有其他的课程或作业搅合到一起,每一天只有课程设计,虽然每天上午、下午满课,但是却从不觉得烦人、也不觉得反感。因为在课程设计的同时,可以看到自己的成果,连连看实现了哪些功能,虽然自己做的连连看很简单,但是

33、仍然不厌其烦地运行着功能并不全的代码,也许,是自己的劳动成果,显得格外珍惜吧。在课程设计中,也遇到许多的麻烦,虽然跟着老师一步一步往前做,但是,结果往往不如意,觉得和老师的代码差不多,功能也差不多,可以代码偏偏出重庆理工大学综合课程设计论文 连连看游戏 24错或者是运行的结果不是自己预料到的,这种情况最能打击我的信心了。每次这样,我都要反反复复看代码,找错误,归其原因,就是自己太粗心,有时忘了初始化,有时忘了添加相应的变量,每每想到这儿,心里真不是滋味。总之呢,本次的课程设计,没有以前碰到的课程设计让人惶恐,也没有以前的课程设计的无聊。这三周,确实让我学到了许多,至少,对 java语言的了解,

34、对面向对象的编程思想的进一步加深,还有,了解到了许多的同学真的很不错,他们都很认真学习,同时思考着如何强化自己的代码功能,原来本班潜藏着的高手还挺多的。代码可以解决生活中的问题,代码可以娱乐人们的生活,这是自己这次最大的感慨了。这三周的学习,我发现自己并不是那么惧怕代码了,反而有些小小的喜欢。今后,我想要好好学习 java,不管有没有这么课程,图书馆的书那么多,编写 java 软件也那么多,如果有心,相信自己会学好的。既然作为计算机专业的一员,编程的功底也不能太差,所以,以后就得好好加油了!重庆理工大学综合课程设计论文 连连看游戏 25致 谢时间如白驹过隙,三周的课程设计已经接近尾声,在这三周

35、的充实生活中,就快画上句号了,心里也顿觉如释重负,但在完成本课程设计时常常出现的辗转反侧和力不从心之感却挥之不去。本次课程设计虽然是老师带着我们一步一步做下去的,但是在编写代码过程中,也遇到过不少难题,常常要寻求一些课外的书籍来充实自己。这是我目前遇到的课程设计时间最长的一次,花了这么久的时间,完成一个小游戏,其中的滋味只有自己知。在这里,我要感谢的人很多,是他们让我有了新的认识与理解,至少,对于计算机世界,至少对于自己的编程水准有了全新的了解。感谢我的指导老师杨志钦老师,也感谢一直陪着我们从旁辅导的蒋佶利和张金荣老师。是杨老师悉心指导我们,带着我们做完这个 java 连连看游戏的。最后,我也

36、要感谢我的母校-重庆理工大学对我们的培养。是母校努力给我们创造更好的学习环境,聘请专业的老师来指导我们,让我们学到更多、更好,知识更精、更准,能力更高、更强!在此,感谢所有教给我知识的老师们,祝你们工作顺利、身体健康!祝愿母校的明天更美好!姓 名 周莉娟 2014 年 1 月于重庆重庆理工大学综合课程设计论文 连连看游戏 26参 考 文 献1张跃平.Java 大学实用教程.2012 年 北京 电子工业出版社2 耿祥义等.Java2 实用教程.2012 年 北京 清华大学出版设3 郑 莉等.Java 语言程序设计.2005 年 北京 清华大学出版社 4李发致.Java 面向对象程序设计教程.2009 年 北京清华大学出版社5耿祥义.Java 基础教程.2012 年 北京 清华大学出版社6 张明新等.Java 语言程序设计.2004 年 重庆 重庆大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报