javaSwing猜单词游戏GUI加控制台CLI
系统介绍 :
(资料图片仅供参考)
环境要求:
1、java
2、swing
3、控制台
4、io
对于本程序,您将用Java制作两个版本的游戏Wordle。一个版本将具有图形用户界面(GUI),而另一个版本则具有命令行界面(CLI)。GUI版本将根据模型-视图-控制器(mvc)的原理构建,CLI版本将使用相同的模型。从现在起,这两个版本将被称为GUI版本和CLI版本。
玩家必须在六次或更少的尝试中猜出一个五个字母的单词。一旦输入单词(并按下回车键),每个字母瓦片的背景颜色将变为深灰色,表示在所需单词中找不到字母,金色表示在单词中找到字母但不在所指示的位置,绿色表示在该位置找到字母;一个字母在一个单词中可以出现不止一次。输入的单词必须是有效的英语单词。一旦猜到了单词,游戏就会停止。一旦玩家进行了六次尝试,游戏也将停止。
功能要求:
1. 对于GUI版本,不需要显示确认消息来解释玩家已经赢了(猜对了单词)或输了(猜错了),因为从最后一行填充的方块颜色中可以清楚地看到游戏状态。对于CLI版本,需要一条确认消息,指示玩家已获胜或失败。
2. 程序的行为应由三个标志控制。如果设置了一个标志,则如果单词不在已知单词列表中,则应显示一条错误消息;这将不算是一次尝试。如果设置了另一个标志,则应显示要猜测的单词以进行测试。如果设置了第三个标志,则应使单词被随机选择。如果未设置,该单词将被固定。标志应该在模型中,它们在运行时没有必要是可变的。
3. 模型应该加载一个五个字母的单词列表,从中可以选择目标单词,以及一个更大的五个字母单词列表,这些单词不是目标单词,但是有效的猜测。列表应该是从固定位置加载的两个独立文件,并提供给您;换句话说,没有必要询问用户文件存储在哪里。
4. GUI版本的程序应响应字母表中每个字母的按键、退格(删除非空行上最后键入的字母)和回车(指示当前行上的单词是用户的猜测)。这可以通过文本字段或其他方式来完成。GUI应该显示一个键盘,如果发现字母没有出现在单词中,则字母显示为深灰色;如果找到了字母的正确位置,则显示为绿色;如果猜到了字母,但从未在正确位置显示为金色。请参阅以下示例;此功能类似于网站上显示的GUI。CLI应通过按字母顺序列出四个独立类别中的字母来指示可用的字母。
5. GUI版本应该有一个按钮来请求新游戏,只有在做出第一个有效猜测后才能启用。对于CLI版本,这不是必需的。
注意事项:
1. GUI版本和CLI版本应该是两个独立的程序,即应该有两个文件,每个文件中都有一个主方法,运行哪个文件决定激活哪个版本。
2. GUI版本必须根据MVC的原则构建,如下所述。由于这一要求,属于视图但放置在模型中的代码通常不会计入视图的标记。类似的规则也适用于其他错位的代码。
3. CLI版本将直接使用GUI版本的Model部分,而不使用View或Controller;也不应该定义新的View或Controller。
4. 代码必须用断言、单元测试、类图和注释进行记录,如下所述。该模型还应该有一个常数来指示允许的猜测次数。
评分标准:
1. 模型。这应该有一个设计为方便Controller、View和JUnit类使用的接口,没有多余的公共方法,没有对两个类的引用,也不包含GUI代码。它可能由几个类组成,但必须有一个名为Model或类似的类来提供接口,并且这个类应该扩展Observable。还应在模型中进行文件读取。
2. 控制器。这应该只向模型转发有效的请求,必要时查询模型以确定请求是否有效,并且还必须启用/禁用功能需求中如上所述的按钮。它必须没有GUI代码,尽管它可能会向视图发送消息。
3. 使用Swing框架的GUI版本视图。它应该实现Observer,因此有一个在Model更改时调用的更新方法。
4. 带有断言的模型规范。这应该包括类的不变量以及模型中每个公共方法的前置和后置条件。
5. JUnit中模型的单元测试。应该有三个测试,彼此明显不同。你应该在评论中解释你正在测试的情况。您应该对模型使用write(然后调用)方法,将其设置为测试所需的状态。通过读取单元测试的代码,应该可以很容易地看到模型被设置为什么状态。
6. 注意添加注释。同时按照代码规范来书写代码!这部分占10分!
类图。这应该显示Model、View和Controller是如何相互关联的,以及它们如何与Observable等库类交互。
开始游戏
“
功能介绍
”
胜利
控制台端
都在图里
发送编号获取项目
202304271348