版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、绪论(一)研究现状与背景游戏是如今社会非常火热的娱乐活动之一,特别是在进入网络时代之后,各种各样的游戏如雨后春笋般的涌现。有些游戏如日中天,让游戏公司赚的盆满钵满,而有些游戏的寿命却如昙花一现般短暂,隐于尘埃。但是不管哪款游戏,都一定有它存在的价值,或是推动游戏行业的发展,或是给人们带来欢乐。当然,对于人们来说,影音视频、电子阅读、K歌娱乐,旅游都是不错的娱乐选择。但是随着现代化建设的不断加快,这些传统的娱乐方式,早已满足不了人们的需求,而游戏也就是在这个时候渐渐走入人们的视野。不管是出于打发闲暇时光的想法,还是放松在忙碌一天之后的疲惫身心,游戏已经是很多人的第一选择。换一种说法,现在年轻人的生活之中也越来越离不开游戏。早在1976年,美国街机游戏生产商\t"/item/%E8%B4%AA%E9%A3%9F%E8%9B%87/_blank"Gremlin便推出了在后来引领了游戏行业的这么一款经典街机游戏,Blockade。玩法就如同它的名字一样,封锁,屏幕上会有两个游戏角色,而两位玩家分别去控制自己角色的左右行进方向,经过的地方则会生成障碍物,谁先碰到障碍物则谁输掉了游戏。Blockade游戏一经推出便受到大众追捧,游戏公司纷纷效仿开发类似游戏,也出现在各种操作平台上。但是真正让这种游戏形式家喻户晓,走向世界的还是诺基亚公司在21年之后推出的手机产品上搭载的贪吃蛇游戏——Snake。贪吃蛇的规则是,用键盘操控屏幕里小蛇的行进方向去吃豆子,吃的豆子越多小蛇的身体则会越来越长,蛇头触碰到蛇身或是障碍物时则游戏结束。由于贪吃蛇游戏玩法简单、硬件要求低,无论是上厕所时、排队时、等待汽车时,它都能满足各种需求场景下的应用。而在那个游戏行业竞争并不大的时代,使得它能做到人尽皆知。相对于其它游戏来说,贪吃蛇是一个带有悲剧性的游戏。很多游戏都是的规则是玩家打到通关,以游戏操纵者的胜利而告终,但是贪吃蛇确是以小蛇的死亡结束游戏。不管你玩法多么娴熟,有多高超的技艺,随着小蛇的身体增长只会离死亡越来越近,离游戏的结束也越来越近,在蛇身越来越长的时候肯能你考虑的不再是如何去吃到豆子,而是如何避免蛇头碰到蛇身或是障碍。或许贪吃蛇想告诉我们的道理是不要疲于奔命,要做到生活和事业兼顾。树大招风,福兮祸倚,随时面对生活中可能发生的一切。我相信每款游戏都能给我们带来一定的积极意义。(二)行性分析科学性、预见性、公正性、可靠性是一个项目可行性分析必须具备的特点。但是由于此次的项目并不会上线或作商用盈利,所以本文的可行性分析仅对我个人而言阐述。本次毕业设计的可行性分析大致包括以下三个方面。经济可行性,此次毕业设计开发的是一个小型单机贪吃蛇游戏系统,对于现在的个人笔记本电脑硬件来说完全可以承担此次系统开发的语言编写、测试以及运行等任务。而开发人员分配方面,个人足以完成此次系统开发的全部任务,所需预算不大。综上,此次的系统设计经济可行性通过。技术可行性指的是开发者所拥有的技术以及资源是否能满足项目的开发任务。此次贪吃蛇小游戏的开发语言,我选择的是Python。Python是一种面向对象的编程语言,同时具有低级语言与高级语言的优点[1]。整个系统完全可以依靠Python强大的标准库以及第三方库来实现,它在代码的模块化要求上也有一定的保证,方便游戏在各个平台上的移植,减少不必要的工作量,也有利于代码的读写与修改。本系统所需语言技术开发层面不高,而且Python语法简单明了,开发人员完全可以单独实现整个系统的开发。运行可行性,单机版贪吃蛇小游戏所消耗的各类资源非常小。无论是公共场所的电脑还是个人电脑,以及移植到其他类型的平台上,在软件和硬件上都能够满足运行所需要的基本条件。而且游戏操作简单,玩家只需在知道游戏规则的情况下便能进行游戏。二、需求分析(一)功能性需求不管一款什么样的软件都应该实现它相对的功能,而此次的贪吃蛇作为一款小型的单机游戏作用就是为人们提供多样化休闲娱乐的选择之一。简单性,毋庸置疑这是贪吃蛇应有的特点,不论是操作简单还是游戏内容简单,都能使得它能面向各个年龄阶段的人群。对于那些全身心投入工作、整日奔波的人来说,他们不可能投入过多的时间和精力在游戏上,所以贪吃蛇这类小游戏是一个不错的选择,也能满足其娱乐需求。也正是因为简单性,贪吃蛇没有像其他大型游戏的趣味性和丰富度。所以,为了增加游戏的竞争力,本次的系统将加入游戏难度选择模块。(二)非功能性需求软件产品开发设计不仅仅只是把满足用户业务需求作为第一要素,而且还应该具备其他一些重要的特性,比如系统的可靠性、可扩充性、适应性以及性能等。而这就是非功能性需求。贪吃蛇作为此次毕业设计的论题,它应该具备的就是可靠性和比较好的系统UI界面。对于可靠性来说,此次运用的是Python来编写系统,所以不管是代码的维护性还是程序响应速度都能够得到很好的保证。而一个好的系统UI界面能够让用户在除了享受游戏带来的乐趣之外,带来更好的一个观感,也从另一方面增加了产品的竞争力。三、游戏及开发工具简介(一)游戏简介本次设计的游戏——贪吃蛇,是一种消遣益智类的小游戏。在用户进入游戏开始界面时选择对应游戏难度即可开始游戏,游戏之初是一条很短的小蛇在屏幕上行进,而用户则是通过方向键控制小蛇的方向去吃掉游戏中的食物,吃到的食物越多蛇的身体就会越长、分数也会越高。游戏进行到中后期时,越来越长的小蛇更需要用户小心的操控,不仅在给玩家带来一定的娱乐性的同时也是对大脑反应速度的一种锻炼。当蛇头触碰到蛇身或是屏幕边缘时,则游戏结束。(二)Python简介1.Python的运行原理作为一种解释型脚本语言,Python的运行原理和C与C++相比大不相同。那解释型脚本语言又是什么呢?大家都知道高级语言对于计算机而言是不能直接识别的,所以当开发者想要运行一个由高级语言编写的程序的时候就需要一个合适的“翻译器”来作为一个中间介质,把编写程序的高级语言转变成计算机能直接识别的机器语言。这个转换过程也大致可以分为两类,一是编译,二是解释[2]。在我们运行以.py结尾的Python程序时,Python解释器会把由高级语言组成的源代码编译成字节码然后提交到PVM(PythonVirtualMachine,Python虚拟机,它是Python的运行引擎)中做进一步处理之后执行程序,最后由Python输出结果[3]。运行原理如图3-1所示。图3-1Python运行原理图2.Python的特点“简单、明确、优雅”是Python遵循的设计理念[4],相较于其他编程语言更容易上手,代码也更具可读性。因为Python开源的本质,使得它的移植性很高,开发人员只需做少许修改便可将程序移植到其它平台,这包含了市面上大部分主流平台,如Windows、Linux、OS/2、FreeBSD、Solaris、VMS等。其次,Python具有良好的可扩展性,如果开发者由于某种原因并不想程序中的部分算法被公开,则这部分可以用C或C++来编写,它们同样可以在Python程序中运行,要是想提高某一段代码的运行速度也可以使用同样的方法来实现[5]。再者,Python也因其可嵌入性被人们经常戏称为胶水语言,不同语言编写的不同模块都能通过Python而结合在一起,从而给用户提供高效能的脚本功能,而在那些真正需要运用其他语言优化的地方,Python都有强大的库和API支持[6]。Python丰富的库更是让其成为“黄金语言”的一大因素,除了内置的标准库以外,Python社区更是提供了海量的第三方库Twisted、wxPython、Python图像库等。这些库在处理电子邮件、文档生成、正则表达式、密码系统、数据库、图形用户界面(GUI)、FTP、单元测试等众多工作上提供了不少便携。这也是为什么众多项目选择Python作为核心语言的原因,它被广泛运用于大数据分析、图像处理、爬虫、Web、自动化测试等领域。我相信当大家热衷于某一款软件时,并不单单是因为它所带来的各种利好,还因为有一群与你志同道合的人,你们可以探讨使用时的心得、可以畅想软件的迭代。人生不是孤独的旅行,编程也不会是。每个人都会在项目开发中遇到不同的问题,大多数程序员都渴望有那么一个互帮互助、联系紧密的社区或是平台。程序员可以在这里向解决过类似问题的人寻求帮助或是建议,而Python社区对我这种初学者而言无疑是坚强的后盾[7]。3.PyGame简介PyGame是Python众多库中的一个,PyGame可以用来绘制图形、实现动画以及让游戏按照设定帧率平稳运行。它是基于SDL(SimpleDirectMediaLayer)写就的游戏库。而与DirectX(微软公司创建的多媒体营运程序接口)相当的SDL的用途是用来控制多媒体的跨平台库,被用于数百种游戏之中。开发者在最初的目标是让做困难的事情变简单,让容易的事情变得更容易,于是将SDL和Python两者结合起来组建成了现在的PyGame。由于PyGame让游戏变得动态起来所采用的是帧更新和轮询的方式(帧更新就是不断地更新画面,轮询则是不断地询问用户输入),在绘制比较复杂的图像的时候会出现“卡帧”现象,所以PyGame并不适合制作大型游戏以及3D游戏,而对于2D游戏则能起到不小帮助[8,9]。本次贪吃蛇游戏系统设计所需要用到的框架以及常用函数都包含在PyGame之中,处于开发时间成本的考虑,本项目会直接调用PyGame。PyGame的使用步骤如下:首先是导入PyGame库及其中所包含的常量至Python程序中,然后经过初始化之后我们就可以在代码中访问并调用PyGame中的所有资源。importpygame#导入pygame模块frompygame.localsimport*#导入pygame中的常量pygame.init()#初始化pygame(三)PyCharm简介所谓工欲善其事必先利其器,PyCharm从众多程序开发应用中脱颖而出。它不仅拥有其他类似IDE的功能,如调试、项目管理、语法高亮、版本控制、单元测试等,还提供了供Web开发人员使用的Django框架,大大增加了开发人员的生产效率[10]。在本次的系统开发中可能用到最多的两个功能就是代码补全和智能重构,所以PyCharm在本次项目中也起到不小作用。四、概要设计(一)功能介绍本贪吃蛇游戏系统的实现就是在屏幕显示区域内绘制出一条小蛇,同时在与小蛇身体不重合的屏幕显示区域内绘制出一个食物,游戏玩家通过键盘上的方向键来操控小蛇的行进方向去吃掉食物,食物被吃掉后又会在显示区域内随机出现另一个食物,而小蛇每吃下一个食物身体便会增长一段,如此反复,蛇越长时则对游戏玩家来说越难操作。当蛇的头部撞击到屏幕边缘或是蛇身的任意一个部位的时候,游戏结束[11]。贪吃蛇游戏实现的关键就在于蛇身图形组建和蛇行进轨迹的绘制。我们可以通过画小矩形块(rect属性)的方式来画出小蛇,在小蛇的每次移动的时候,删掉蛇身的最后一个矩形块,在蛇头增加一个新的矩形块,就相当于把蛇的最后一个矩形块加在蛇头的位置。小蛇每移动一个单位,屏幕就重新绘制一次,这样就可以实现小蛇行进的动态效果。而在蛇吃下食物的时候,蛇头覆盖食物,在蛇尾加上一个小矩形块,同时利用random模块随机绘制另一个食物(上一个食物此时消失)[12]。(二)程序流程设计1.程序流程图本次设计的游戏程序运行的流程框图如图4-1所示。图4-1程序流程框图2.界面设计首先定义程序运行界面的大小,背景色等,便于在各个界面显示统一,为玩家提供更好的观感。游戏界面分为:开始界面、游戏界面和结束界面。在开始界面时,程序运行窗口左上角显示自定义的游戏名称,居中位置显示导入的背景图片,下方显示玩法说明及操作指南;在游戏界面时,整个程序窗口用于游戏,小蛇可在窗口中任意行进,食物显示为蓝色圆形,右上角显示玩家分数,每吃掉一个食物增加一分;当游戏结束时,显示结束界面,窗口居中位置为“GameOver”字样图片,下方则显示游戏提示“请按任意键重新游戏或Esc键退出游戏”。3.功能设计除了游戏的基本功能实现之外,为了增加游戏的可玩性设置了F1加速、F2减速、F3无敌等功能。在游戏中还添加了暂停功能,玩家可通过SPACE键来暂停/继续游戏。每当玩家吃到5个食物时随机生成一堵长度在1-5之间的障碍物,而且速度也会增加。在游戏结束时,可按除ESC以外的任意键来重新开始游戏,按ESC键则退出程序。(三)游戏过程游戏开始时小蛇会有一个初始方向,如果玩家不输入有效的方向操作,小蛇则会一直按次方向前进,而且小蛇的不能反方向移动,也就是说不能将蛇尾当作蛇头来移动。当用户键入有效的方向之后,蛇头会率先朝玩家给定的方向移动,而蛇身随着蛇头的移动而移动(覆盖此前的轨迹)。贪吃蛇移动实现的方式就是在移动的方向绘制一个矩形块当作蛇头,而蛇尾则删掉一个矩形块,整条蛇重新绘制刷新在屏幕中,这样看起来蛇就向前移动了一个单位的距离。在本系统中游戏的碰撞检测包含了三种情况:一是蛇吃到食物,此时蛇身增加一个矩形块;二是蛇头和蛇身的碰撞,此时游戏结束;三是蛇头与障碍物的碰撞,正常情况下游戏也会结束(无敌模式下贪吃蛇不会死亡)。五、系统实现本次系统设计用到的主要模块及作用如下表5-1所示。表5-1贪吃蛇系统主要模块 模块作用pygamePython的跨平台模块,用于游戏开发os操作系统相关的操作和调用sys系统信息和接口random生成随机实数time时间模块,控制游戏帧率(一)功能概览本次系统设计用到的主要函数及作用如下表5-2所示。表5-2贪吃蛇系统主要函数函数作用main()主函数,控制游戏进程running_game游戏运行主体draw_food画出食物draw_snake画出贪吃蛇move_snake贪吃蛇的移动snake_is_alive贪吃蛇的碰撞检测get_random_location生成随机食物show_start_info显示开始信息show_gameover_info显示结束信息event.get()监听键盘事件draw_wall生成障碍物(二)构建开始界面游戏的开始界面应该首先定义好窗口的大小,所需要用到的颜色、字体,导入欢迎界面的背景图片。接下来就是界面的布局以及键盘和鼠标的监听检测。主要代码如下:defshow_start_info(screen):#设置游戏提示,导入背景图片font=pygame.font.Font(base+'\\myfont.ttf',40)tip=font.render('请选择游戏难度',True,(65,105,225))gamestart=pygame.image.load(base+'\\111.jpg')#将各个模块绘制到相应位置screen.blit(gamestart,(140,30))screen.blit(tip,(240,550))pygame.display.update()#定义蛇的初始速度globalsnake_speed#鼠标以及键盘的监听事件,在开始界面按下除了ESC键之外的任意键即可开始游戏。鼠标点击按钮也会立即开始游戏,且小蛇拥有不同的行进速度。whileTrue:foreventinpygame.event.get():ifevent.type==QUIT:quitgame()elifevent.type==KEYDOWN:if(event.key==K_ESCAPE):quitgame()else:returnelifevent.type==pygame.MOUSEBUTTONDOWN:ifb1.pressed(pygame.mouse.get_pos()):snake_speed=5returnifb2.pressed(pygame.mouse.get_pos()):snake_speed=10returnifb3.pressed(pygame.mouse.get_pos()):snake_speed=15return(三)蛇与食物的绘制因为在游戏运行主体的函数中已经定义好了使用random()函数生成的贪吃蛇、初始坐标和食物坐标,这一段只需将贪吃蛇和食物在屏幕上使用.draw属性绘制出来并给蛇和食物加上颜色即可。#定义draw_snake()函数将贪吃蛇画出来defdraw_snake(screen,snake_coords):#设定蛇的位置forcoordinsnake_coords:x=coord['x']*snake_sizey=coord['y']*snake_size#蛇身的第一层颜色wormSegmentRect=pygame.Rect(x,y,snake_size,snake_size)pygame.draw.rect(screen,Green,wormSegmentRect)#蛇身的第二层颜色wormInnerSegmentRect=pygame.Rect(x+4,y+4,snake_size-8,snake_size-8)pygame.draw.rect(screen,blue,wormInnerSegmentRect)#食物的坐标位置等于食物的相对坐标乘以蛇的单位大小defdraw_food(screen,food):x=food['x']*snake_sizey=food['y']*snake_sizeappleRect=pygame.Rect(x,y,snake_size,snake_size)#使用.draw属性画出食物pygame.draw.rect(screen,Red,appleRect)(四)蛇的移动这里只对蛇的行进坐标的改变做出说明,蛇的行进方向在其他模块中做了键盘监听检测的对应定义。如果蛇的移动方向是向上(这里的“上”指的是玩家视角的“上”),则蛇的新头坐标x值不变,y减一;如果蛇的移动方向是向下,则蛇的新头坐标x值不变,y加一;如果蛇的移动方向是向左,则蛇的新头坐标x值减一,y不变;如果蛇的移动方向是向右,则蛇的新头坐标x值加一,y不变。defmove_snake(direction,snake_coords):ifdirection==UP:newHead={'x':snake_coords[HEAD]['x'],'y':snake_coords[HEAD]['y']-1}elifdirection==DOWN:newHead={'x':snake_coords[HEAD]['x'],'y':snake_coords[HEAD]['y']+1}elifdirection==LEFT:newHead={'x':snake_coords[HEAD]['x']-1,'y':snake_coords[HEAD]['y']}elifdirection==RIGHT:newHead={'x':snake_coords[HEAD]['x']+1,'y':snake_coords[HEAD]['y']}#插入蛇新头的坐标,以实现蛇的动态效果snake_coords.insert(0,newHead)(五)游戏运行主体在running_game()函数中定义了蛇的初始位置及初始方向、速度。还对键盘监听事件做了对应的绑定,四个方向键控制蛇的前进方向,在游戏中按下SPACE键可使游戏暂停或继续,按下ESC键退出程序。F1贪吃蛇加速,F2贪吃蛇减速,F3开启/关闭无敌模式。同时,running_game()函数也是整个游戏的运行主体,集合了程序中的大部分函数来控制游戏的进程。defrunning_game(screen,snake_speed_clock):#贪吃蛇的生成:贪吃蛇的的初始位置由random()生成,并且是在坐标在3与地图的宽高间隔8个单位的位置之内,定义贪吃蛇的初始长度为3节startx=random.randint(3,map_width-8)starty=random.randint(3,map_height-8)snake_coords=[{'x':startx,'y':starty},{'x':startx-1,'y':starty},{'x':startx-2,'y':starty}]#开始时向右移动,初始化蛇的行进速度direction=RIGHTfood=get_random_location()globalsnake_speed#如果在游戏不是暂停的情况下按下“ESC”键则退出游戏whileTrue:pause=Falseforeventinpygame.event.get():ifevent.type==QUIT:quitgame()#使用键盘监听检测事件实现对应按键的功能绑定elifevent.type==KEYDOWN:if(event.key==K_LEFTorevent.key==K_a)anddirection!=RIGHT:direction=LEFTelif(event.key==K_RIGHTorevent.key==K_d)anddirection!=LEFT:direction=RIGHTelif(event.key==K_UPorevent.key==K_w)anddirection!=DOWN:direction=UPelif(event.key==K_DOWNorevent.key==K_s)anddirection!=UP:direction=DOWNelifevent.key==K_ESCAPE:quitgame()elifevent.key==window.EVENT_ADD:snake_speed=snake_speed+1elifevent==window.EVENT_SUB:snake_speed=snake_speed-1#无敌模式的开启/关闭elifevent==window.EVENT_KING:ifsnake.s_king==True:snake.s_king=Falseelse:snake.s_king=Trueelifevent.key==K_SPACE:whilenotpause:foreventinpygame.event.get():ifevent.type==KEYDOWN:ifevent.key==K_SPACE:pause=notpause#调用move_snake()函数来实现贪吃蛇的移动move_snake(direction,snake_coords)ret=snake_is_alive(snake_coords)ifnotret:breaksnake_is_eat_food(snake_coords,food)screen.fill(BG_COLOR)draw_snake(screen,snake_coords)draw_food(screen,food)draw_score(screen,len(snake_coords)-5)pygame.display.update()#控制游戏帧率,这里也就是贪吃蛇的速度,因为程序绘制的速度越快贪吃蛇看起来运动地也就越快snake_speed_clock.tick(snake_speed)5.6碰撞检测碰撞检测分为三种情况(蛇与障碍物的碰撞、蛇头与蛇身之间的碰撞、蛇头吃到食物时的碰撞),而这里只对贪吃蛇存活状态产生影响的两种情况进行了定义,也就是蛇碰到障碍物和蛇碰到自己的身体,蛇吃到食物的碰撞在snake_is_eat_food()中定义。defsnake_is_alive(snake_coords):#蛇的存活状态tag=True#如果蛇头坐标中的x或是y与地图边缘的坐标相等的话就判定蛇撞墙了,此时将蛇的存货状态tag的值改为Falseifsnake_coords[HEAD]['x']==-1orsnake_coords[HEAD]['x']==map_widthorsnake_coords[HEAD]['y']==-1or\snake_coords[HEAD]['y']==map_height:tag=False#蛇自身的碰撞检测则是蛇头的坐标x,y不能与蛇身坐标中的任何一个相等forsnake_bodyinsnake_coords[1:]:ifsnake_body['x']==snake_coords[HEAD]['x']andsnake_body['y']==snake_coords[HEAD]['y']:tag=Falsereturntag6系统测试6.1开始游戏游戏开始的时候会在程序窗口内随机位置生成一个长度为5的贪吃蛇,蛇头为醒目的红色,而蛇身是绿色。同样地,会在地图内随机生成长度在1-5之间的黑色障碍物,普通模式下贪吃蛇触碰到障碍物则游戏结束。为了区分贪吃蛇和食物,食物是用圆形的形式画出,并采用蓝色。游戏开始界面截图如图6-1所示。图6-1游戏开始界面6.2生成障碍物为了增加游戏的可玩性,特别加入了生成障碍物的功能,障碍的生成位置随机,长度在1-5个小方块,以黑色填充。每当玩家吃到5个食物时,障碍物就会多一个,并且贪吃蛇的行进速度也会增加一级。当玩家需要调节速度的时候,可通过F1加速、F2减速来实现。障碍物的固定长度为5,但是在生成时碰到屏幕边缘时会停止生成,所以就会有长度1-5的障碍物出现的情况,也更加增添了游戏的丰富性。游戏生成障碍物界面截图如图6-2所示。(1) (2)图6-2生成障碍物界面6.3无敌功能考虑到贪吃蛇会随着吃到的食物变得越来越长,速度也越来越快,玩家不便控制很容易会导致游戏结束。所以特别加入了无敌功能,玩家只需按下F3键则可开启/关闭无敌模式。在无敌模式下,贪吃蛇可在地图中任意穿行,碰到障碍物和蛇身也不会死亡。游戏无敌功能界面截图如图6-3所示。(1)(2)图6-3无敌功能界面6.4系统测试程序运行良好,运行中不报错、不卡顿,本系统对电脑内存以及CPU的占用率也比较小,满足了贪吃蛇游戏随时运行的特点,且基本能在每台电脑端运行,对硬件设备要求较小。系统对CPU以及内存的占用截图如图6-4所示。图6-4CPU以及内存的占用七、优化与总结(一)优化升级设想此次贪吃蛇游戏系统的设计只是简单的实现了游戏的运行与部分功能,在试玩过市面上其他版本的贪吃蛇之后,我觉得在升级优化时可以加入关卡设置,选择不同的关卡则在游
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版智能航运物流船运输合作协议合同2篇
- 二零二五年测绘数据处理与分析合同范本3篇
- 二零二五年特种花卉种子采购合同范本3篇
- 二零二五版商业街区保安临时工劳动合同示范文本3篇
- 二零二五版生态农业基地种植分包合同3篇
- 河北省二零二五年度二手房买卖合同附带专业拆除及清理服务3篇
- 二零二五年度车辆过户手续代理合同3篇
- 二零二五版汽车制造专用管子配件供应合同3篇
- 二零二五年度酒店食堂承包服务合同范本3篇
- 二零二五年度矿业风险评估与风险管理合同2篇
- 割接方案的要点、难点及采取的相应措施
- 2025年副护士长竞聘演讲稿(3篇)
- 2025至2031年中国台式燃气灶行业投资前景及策略咨询研究报告
- 原发性肾病综合征护理
- 第三章第一节《多变的天气》说课稿2023-2024学年人教版地理七年级上册
- 2025年中国电科集团春季招聘高频重点提升(共500题)附带答案详解
- 2025年度建筑施工现场安全管理合同2篇
- 建筑垃圾回收利用标准方案
- 2024年考研英语一阅读理解80篇解析
- 福建省厦门市2023-2024学年高二上学期期末考试语文试题(解析版)
- 防火墙施工组织设计
评论
0/150
提交评论