课程设计实验报告.docx_第1页
课程设计实验报告.docx_第2页
课程设计实验报告.docx_第3页
课程设计实验报告.docx_第4页
课程设计实验报告.docx_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

课程设计实验报告 计算机科学与技术 目录:1.简述实验要求2.简述实验过程3.“你画我猜”程序框架_4.功能介绍_5.细节展示_6.总结陈词_1.简述实验要求 要求利用Java实现支持2-4人联机的Draw Something,支持如下基本流程:1、 游戏创建者在参与者进入后选择开始游戏。2、 系统读取数据库,给参与者50个汉字,包含了该组题所有的答案,该组题分若干轮,总计时3分钟。每轮:a) 给出创建者一个词语(成语、单词),开始20秒计时b) 创建者根据词语利用不同粗细、颜色的画笔以及橡皮画图 c) 图画即时传递到其他参与者的客户端,其他参与者根据当前画图内容写出答案。最先猜测中的玩家与创建者共同得1分,如果都没有猜中,不得分d) 猜中后,或20秒倒计时结束后,或创建者放弃后,汉字集合中减掉该组词语,进入下一轮要求提供词语库建库功能,支持新词语录入(替换老词语)2.简述实验过程 在7个礼拜之后,我终于在老师和同学们的帮助下基本上圆满完成了课程设计实验。一开始,我先上网找了各种你画我猜的小游戏,看那些游戏都有什么功能,都是怎么进行游戏的,并对我自己将要设计的游戏所需要的功能进行了一个初步的规划。然后我开始观看马士兵的各种视频教程,并从图书馆借来书本学习实现界面、线程、网络、数据库等的方法,结合老师上课所讲的知识和实验老师的指导,开始对我的代码的框架进行整体性的构思,如要建哪些包,每个包里要包含什么。接下来,我综合了各方面的意见,为了让界面更加美观和炫酷,也为了让自己更熟悉一些新的内容,我开始学习Javafx(专用来做富客户端)的基本知识并自己尝试练习。为最后的编写和修改Bug保证了良好的基础。 在真正写代码的时候,遇到了很多一开始学习时并没有在意的问题。很多问题,哪怕是小小的变量定义错了地方,都会让整个程序崩溃,控制台一直报错。这时候就必须耐着性子一点一点修改,在这个过程中我或者借助网络搜索,或者与同学沟通,或者请教其他明白的同学和学长,但更多的是自己不懈地尝试与摸索,最终解决了那些问题,学得了更多的东西。实践果然是掌握一项技能的最好办法。 整个项目编写中不时有挫败感和沮丧感,但更多的是欣喜感和成就感,每次改完一个大的Bug或是实现了一个新的功能都会激动地手舞足蹈,也正是这种快乐,促使我继续深入学习。3.“你画我猜”程序框架 正式开始游戏前的准备:将用户名和密码写入注册 成功登陆进行选择Join/New room成功登陆,返回分数和局数判断密码是否正确判断用户是否存在登陆登陆界面login.Login开始程序application.main数据库:userinfomationThread:计时、取词serversocketsocket聊天开始游戏:换词New room:含Server的Client画画数据库读词聊天/猜词SocketJoin:不含Server的Client画画传出去自己画板处于实用性考虑,个人觉得要开始游戏之前一定要先开服务器的做法很不人性化,所以我的main方法只有一个,然后是登陆与注册界面,然后是一个选择新建房间还是加入游戏,各种组织关系如下图所示:4.功能介绍开始界面:可以选择登陆(enter)还是注册,注册成功会有红色小字提醒,登陆时不存在该用户和密码错误也会有红色小字提醒。选择界面,可以选择是新建一个房间还是加入其他人的房间1.计时器,小人人在20秒内从最左边跑到最右边,到最右边时跳出警告;2.挑选颜色和粗细,还有橡皮和一键清空;3.出现这是客户的第几轮玩游戏,这次的词语是什么(只有开房间的人有词语)和客户间的聊天信息;4换词语,框内有暗示应该输入什么的浅色词语;5.画板,用户在此画画;下面是我的数据库里的两张表格的内容,我用的是MYSQL为了演示的时候可以让老师更好的看出我数据库内的内容,我特地安装了Mysql workbench并学习了它的使用words:userinfomation:5.细节展示在编写的时候我特地加入了一些小小的人性化的细节,这些功能的实现将使客户更加便利地玩游戏:1.橡皮擦也可以调节大小:这将使得用户可以方便地使用橡皮擦,因为万一只是想做一点点小小的修改而又不希望动到其他的东西,这将很有用;2.一键清空:Clear键的设置可以让用户一键清空他自己所画的内容,因为万一想全部重新画,用橡皮擦,就算是调到最大大小,对于只有很短时间的用户来说,也是不够便捷的,于是我加入了一键清空;3.所有的确定键都有两种办法,客户既可以敲击回车又可以点确定键,这样方便了不同习惯的用户4.记录轮数:每个用户都不希望玩自己已经玩过的词语,所以,每个人都有一个专门记录轮数的属性,每次玩都会加一,这样可以保证每次都可以玩到不一样的词语;5.将客户端内嵌入开房间的人的程序里,个人觉得要开一个游戏还要专门开一个客户端很不合理,所以就将客户端嵌入了开房间的客户的程序里。所以这个游戏开一个房间即一个客户端,所以可以同时有很多人,很多房间。6.总结陈词这次的课程设计让我感概颇深,不单单只是因为独立编写了一个较为大型的程序(对我目前的水平来说)的喜悦感,更是因为通过这次课程设计让我学到了很多东西,也巩固了上学期和这学期老师课堂上讲的内容,深刻体会到了实践出真知的道理:1.发现了写程序之前对总体的构思的重要性,一开始我并没有整体构思的想法,写程序都是想到哪里写到哪里,后来有一次决定先写将要用到的类,该类所应该包含的方法,和其他类的联系,整体写下来后再一个一个地实现,感觉比无章法地写程序好多了;2.写每个类的时候都应该写一个测试类,单独测试这个类的实用性和有无Bug,这样挨个的测试之后再合起来时可以减少很多的Bug的麻烦,否则一起测试出现了问题在哪里都不知道,而且改起来很容易丧失信心;3.每次有进步都应该保存,修改Bug的时候很容易把原来正确的改错,所以每次版本更新都应该保存,防止回不去。保存时只需要关闭这个Project,再新建一个并引入之前的那个就可以;4.在这次的课程设计中学到了很

温馨提示

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

评论

0/150

提交评论