个人项目(任务2):新猜数字

OutOfMemory 2021-11-04 08:36:13

个人项目(任务2):新猜数字

项目内容
所属课程 软件工程 https://bbs.csdn.net/forums/nsicdse?category=0&typeId=16867
作业简介开发新猜数字小游戏,使用Git进行源码管理,使用单元测试工具JUnit对各个方法进行单元测试
作业目的熟悉Git、码云、JUnit基本使用方法,单元测试设计以及回顾Java的基本语法
截止时间2021年11月10日23:59
参考资料见下文

在个人项目(任务1)我们已经安装好了JDK、IDE、Git,并学会了如何使用Git和码云开发一个小游戏。本次作业我们将在此基础上开发一个新的猜数字小游戏,同时练习使用JUnit来进行单元测试已保证程序的质量。

一、JUnit下载安装与配置

  1. Eclipse中使用JUnit教程

  2. IDEA中使用JUnit

  3. 单元测试用例设计方法

二、实现游戏

  1. 新猜数字游戏 https://v.youku.com/v_show/id_XNDkxNzE5NTA0MA==.html ,视频密码:beiruanjsj2020

  2. 在IDE中创建项目 NGuessNumber

  3. 使用Git对项目进行初始化

    • 进入 NGuessNumber 项目所在文件夹
    • 使用 git init . 创建代码仓库
    • 创建 .gitignore 文件
    • 将项目配置文件名添加到 .gitignore 中使得Git不会追踪这些项目配置文件。如果使用的IDE是Eclipse,配置文件可能有:.settings,.classpath,.project。如果使用的IDE是IDEA,配置文件可能有:.idea,*.iml
  4. 在项目中创建 NGuessNumber.java 程序文件,并使用 git add 命令使Git开始追踪该文件,随后使用 git commit命令提交新增的 NGuessNumber.java 文件。注意提交代码时的说明信息简要准确

  5. 在项目中配置好JUnit后,创建NGuessNumberTest.java程序文件,并使用git add 命令使Git开始追踪该文件,随后使用 git commit 命令提交新增的 NGuessNumberTest.java 文件。此文件用于撰写测试代码。

  6. 在码云中创建远程仓库,仓库名称自拟

  7. 在本地仓库中使用 git remote add 命令将远程仓库信息添加到本地

  8. 在 NGuessNumber.java 中创建 generateAnswer 方法,它的功能是:随机生成4个0-9之间的不重复的整型数作为答案并返回的功能。注意:

  9. 在 NGuessNumberTest.java 中创建创建 generateAnswerTest 方法,该方法调用 generateAnswer 方法生成答案数字。请使用断言(如: assertEquals)检查答案数字数量是否为4,其中是否无重复数字,以及数字是否都在0-9之间。

  10. 右键点击 NGuessNumberTest.java ,选择 Run As --> JUnit Test。如果运行结果显示全部测试均通过,使用 git commit 命令将 NGuessNumber.java 和 NGuessNumberTest.java 均提交到代码仓库。若测试结果显示有未通过的测试,根据测试提示,检查哪项未通过,以此诊断 NGuessNumber.java中的generateAnswer方法何处有错误,修改错误后再次重新测试直至通过测试后提交代码至仓库。注意:要保证测试代码正确,否则即使generateAnswer方法正确,你也无法测试出它是正确的。

  11. 在 NGuessNumber.java 中创建 getPlayerInput方法,它的功能是:接收玩家输入的4个数字并返回。

  12. 在 NGuessNumberTest.java 中创建getPlayerInputTest 方法,该方法调用 getPlayerInput方法获取用户输入的数字。请使用断言检查玩家猜测的数字数量是否为4。

  13. 参照第10步,执行单元测试代码,若通过则提交到仓库,若不通过,则找到问题并修复后再次测试,直到测试通过后将代码提交到仓库。

  14. 在 NGuessNumber.java 中创建 compareGuessAnswer方法,它的功能是:比较玩家猜测和答案后返回提示信息。

  15. 对compareGuessAnswer方法进行测试,测试用例自行设计,测试通过后使用git commit命令将代码提交到仓库。

  16. 实现isWin方法,它的功能是:根据提示信息中A的数量判断玩家是否获胜,如果获胜返回true,否则返回false。

  17. 对isWin进行测试,测试用例自行设计,测试通过后将相应代码提交到仓库。

  18. 在NGuessNumber.java的主方法中调用生成答案方法,生成一个答案。创建一个单次游戏循环,在这个循环中,玩家猜测数字,计算机对比答案和玩家猜测,然后判断玩家是否获胜,如果没有获胜,打印提示信息后,再次接收玩家猜测。若获胜,打印获胜信息,循环结束。

  19. 经手动运行测试正常后,将代码提交到本地仓库。

  20. 在上一步的循环外再加一层循环用以判断玩家是否决定再玩一局游戏。经手动测试正确后,将代码提交到本地仓库。

  21. 使用git push将本地仓库代码推送到远程仓库,检查远程仓库是否成功更新。

注意:我们也可以在IDE中集成源码管理工具,如:Git,下面是在IDE中集成源码管理工具的教程,感兴趣的同学可以尝试:

拓展任务:

如果你很轻松的就完成如上任务,可以尝试如下任务:

  1. 为游戏添加猜测次数限制,超过该次数玩家还没猜对,显示答案,游戏结束,询问玩家是否再来一局
  2. 为游戏添加GUI界面,使得玩家可以通过可视化界面玩儿这个游戏
  3. 将游戏打包为EXE文件并在码云创建一个发行版,使得自己的小伙伴可以下载玩耍

三、撰写博客

博客请使用Markdown语法撰写,教程如下: Markdown教程 https://www.runoob.com/markdown/md-tutorial.html

  1. 按照如下格式在博客开头给出作业信息

    项目内容
    所属课程 课程名称 https://courselink.com/
    作业简介作业简介描述
    作业要求 作业名称及链接 https://homeworkcriteria.com/
    作业目的作业目的描述
    参考资料 参考资料名称及链接 http://reference.com/
    学生姓名此处填写姓名
    代码仓库 仓库名称及链接 http://repository.com/
  2. 描述完成任务过程中遇到的困难、问题以及这些困难和问题哪些已经解决了,哪些尚未解决,已经解决的困难和问题是如何解决的

  3. 描述通过这个作业学习到了什么

  4. 如果还有其他问题可以在此处提出

四、评分标准

本次作业满分42分。

  1. 作业若违反 诚信守则 https://docs.qq.com/doc/DSnladnN2Y0xMaldn?createTS=1602816788355&templateId=31227&new=1 ,如雷同等,倒扣本次作业成绩,根据如下原则处理:

    • 第一次,班级课程空间公示,可向教师提出申诉
    • 第二次,系部公示,课程期末考试判为禁考,可向教师申诉
    • 第三次,系部公示,课程期末考试判为作弊,禁止参加课程补考,可向教师提出申诉
  2. 有如下情况,一律0分:

    • 超过截止时间未提交作业
    • 没有代码仓库
    • 代码仓库为空(没有提交代码)
    • 代码仓库中的内容和作业无关
    • 代码仓库中的代码无法运行
    • 代码仓库中的代码为一次性提交的结果
  3. 详细评分标准

    评分项目评分标准
    生成答案功能正确正确得3分
    接收用户输入功能正确正确得1分
    比较答案和玩家猜测后给反馈功能正确正确得5分,否则不得分
    检测玩家是否获胜功能正确正确得2分,否则不得分
    可根据玩家选择重玩一局或结束游戏功能正确正确得1分,否则不得分
    生成答案功能测试代码正确正确得3分
    接收用户输入功能正确测试代码正确正确得1分
    比较答案和玩家猜测后给反馈功能测试代码正确根据有效测试用例数量给分,1个1分,最多不超过5分
    检测玩家是否获胜功能测试正确根据有效测试用例给分,1个1分,最多不超过2分
    仓库中的提交记录数量3次得1分,4次得2分,5次以上得3分,6次得4分,7次得5分
    完成博客撰写任务2有即得1分
    完成博客撰写任务3有即得1分
    完成博客撰写任务4有即得1分
    为游戏添加了猜测次数限制功能该功能存在且可以正常使用得3分
    为游戏添加了界面可以通过界面玩游戏得5分
    在码云仓库中创建了发行版可以从码云仓库下载发行版3分
...全文
4429 回复 打赏 收藏 举报
写回复
用AI写文章
0人已提交
完成率0%
暂无数据
回复
切换为时间正序
请发表友善的回复…
发表回复

283

社区成员

发帖
与我相关
我的任务
社区描述
沈阳北软信息职业技术学院计算机系软件工程课程教学、学习、交流社区。
c++pythonc语言 高校
社区管理员
  • 北软夏老师
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

各位同学,

 

你好,欢迎加入沈阳北软软件工程CSDN社区!此社区用于开展软件工程教学活动以及为各位同学提供软件工程相关话题交流平台。加入社区后请完成如下任务:

1. 更改社区签名(注意,不是昵称)为“年级+专业+方向+姓名”,如:19软件安卓张三,19计应WEB前端李四,19计应JavaWeb王五。

 

期待社区伴你成长!

 

2021.08.24

试试用AI创作助手写篇文章吧