开发小型益智类游戏毕业论文.doc_第1页
开发小型益智类游戏毕业论文.doc_第2页
开发小型益智类游戏毕业论文.doc_第3页
开发小型益智类游戏毕业论文.doc_第4页
开发小型益智类游戏毕业论文.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

陕西国防工业职业技术学院毕业设计论文题 目 开发小型益智类游戏 专 业 计 算 机 网 络 班 级 网 络 5012 姓 名 柯 小 凡 学 号 02 指导教师 宫 护 震 二五年陕西国防工业职业技术学院毕 业 设 计 任 务 书专业:网络技术 班级:网络5012 姓名:柯小凡 学号:02一、 设计题目利用VB开发小型益智类游戏二、 设计目的使用VB开发小型益智类游戏,熟悉常用软件开发过程,熟悉VB语言的使用三、 设计技术参数和设计要求可以利用VB编写五子棋游戏,要能够实现网络版的用户对战模式,C语言的源程序可以事先给定,也可以自己选择其他的小游戏,要求与五子棋的相同。四、 设计应完成的技术资料源代码(要有足够的注释语句)源程序、安装程序(要包括帮助文件)使用说明书毕业设计资料汇总(封面;任务书;进度表和平时考核;指导教师评语;答辩考核和设计成绩;摘要;目录;正文;致谢;参考文献;附录)五、 设计内容与时间安排二零零五年十一月十四日至二零零六年一月一日六、 设计考核的主要知识点VB程序设计开发能力七、 设计应达到的能力要求能够熟练使用VB语言进行小型软件的开发设计时间: 2005 年 11 月 14 日 至 2006 年 1 月 1 日指导教师签名:宫护震毕业设计进度表和平时考核周次任务阶段名称及主要内容检查日期检查结果14程序开发总体设计及任务分配11.25良好15开发主程序中的开局前的窗体12.2良好16开发公共模块12.9良好17开发下棋主要代码12.16良好18解决网络对战问题12.23良好19优化代码,增加注释,编写论文12.30良好20学生签名:柯小凡 班级:网络5012平时成绩:98指导教师签名:宫护震2005年12月30日指导教师评语和评分意见学生姓名:柯小凡评语:该生在毕业设计的全过程中表现比较认真、遵守纪律。能运用所学知识分析、解决实际问题,较好的完成毕业设计(论文)任务书中规定的内容。设计(论文)内容正确,中心明确,论据较充足,层次较分明,语句通顺。设计(论文)较规范,论文题目与论文的内容基本相符,结构完整,语言比较流畅 评分:93指导教师签名:宫护震 2005年12月30日毕业答辩考核和毕业设计成绩学生姓名:柯小凡1.答辩评语:评分: 2.毕业设计成绩:根据学生平时表现、指导教师评语意见,经答辩小组考核,综合评定该生毕业设计成绩为: 。答辩小组: 组长签名: 组员签名: 年 月 日陕西国防学院电子工程系毕业论文题目:利用VB开发小型益智类游戏专业:计算机网络班级:网络作者:柯小凡指导教师:宫护震摘要Visual Basic是一种可视化的、面向对象和驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。在使用Visual Basic基本编程的基础上,进一步掌握复杂程序的设计方法,包括:创建VB工程、用标准控件设计用户界面,文本和图形、ActiveX控件、网络编程等。为今后承担VB应用程序的开发和维护打下良好的基础。本文主要介绍了如何根据实际应用的需要,以Visual Basic 6.0为工具,开发五子棋益智小游戏. 五子棋,这是一款非常有趣的网络游戏,界面美观.本软件具有交换选手等功能. 而且网络游戏模式,可以做为服务器或客户端双人联机对战,在欢迎登录界面中要求用户选择作为主机还是联机,用server变量来表示。如果作为主机的话,则进入侦听状态。假如有联机的话,则进入联机状态。游戏规则为:棋盘为1515型,棋手自由选择是否先手,先得到“五子连珠”者为胜。在下棋过程中,为了保存下过的棋子的位子使用了map数组,map数组初值为零,可以有1,2,3,4值,分别代表四种棋子图案,黑子,白子,黑红子,红子图案。黑红子分别代表刚下过的黑子,红子分别代表刚下过的白子。每下一棋子,均将棋盘按照map数组调用DrawScreen过程重画。并调用Gameover函数判断是否已经连成五子,如果返回非零,则说明已经连成五子,显示输赢结果。无论否已经连成五子,均将本步信息通过senddata传到对方。我们也是利用VB具有界面美观的这一特点,让同学们熟练使用VB语言进行小型游戏的开发, 以生动形象的VB环境让同学产生对VB语言产生学习的兴趣. 在游戏中找到学习VB语言的乐趣,让人们能够灵活运VB语言这个软件开发程序。关键字:map、VB、Bitblt目 录第一章 软件开发总体设计31.1、软件设计目标及主要功能31.2、聊天片语编辑3第二章 源文件清单及功能简介4第三章 源程序主要过程清单及功能简介53.1、net5-1.frm窗体53.2、net5-2.frm窗体53.3、net5.bas公用模块5第四章 主要代码介绍74.1、Module1模块74.2、Form1窗体84.3、Form2窗体84.4、相关图片9第五章 总结10致谢11参考文献12附录13第一章 软件开发总体设计1.1、软件设计目标及主要功能五子棋是中国古代的传统黑白棋种之一,为了将其搬上计算机网络,同时为了锻炼自己利用VB编程序的能力,故将此作为毕业设计的题目。程式简介此程序是一个支援网路连线的五子棋游戏,可以让你透过网路跟你的亲朋好友来场五子棋大赛,因单机版的五子棋在其他语言版本中已经比较多,故本次设计并没有设计单人的模式,只能利用连线来玩。游戏规则1、规则没有依照国际的规定,所以只要任一方先连成五颗就获胜。2.、当主机的人为先手,下黑子。连线说明当主机:1、选择我要当主机,在你的主机IP选项内的即是你的IP2、将IP告诉欲加入连线者 3、按确定等待对方加入 4、当出现连线中字样,即连线完成。加入连线:1、选择我要加入一个连线棋局。2、将对方的IP输入到连线主机IP选项内3、按确定连到对方主机4、当出现连线中字样,即连线完成。1.2、聊天片语编辑此程序可以让你一边下棋,一边聊天,不过用在打字的时间可能比下棋还多,所以这个功能可以让你简少打字的时间,直接将一些常用的话记录下来,连线时就可以直接叫出来了,使用的方法是直接修改net5.txt即可。第二章 源文件清单及功能简介文件清单及功能简介如下: - net5.vbp:工程文件 net5-1.frm:主窗体 net5-2.frm:登陆界面 net5.bas:公共模块 net5.txt:聊天片语 put.wav:落子音乐 net5.exe:可执行文件第三章 源程序主要过程清单及功能简介3.1、net5-1.frm窗体 Com1_Click(Index As Integer):Form1上的5个命令按钮的单击事件,使用Select Case语句来分别执行不同按钮的命令,index是命令按钮数组中的下标。 Form_Load():Form1窗体加载子过程,主要是将net5.txt文本文件中的文字内容加入到Combo1的下拉列表中,用户可以通过更改net5.txt中文本的内容更新聊天片语。 Form_Unload(Cancel As Integer):Form1窗体卸载子过程,停止游戏,并发送消息给客户端。 Pic1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single),当鼠标点击棋盘时,将棋盘实际坐标转换成个数坐标,并更新棋子数组,发出落子声音,判断是否获胜,显示战绩,同时发消息给对方。 Winsock1_ConnectionRequest(ByVal requestID As Long):服务器端用来响应客户端请求信息的事件。 Winsock1_DataArrival(ByVal bytesTotal As Long):获得对方数据。 Winsock1_Connect():客户端用来请求连接的事件函数。3.2、net5-2.frm窗体 Command1_Click():处理用户登陆联线前的工作。 command2_Click():结束程序。 Form_Load():form2窗体的加载事件。 Option1_Click():Option1的单击事件_将server置1。 Option2_Click():Option1的单击事件_将server置2。3.3、net5.bas公用模块 Main():当运行程序时,装载两个窗体并且将它们显示出来。 DrawScreen():画出棋子 GameOver(a):判断是否五子是否连成一线。 Send(mydata As String):送出资料 GetMyData(Size):接受资料。 OpenCom():将能送出资料的控制项致能。 CloseCom():将能送出资料的控制项除能。 ResetGame():开新棋局,将棋子数组置0,使战绩图片不显示。第四章 主要代码介绍4.1、Module1模块l Bitblt作用Declare Sub BitBlt Lib gdi32 (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long)Declare Function sndPlaySound Lib Winmm.dll Alias sndPlaySoundA (ByVal SoundName As String, ByVal Flags As Long) As LongBitblt作用将某一内存块的数据传送到另一内存块,前一内存块被称为源,后一内存块被称为目标图像程序开发者使用Blit的函数在内存中将某页面上的一幅位图经过一定的变换转移到另一个页面上。参数描述 hDestDC:接收位图的设备描述表 X:目标矩形左上角的逻辑X坐标 Y:目标矩形左上角的逻辑Y坐标 nWidth:目标矩形的宽度 nHeight:目标矩形的高度 hSrcDC:源设备描述表 xSrc:源位图左上角的逻辑X坐标 ySrc:源位图左上角的逻辑Y坐标 dwRop:拷贝模式,dwRop的各种可能值为:&HCC0020-dest=source&HEE0086-dest=source OR dest&H8800C6-dest=source AND destl Map数组Public map(1 To 15, 1 To 15)主要作用是存放棋盘上棋子信息,棋盘为1515点阵,每一个点对应数组的一个元素,将棋盘上的点全部用1到15的整数定义其行列坐标,当数组元素值为1时,表示当前棋盘坐标上放置的是黑子,为2时表示坐标点上是白子,为3和为4时表示中间动态显示状态。l Win、Lost数组Public Win(1 To 2), Lost(1 To 2)分别存储主机和客户机的胜利和失败的盘数。Refresh 刷新DrawScreen 画出棋子CloseCom 将能送出资料的控制项除能OpenCom 将能送出资料的控制项致能Server全局变量Server存放目前为主机或客户机,其中主机=1,客户机=2。4.2、Form1窗体Com1_Click Form1上的5个命令按钮的 单击事件Case 0 送出(这是一个送出消息请求的按钮)Case 1 清除(这主要功能是清除棋盘上的棋子)Case 2 开新棋局(重新进行开始游戏)Case 3 重新连线(开始另一个玩家与主机的连线) Case 4 断线结束(与玩家的游戏结束)If Button = 1 Then 将屏幕坐标转换为棋盘坐标If a = Server T 判断是否有一方已经胜利,并且将结果显示出来SndPlaySound 落子音乐(这是在下棋过程中.每下棋子的落子声音,表示在下子)Winsock1_ConnectionRequest 服务器端用来响应客户端请求信息的事件Winsock1_DataArrival 获取对方发送过来的信息(客户端)Winsock1_Connect 客户端用来请求连接的事件函数4.3、Form2窗体Winsock1.LocalPort 设置主机的本地端口号是5238Winsock1.Listen 设置为 监听状态Winsock1.RemoteHost 获得主机的IP地址Winsock1.LocalPort 本地端口为0Label1(2).Caption 文本框所显示的玩家的战绩和胜败次数4.4、相关图片登陆界面:游戏主界面:第五章 总结从开始选择对vb游戏的设计,我对vb只是有所了解,并没有太多的接触,在老师和同学的帮助下,根据所学的一些vb知识以及相关内容,并按照设计题目的要求进行分析探讨,做了一些简单的构思。在设计过程中,出现了很多的问题,通过不断地分析、解决问题,我慢慢熟悉并完成了我们所做的游戏系统,在这整个设计中不断的学习我体会到:1在设计过程中,接触了一些新的知识,只有认真积极去努力把它搞清楚,才能成为自己的东西。2.由于设计前期有些资料并没有很好的准备,设计过程中出现一些问题,由于自己对一些需求分析认识不是很清楚,没能全部实现设计前比较完善的想法,还有遇到很多困难,如编写代码,在这过程中通过了解相关资料上的代码并加以理解其含义,然后根据自己的设计要求编写代码,还有因为起初的设计问题,使得其后有些功能实现起来很复杂,但是我通过茶青找一些书籍使问题得以解决. c. 网络资源是一个丰富的共享体系,设计过程中,由于要实现某些功能,互联网帮了我的大忙。我通过在网站上查询到一些书上没有的知识,同时也学到了很多,这坚定了我通过网络吸收知识的信心。经过一个多月的设计,我知道如果要完成一项工作,首先必须要有一套周密的计划安排,虚心学习,耐心请教,在实践中及时发现问题并且及时解决问题,不断积累经验,并根据所学的知识一步一步进行,这样才能有更大的提高和收获.致谢在这次毕业设计的过程中,我得到了不仅仅是老师的帮助还有同学们的帮助,他们给予我非常大的帮助并提出了许多宝贵的建议和启发,尤其是我的指导老师,他以独特的建议和一丝不苟的作风以及不拘一格的思路给予我无尽的启迪,并且给予充足的实践时间,一直是我设计期间的动力,谨在此向他们表示衷心的感谢! 参考文献1 刘炳文-Visual Basic语言程序设计(修订版),北京:高等教育出版社,20022 张勇等-Visual Basic课程设计案例精编,北京:中国水利水电出版社,20023 周峰-Visual Basic案例开发集锦,北京:电子工业出版社,2005.64 Visual Basic 程序设计教程刘瑞新,李树东等编著电子工业出版社,20035 Visual Basic程序设计与应用开发 案例教程曾强聪等, 清华大学出版社,2005附录源代码Form1 源代码Private Sub Com1_Click(Index As Integer) Form1上的5个命令按钮的 单击事件Select Case Index Case 0 送出 Label3.Caption = Combo1.Text Send 5 + Combo1.Text Case 1 清除 Combo1.Text = Case 2 开新棋局 Send 3 ResetGame 如果本机主机的话,pic图片有效,可以下子否则无效。 If Server = 1 Then Pic1.Enabled = True Else Pic1.Enabled = False Case 3 重新连线 If Label2.Caption = 连线中 Then Send 4 DoEvents End If Winsock1.Close Label2.Caption = 尚未连线 加载联机欢迎窗体 Load Form2 Form2.Show Case 4 断线结束 If Label2.Caption = 连线中 Then Send 4 DoEvents End If Winsock1.Close EndEnd SelectEnd SubPrivate Sub Form_Load() Form1窗体加载子过程Open net5.txt For Input As #1 将net5.txt文本文件中的文字内容加入到 Combo1的下拉列表中Do Input #1, Gdata 从文件中读一行数据到Gdata中 Combo1.AddItem Gdata 将Gdata中的内容放入到下拉框的下拉选项中 If EOF(1) Then Close #1: Exit Sub 如果文件中内容已经读取完毕,则退出此过程LoopEnd SubPrivate Sub Form_Unload(Cancel As Integer) Form1窗体卸载子过程 If Label2.Caption = 连线中 Then Send 4 DoEvents End If Winsock1.Close EndEnd SubPrivate Sub Pic1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 设置棋盘(pic1)的坐标If Button = 1 Then将屏幕坐标转换为棋盘坐标sx = Fix(X / 21) + 1: sy = Fix(Y / 20) + 1If map(sx, sy) 0 Then Exit SubCall sndPlaySound(put.wav, 0) 落子音乐map(sx, sy) = ServerDrawScreena = GameOver(Server)If a = Server Then 判断是否有一方已经胜利,并且将结果显示出来 Image1(0).Visible = True Win(Server) = Win(Server) + 1 If Server = 1 Then Lost(2) = Lost(2) + 1 Else Lost(1) = Lost(1) + 1 Form1.Label1(2).Caption = 战绩: + Str(Win(1) + 胜 + Str(Lost(1) + 败 Form1.Label1(4).Caption = 战绩: + Str(Win(2) + 胜 + Str(Lost(2) + 败 在文本框显示胜败次数和战绩 End IfSend 1 + Chr(sx) + Chr(sy) 发送信息到对方机子Pic1.Enabled = FalseEnd IfEnd SubPrivate Sub Winsock1_ConnectionRequest(ByVal requestID As Long) 服务器端用来响应客户端请求信息的事件If Winsock1.State sckClosed Then Winsock1.CloseWinsock1.Accept requestIDLabel2.Caption = 连线中OpenComPic1.Enabled = TrueEnd SubPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long) 获取对方发送过来的信息(客户端)GetMyData bytesTotalEnd SubPrivate Sub Winsock1_Connect() 客户端用来请求连接的事件函数Label2.Caption = 连线中Send 2 + Label1(3).Caption OpenComEnd SubForm2源代码Private Sub Command1_Click()If Server = 1 Then 自己作为主机 Form1.Winsock1.LocalPort = 5238 设置主机的本地端口号是5238 Form1.Winsock1.Listen 设置为 监听状态 Form1.Label1(1).Caption = 黑子: + Text1.Text Form1.Label1(3).Caption = Form1.Label2.Caption = 等待加入中Else 自己作为联机 Form1.Winsock1.RemoteHost = Text2.Text 获得主机的IP地址 Form1.Winsock1.RemotePort = 5238 Form1.Winsock1.LocalPort = 0 本地端口为0 Form1.Winsock1.Connect Form1.Label1(1).Caption = Form1.Label1(3).Caption = 白子: + Text1.Text Form1.Label2.Caption = 正在连线到主机End IfForm1.Label1(2).Caption = 战绩: + Str(Win(1) + 胜 + Str(Lost(1) + 败Form1.Label1(4).Caption = 战绩: + Str(Win(2) + 胜 + Str(Lost(2) + 败Form1.ShowForm1.Pic1.Enabled = FalseForm1.Enabled = TrueForm2.HideUnload Form2ResetGameEnd SubPrivate Sub Command2_Click() 结束此程序EndEnd SubPrivate Sub Form_Load() form2窗体的加载事件Form1.Enabled = FalseCloseComText2.Text = Form1.Winsock1.LocalIPServer = 1Win(1) = 0Win(2) = 0Lost(1) = 0Lost(2) = 0End SubPrivate Sub Option1_Click() Option1的单击事件_将server置1.Text2.Text = Form1.Winsock1.LocalIP本机作为主机即server=1Server = 1End SubPrivate Sub Option2_Click() Option1的单击事件_将server置2.Label3.Caption = 连线主机IPText2.Text = 0.0.0.0本机作为联线即server=2Server = 2End SubModule1源代码Declare Sub BitBlt Lib gdi32 (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long)Declare Function sndPlaySound Lib Winmm.dll Alias sndPlaySoundA (ByVal SoundName As String, ByVal Flags As Long) As LongBitblt作用将某一内存块的数据传送到另一内存块,前一内存块被称为源,后一内存块被称为目标图象程序开发者使用Blit的函数在内存中将某页面上的一幅位图经过一定的变换转移到另一个页面上Global Const srccopy = &HCC0020 将源矩形图象直接复制到目标矩形上.Global Const srcand = &H8800C6 将目标文件中对应于源文件黑色区域的部分变黑,将对应于白色区域的部分留着不动Global Const srcor = &HEE0086Public map(1 To 15, 1 To 15) 棋盘坐标Public Win(1 To 2), Lost(1 To 2) 储存胜败次数Public Server 存放目前为主机或客户机 主机=1 客户机=2 Sub Main() 当运行程序时,装载两个窗体并且将它们显示出来Load Form1Load Form2Form1.ShowForm2.ShowEnd SubSub DrawScreen() 画出棋子X = 3: Y = 2map数组存放的是棋盘上棋子信息,Pic2图片存放四种棋子图案,黑子,白子,黑红子,红子图案For i = 1 To 15 For j = 1 To 15 If map(i, j) = 1 Then BitBlt Form1.Pic1.hDC, X, Y, 21, 20, Form1.Pic2.hDC, 0, 0, srccopy If map(i, j) = 2 Then BitBlt Form1.Pic1.hDC, X, Y, 21, 20, Form1.Pic2.hDC, 21, 0, srccopy If map(i, j) = 3 Then BitBlt Form1.Pic1.hDC, X, Y, 21, 20, Form1.Pic2.hDC, 42, 0, srccopy If map(i, j) = 4 Then BitBlt Form1.Pic1.hDC, X, Y, 21, 20, Form1.Pic2.hDC, 63, 0, srccopy Y = Y + 20 Next j Y = 2 X = X + 21Next iForm1.Pic1.Refresh 刷新End SubSub Send(mydata As String) 送出资料Form1.Winsock1.SendData mydata 传mydata到对方那里End SubSub GetMyData(Size) 接受资料Dim mydata As StringForm1.Winsock1.GetData mydata, vbStringSelect Case Mid(mydata, 1, 1) Case 1 棋子的资料 If Server = 1 Then s = 2 Else s = 1 Call sndPlaySound(put.wav, 0) sx = Asc(Mid(mydata, 2, 1) sy = Asc(Mid(mydata, 3, 1) map(sx, sy) = s + 2 DrawScreen 画出棋子 map(sx, sy) = s a = GameOver(s) Form1.Pic1.Enabled = True If a = s Then Form1.Image1(1).Visible = True Form1.Pic1.Enabled = False Lost(Server) = Lost(Server) + 1 Win(s) = Win(s) + 1 Form1.Label1(2).Caption = 战绩: + Str(Win(1) + 胜 + Str(Lost(1) + 败 Form1.Label1(4).Caption = 战绩: + Str(Win(2) + 胜 + Str(Lost(2) + 败 End If Case 2 名字资料 If Server = 1 Then 自己作为主机 Form1.Label1(3).Caption = Mid(mydata, 2, Size - 1) Send 2 + Form1.Label1(1).Caption 等待加入中 Else 自己作为联机 Form1.Label1(1).Caption = Mid(mydata, 2, Size - 1) End If Case 3 开新棋局送的资料 ResetGame Case 4 对方断线送的资料 Form1.Label2.Caption = 尚未连线 Form1.Pic1.Enabled = False CloseCom Form1.Winsock1.Close Case 5 聊天视窗的资料 Form1.Label1(0).Caption = Mid(mydata, 2, Size - 1) 你输了 Case ElseEnd SelectEnd SubFunction GameOver(a) 判断是否连成五颗For i = 1 To 11 For j = 1 To 11 表示开始画棋子 If map(i, j) = a And map(i + 1, j + 1) = a And map(i + 2, j + 2) = a And map(i + 3, j + 3) = a And map(i + 4, j + 4) = a Then GameOver = a: Exit Function 先定位棋盘的坐标,再检查其棋盘值是否为1,为1则有棋子在此坐标上 Next j Next iFor i = 5 To 15 For j = 5 To 15 If map(i, j) = a And map(i - 1, j - 1) = a And map(i - 2, j - 2) = a And map(i - 3, j - 3) = a And map(i - 4, j - 4) = a Then GameOver = a: Exit Function Next jNext iFor i = 5 To 15 For j = 1 To 11 If map(i, j) = a And map(i - 1, j + 1) =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论