已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科学年论文(设计)基于Java的蜘蛛纸牌游戏设计系别信息管理系专业电子信息工程届别2013班级学生姓名邓晓寒学号2013550514指导教师黄丽蓉职称二O一六年五月资料-参考摘要随着休闭游戏市场竟争的升级,尤其是樸牌类休闲游戏的巨大市场前景的吸引,许多公司都加入到棋牌游戏的竞争之列,一时之间竟争可谓惨烈传统的休闲棋牌类游游戏中,微软公司出品的躥N以鬲系列多个版本作系统中所自帚的蜘蛛紙牌游戏是玩家最为熟知的“蜘蛛纸牌,游戏是典型的两副牌游戏,游戏的目标是以最少的移动次数将十叠牌中所有最前面的牌都移走。Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称本课题将采用Java语言编写这个蜘蛛纸牌游戏程序并采用eclipse3.2编译软件来编译该游戏程序。【关键词】:休闲游戏,Java语言,编译软件AbstractBecausetherecreationalgamemarketcompeteOfgetstripe,particularlytheattractionOfthehugemarketforegroundofthechesscardrecreationalgame,manycompaniesalljointherowofthecompetitionOfchesscardgame,thatisatthattimethecompetitionbeitmaysaidhorrifying.Traditionalrecreationalchesscardswimsgamem,theMicrosoftcompanyproduceofWINDOWSseriesseveraleditionoperatesystemsinfromtakeofthespiderplayingcardsgamebethattheplayeristhemostwellknow.Spiderplayingcardsgametwotypicalcardgames,thetargetofgamewiththeminimalambulationnumberoftimeswilltenfoldallrmstanteriorcardsincardtomovewalkThegenericnameofthelanguageandJavaterraceoftheJavaprogramdesignthattheJavareleasedMayin1995bythecompanyofSunMicrosystems.ThistopicwilladoptJavalanguagetowritethisgameprocedureofthespiderplayingcardscombineadoptioneclipse3.2editandtranslatesoftwaretoeditandtranslatethatgameprocedure.Keywords:Therecreationalgame,theJavalanguage,editsandtranslatesoftware目录第1章国内外现状1第2章开发工具简介1第3章游戏程序设计需求分析2第4章44.1主要界面的实现44.2初始化纸牌及发牌操作:84.3纸牌移动放置操作:134.4回收纸牌操作:144.5帮助菜单功能的实现:154.6退出功能的实现:165.调试验证运行情况176.设计总结21第1章前言1.1国内外现状随着休闲游戏市场竞争的升级,尤其是棋牌类休闲游戏的巨大市场前景的吸引,许多公司都加入到棋牌游戏的竞争之列,一时之间竞争可谓惨烈。在市场竞争如此激烈的情况下,我们看到了休闲游戏的内容不断丰富,这无疑推动了产业的扩大和产品的成熟。新的棋牌类游戏如雨后春笋般涌出:游戏内容不断丰富,功能不断增多:游戏数量不断增多,变着花样的出新游戏;游戏平台不断完善,平台稳定性和抗压能力等显著增强;游戏可玩性不断增加等等。而传统的休闲棋牌类游游戏中,微软公司出品的认丁NDOWS系列多个版本操作系统巾所自带的蜘蛛纸牌游戏是玩家最为熟知的。现在市场上流行的大部分蜘蛛纸牌游戏包括手机游戏中的蜘蛛纸牌游戏都是以WINDOWS系列操作系统中自带的蜘蛛纸牌游戏为样本所开发的。“蜘蛛纸牌”游戏是典型的两副牌游戏,游戏的日标是以最少的移动次数将十叠牌中所有最前面的牌都移走。1.2主要工作内容本课题采用Java语言编写这个蜘蛛纸牌游戏程序。主要工作内容:搜集相关资料,准备参考资料,学习掌握开发方法、开发工其,需求分析,确定游戏程序实施方案,根据要求设计具体的流程图,编写程序,修改、完善程序,系统调试、测试,优化处理,产生产品。这次设计我们通过java语言编写,实现了游戏的难度选择、开局、重新发牌以及可视化的相关操作界面。并通过设计鼠标事件,引入线程,构建游戏程序框架完成了对该游戏的难度选择、开局、发牌、显示可执行操作的各个基本功能。第2章开发工具简介2.1java语言概述11Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Javaapplet)显示了java的魅力:跨平台动感的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet.另一方面,Java技术也不断更新。Java平台由Java拟机(JavaVirtualMachine)和Ja、a应用编程接口(ApplicationProgrammingInterface、简称API)构成Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分扩展部分在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台己经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口己经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4,最近版本为Java1.6。2.2关于ECLIPSEEchpse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。虽然大多数用户很乐于将Eclipse当作JavaIDE来使用,但Eclipse的目标不仅限于此。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Echpse的软件丿发人员,因为匕允许他们构建与Eclipse环境无縫集成的工具。由于Eclipse中的每样东西都是插件,对于给Echpse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。第3章游戏程序设计需求分析3.1游戏程序设计的任务概述1该游戏程序所要设计的功能包括:1游戏框架即游戏界而功能组件的设计包括:开局,重新发牌,设置等级的简单:单一花色,中级:双花色,高级:四花色,游戏退出,显示可行操作,关于。2游戏功能键中对关于窗体的设计:即显示游戏规则和声明。3游戏纸牌图片的载入。4游戏玩法即程序算法的开发3.2游戏程序设计的综合要求1硬件配置CPU:=Pentiurn41.6G内存:=512MB硬盘剩余空间:=2GB2软件环境操作系统:MicrosoftWindowsXP安装Sum公司的Java运行环境JRE1.5安装Java开发工具包(JDK1.5)及ECLIPSE32.3.3本游戏程序需要解决的问题1 1JAVA蜘蛛纸牌游戏程序拟采用Java(TM)2StandardEdition(5.0)作为开发平台进行程序开发。绘图事件、键盘事件都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易针致程序在运行不久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。本课题拟采用AWT提供的两种监听接口(listenerinterface):java.awt.event.MouseListener和Java.awt.event.MouseMotionListener,实现鼠标的点击事件、鼠标状态处理以及键盘监听等相关事件。JAVA蜘蛛纸牌游戏中为了美观,适用性强,需要采用外部文件引入的图片贴图。另外,针对游戏程序中是普遍存在的闪烁这种现象,拟采用用双缓冲机制作为相应的解决方案。在Java蜘蛛纸牌游戏的结束、开始、动态信息画面作为构成一个程序都是必不可少的重要部分。良好的用户界而更是吸引游戏玩家的硬指标,因此对相关的美术构图和人性化设置也需要有一定的考虑。3.4模型该游戏可分为以下各项功能模块:a.Spider.java用于实现纸牌初始化、设置游戏等级以及异常处理。b.PKCard.java用于定义纸牌的显示的各种属性以及鼠标事件的相应属性。c.SpiderMenu.java用于添加游戏下拉菜单的各个选项,包含图形用户界面的构建,组件监听的实现,以及显示可执行操作的线程。d.AePlayWava.java生成背景音乐且循环。e.SpiderMenu.class生成Spider.class,AboutDialog.class和PKCard.class该游戏的开发及相关功能的实现需要在Eclipse下建立javaproject,同时编写Spider.java、PKCard.java、SpiderMen.java、AePlayWava.java、AboutDialog.class,另外将纸牌的图片文件保存在images文件夹中,音乐文件保存在musics文件中。第4章4.1主要界面的实现游戏的菜单栏选项有游戏,帮助,关于,开局,重新发牌,简单:单一花色,中级;双花色,高级:四花色,退出,显示可行操作,其中游戏,帮助是用的JMenu类,关于,开局,重新发牌是用的JMenuItem类,简单;单一花色,中级:双花色,高级;四花色是用的JRadioButtonMenuItem类,退出,提示是用的JMenuItem类,分别是生成菜单组,生成菜单项,生成单选框以下是主菜单界面的主要代码:/生成菜单组JMenujNewGame=newJMenu(游戏);JMenujHelp=newJMenu(帮助);JMenujGrade=newJMenu(等级设置);/生成菜单项JMenuItemjItemAbout=newJMenuItem(关于);JMenuItemjItemOpen=newJMenuItem(新游戏);JMenuItemjItemPlayAgain=newJMenuItem(重新发牌);JMenuItemjItemExit=newJMenuItem(退出);JMenuItemjItemValid=newJMenuItem(提示);/生成等级设置单选框JRadioButtonMenuItemjRMItemEasy=newJRadioButtonMenuItem(简单:单一花色);JRadioButtonMenuItemjRMItemNormal=newJRadioButtonMenuItem(中级:双花色);JRadioButtonMenuItemjRMItemHard=newJRadioButtonMenuItem(高级:四花色);蜘蛛纸牌游戏的游戏界而设计包括了游戏的框架,游戏界面的背景颜色和游戏的菜单栏选项以及游戏布局管理器的设置“在游戏界面的设置中会引入SpiderMenuBar中的JMenu类,JMenuItem类,JRadioButtonMenuItem类并且在Spider运行时会调用到SplderMenuBar。/*构造函数,生成JMenuBar的图形界面*/publicSpiderMenuBar(Spiderspider)this.main=spider;ButtonGroupGgroup=newButtonGroup();Ggroup.add(jRMItemEasy);Ggroup.add(jRMItemNormal);Ggroup.add(jRMItemHard);jHelp.add(jItemAbout);this.add(jNewGame);this.add(jHelp);以下是游戏窗口界面初始化的主要代码:pane=this.getContentPane();/获得容器/设置背景颜色pane.setBackground(newColor(0,112,26);游戏布局管理器用于设置游戏界而的初始大小以及事件监听程序的引入布局开始要将布局管理器设置成为null接下来/将布局管理器设置成为nullpane.setLayout(null);clickLabel=newJLabel();/发牌区的鼠标点击响应区域clickLabel.setBounds(883,606,121,96);/设置响应区域的大小与坐标pane.add(clickLabel);/响应区域添加到容器中玩家在玩游戏时需要用鼠标对纸牌图片进行操作所以在游戏设计布局时这个工作要提前作好就是在布局管理器设置中对鼠标事件监听程序进行初始布局clickLabel.addMouseListener(newMouseAdapter()/为鼠标响应区域添加鼠标监听事件publicvoidmouseReleased(MouseEventme)/鼠标释放事件if(c60)/每10张纸牌为一叠,共6叠。如果发出的纸牌不够60Spider.this.deal();/发出一叠纸牌);添加纸牌this.initCards();/纸牌初始化this.randomCards();/随机分配纸牌this.setCardsLocation();/为纸牌设置坐标位置groundLabel=newJLabel10;/创建背景框数组,一共有10个背景框对游戏图片的摆放位置也要进行布局纸牌共需要摆放十列这里用FOR循环来进行添加,for(inti=0;i10;i+),因为纸牌是按颡序进行摆放而每一次放的位置都需要进行累加所以在不同位置的纸牌摆放可以引入intx-20,增加一个累加的位置数值变量。对于纸牌位置的大小也要进行设置(使用setBounds)groundLabelCil.setBounds(x,25,71,96)。整个纸牌的摆放就由如下代码实现:intx=20;/背景框的x坐标,y坐标相等。第一个背景框的x坐标是20for(inti=0;i10;i+)/循环创建背景框,并设置坐标大小等属性groundLabeli=newJLabel();/创建背景框groundLabeli.setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED);/为Label设置边框groundLabeli.setBounds(x,25,71,96);/设置背景框的大小与坐标x+=101;/每两列之间x的距离this.pane.add(groundLabeli);/将背景框添加到容器中this.setVisible(true);待游戏界面的菜单栏设置好后将进行游戏菜单栏的初始化,即向jNewGame组件中添加jNewGame.add(jItemOpen);jNewGame.add(jItemPlayAgain);jNewGame.add(jItemValid);jNewGame.add(jGrade);jNewGame.add(jItemExit);/添加等级设置子菜单jGrade.add(jRMItemEasy);jGrade.add(jRMItemNormal);jGrade.add(jRMItemHard);初始化菜单栏后要添加菜单栏组件的事件监听程序通过玩家鼠标在游戏界而上的左键点击来接受玩家的输入,玩家点古菜单是通过ActionListener接口来实现的,当玩家点击菜单时会触发相关的监听方法,来实现玩家想要的功能。在此游戏中需要为每一个组件添加事件监听(addActionListener)。实现如下:界面效果如图所示:菜单栏效果如图所示:3.2游戏的等级设置【8】游戏的等级选择流程图:游戏在开局运行之前玩家首先要选择游戏难度等级(对于菜单栏里的等级选项的介绍上一节己述)不同的难度等级游戏分发给玩家的牌是不一样的。选择简单等级玩家会分到只有一种花色的纸牌,选择中级等级玩家会分到两种花色的纸牌,选择高级等级玩家会分,四种花色的纸牌,如何对不同的等级分配相应种类的纸牌是该游戏设计中其中的一个关键点。上一节提到了己经为菜单栏的功能选项添加了事件监听程序下面针对等级选择的菜单项进行功能设计当玩家选择等级时程序运行过程中会将菜单栏里的等级选项的信息由Spider对象的setGrade(intgrade)调用SplderMenuBar对象中的Grade信息,如果玩家选择简单等级则调用main.setGrade(Spider.EASY),如果玩家选择中级等级则调用main.setGrade(Spider.NATURAL),如果玩家选择高级等级则调用main.setGrade(SpiderHARD);等级设计之后要让程序发给玩家相应种类的纸牌这里采用的是设置一个等级变量intn=0;如果玩家选择简单等级那么对n赋值1,如果玩家选择中级等级那么对n赋值2,如果玩家选择高级等级那么对n赋值4,即1代表简单等级一种花色,2代表中级等级两种花色,4代表高级等级四种花色在后而的代码实现中这3个数字都起着关键的作用。intn=0;/通过难度等级,为n赋值if(this.grade=Spider.EASY)n=1;elseif(this.grade=Spider.NATURAL)n=2;elsen=4;下面将说明等级设置后的纸牌的初始化的功能设计。4.2初始化纸牌及发牌操作:对游戏中纸牌赋值即根据玩家的等级选择分发相应种类的纸牌。可采用for循环。/为card赋值for(inti=1;i=8;i+)for(intj=1;j=13;j+)cards(i-1)*13+j-1=newPKCard(i%n+1)+-+j,this);newPKCard(i%n+1)+-+j,this)指的是对n的值进行引入判断等级选择。例如,当n为1时,i%n的值永远是0,所以i%n+1的值永远是1,因此n为1时,创建的card的名称是1,1-1到1-13,全是黑桃,生成8副黑桃牌。当n为2时,i%n的值为0或1,所以i%n+1的值是1或2,因此n为2时,1-1到1-13是黑桃,2-1到2-13,是红桃,生成4副黑桃牌4副红桃牌。当n为4时,与上类似。等级选择设置之后要对相应等级的纸牌分发进行初始化这里引用thisrandomCardsO,此时设置一个中间变量temp用于随机生成牌号的值的互换。for(inti=0;i5;i-)/初始化纸牌共五行for(intj=0;j=104)/如果索引值超出数组下标continue;/退出本次循环,执行外层循环pane.add(cardsn);/索引处的纸牌添加到容器cardsn.turnRear();/将纸牌转向背面cardsn.moveto(newPoint(x,y);/将纸牌放在固定的位置上table.put(newPoint(x,y),cardsn);/将纸牌的位置及相关信息存入x+=101;/每两列之间的x坐标相距101个像素x=20;/x回到起点坐标y-=5;/y向上移动5个像素右下角发牌区纸牌的初始化代码:intx=883;/将坐标定位到右下角发牌区inty=580;for(inti=0;i6;i+)/初始化右下角发牌区的纸牌,共6叠for(intj=0;j5;i-)/初始化玩牌区的纸牌,共5行for(intj=0;j=104)/如果索引值超出数组下标continue;/退出本次循环,执行外层循环pane.add(cardsn);/将索引处的纸牌添加到容器中cardsn.turnRear();/将纸牌转向背面cardsn.moveto(newPoint(x,y);/将纸牌放在固定的位置上map.put(newPoint(x,y),cardsn);/将纸牌及其坐标值存入map中x+=101;/每两列之间的x坐标相距101个像素x=20;/x坐标回到起点位置y-=5;/主坐标向上移5个像素5.5游戏运行开始游戏程序流程图进行排列有可排列的牌发牌设置等级NYN游戏完成Y图表1游戏结束游戏开始后玩家首先进行等级选择,默认为简单“简单级别”默认己选,如果玩家没有选择等级直接选择开局则游戏等级jRMItemEasy.setSelected(true),这时SpiderMenuBar对象中的main.setGrade(Sp1der.EASY);被调用flJSpider中的setGrade(intgrade)n的值为1,程序发给玩家的纸牌为单一花色。如果玩家觉得这局不想玩了想换一局可以用鼠标点击重新开始那么原有的纸牌将全部被除重新进行纸牌的初始化重新给玩家发牌,由以下代码实现:游戏的显示可行性操作的设计可以帮助玩家在不知道该如何摆放纸牌的情况下进行摆放提示如果没有可行的操作的话将不提示。这部分功能的设计需要构造线程当玩家用鼠标点古了显示可行性操作后可以连接摆放的纸牌会闪一下即一下是图片本身一下是张白色冬片首先先要判断程序给玩家的牌是否有可行性的操作具体实现下:在确定了有可行性操作之后SpiderMenuBar对象就会调用PKCard对象中的publicvoidrun()来实现提示玩家有可行性操作的功能。玩牌的过程中玩家会不停的扌由牌从大到小进行摆放一共有十列牌当其中有某列的牌被抽完后应该提示玩家该列有空位不能发牌即该列已没有牌。这一功能的设计是判断该列的牌数是否为空先取得该列最后一张牌的位置引用getLastCardLocation如果最后一张牌的位置是在该列摆放纸牌的最后一个位置则有牌可以继续发牌所以首先进行最后一张牌的位置判断,实现如下:如果最后一张牌的位置在发牌的列的位置上则可以发牌即card!一null这个时候将可以继续发牌实现如下:publicvoiddeal()this.setNA();/还原/判断10列中是否空列for(inti=0;i10;i+)if(this.getLastCardLocation(i)=null)/第i列最后一张牌的位置为空时/消息提示框JOptionPane.showMessageDialog(this,有空位不能发牌!,提示,JOptionPane.WARNING_MESSAGE);return;intx=20;for(inti=0;i10;i+)PointlastPoint=this.getLastCardLocation(i);/这张牌应“背面向上”if(c=0)/没有发过牌时,背面牌之间的距离lastPoint.y+=5;/这张牌应“正面向上”else/正面牌之间的距离lastPoint.y+=20;table.remove(cardsc+i.getLocation();cardsc+i.moveto(lastPoint);table.put(newPoint(lastPoint),cardsc+i);cardsc+i.turnFront();cardsc+i.setCanMove(true);/将组件card移动到容器中指定的顺序索引。this.pane.setComponentZOrder(cardsc+i,1);Pointpoint=newPoint(lastPoint);if(cardsc+i.getCardValue()=1)intn=cardsc+i.whichColumnAvailable(point);point.y-=240;PKCardcard=(PKCard)this.table.get(point);if(card!=null&card.isCardCanMove()this.haveFinish(n);x+=101;c+=10;4.3纸牌移动放置操作:/用鼠标拖动纸牌publicvoidmouseDragged(MouseEventarg0)if(canMove)intx=0;inty=0;Pointp=arg0.getPoint();x=p.x-point.x;y=p.y-point.y;this.moving(x,y);/*方法:放置纸牌*/publicvoidsetNextCardLocation(Pointpoint)PKCardcard=main.getNextCard(this);if(card!=null)if(point=null)card.setNextCardLocation(null);main.map.remove(card.getLocation();/先从HashMap中删除cardcard.setLocation(card.initPoint);/为card设置新的坐标main.map.put(card.initPoint,card);/再将card添加到HashMap中elsepoint=newPoint(point);point.y+=20;card.setNextCardLocation(point);point.y-=20;main.map.remove(card.getLocation();card.setLocation(point);main.map.put(card.getLocation(),card);card.initPoint=card.getLocation();4.4回收纸牌操作:回收纸牌及过关判定功能主要代码:publicvoidhaveFinish(intcolumn)Pointpoint=this.getLastCardLocation(column);PKCardcard=(PKCard)this.table.get(point);dothis.table.remove(point);card.moveto(newPoint(20+finish*10,580);/将组件移动到容器中指定的顺序索引。pane.setComponentZOrder(card,1);/将纸牌新的相关信息存入Hashtablethis.table.put(card.getLocation(),card);card.setCanMove(false);point=this.getLastCardLocation(column);if(point=null)card=null;elsecard=(PKCard)this.table.get(point);while(card!=null&card.isCardCanMove();finish+;/如果8付牌全部组合成功,则显示成功的对话框if(finish=8)JOptionPane.showMessageDialog(this,恭喜你,顺利通过!,成功,JOptionPane.PLAIN_MESSAGE);if(card!=null)card.turnFront();card.setCanMove(true);4.5帮助菜单功能的实现:主要代码如下:publicclassAboutDialogextendsJDialogJPaneljMainPane=newJPanel();JTabbedPanejTabbedPane=newJTabbedPane();privateJPaneljPanel1=newJPanel();privateJPaneljPanel2=newJPanel();privateJTextAreajt1=newJTextArea(将电脑多次分发给你的牌按照相同的花色由大至小排列起来。直到桌面上的牌全都消失。);privateJTextAreajt2=newJTextArea(游戏开发者:13
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肾气固摄相关通路研究-洞察与解读
- 2025年往年云南单招护理试题及答案
- 2025年急诊护理考试题库及答案
- 安全文化培育策略-洞察与解读
- 2025年低空经济航空旅游市场发展与运营模式报告
- 2025年低空经济「超光速」飞行器技术创新与产业协同效应报告
- 2025年土木水利考试题目及答案
- 2025年噪声聋病例考试试题及答案
- 钦州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(模拟题)
- 会务工作笔试题目及答案
- 2024年建筑艺术之美:桥梁建筑的魅力
- 医院培训课件:《成人住院患者静脉血栓栓塞症的预防护理》
- 冷库建设 投标方案(技术方案)
- 无人机技术探索
- 2024-2025学年六年级上册数学人教版期中考试试题(1-4单元)(含答案)
- 拍七令游戏课件
- 国家开放大学《Web开发基础》形考任务实验1-5参考答案
- GB/T 44329-2024混合气体的制备称量法
- 《进一步规范管理燃煤自备电厂工作方案》发改体改〔2021〕1624号
- 4039话机简单使用说明
- 基于Qt的打砖块游戏开发
评论
0/150
提交评论