首页 > 其他分享 >IEMS5731 Software Design and Development

IEMS5731 Software Design and Development

时间:2024-11-13 17:31:57浏览次数:1  
标签:Development java color project game Design IEMS5731 your panel

IEMS5731 Software Design and Development (Fall 2024)

Individual Course Project Specification - MasterMind Expected time: 10 hours

Learning outcomes:

  1. To practise GUI buttons, labels and panels in Java.
  2. To experience the MVC pattern via a GUI MasterMind.

Instructions:

  1. Do your own work. You are welcome to discuss the problems with your fellowclassmates. Sharing ideas is great, and do write your own explanations.
  1. If you use help from the AI tools, e.g. ChatGPT, write clearly how much you obtain helpfrom the AI tools. No marks will be taken away for using any AI tools with a cleardeclaration.All work should be submitted onto the blackboard before the due date.
  1. You are advised to submit a compressed file (.zip/.rar) containing your project. Noreports are required in the individual course project.
  1. You only need to submit one project, containing all your work (completed tasks).
  2. No submissions for the individual course project will result in failing the course.
  3. If your work is not compilable or executable, you will receive zero marks.
  4. Due date: 27th November, 2024 (Wednesday) 23:59

Summary of the Tasks: You are advised to implement the MasterMind based on the steps below (capped by 100%).

  1. Basic information (10%)
  2. Background of the panel (10%)
  3. Text color and text style (20%)
  4. Pop-up game ended panel (20%)
  5. JUnit tests on SimpleButton.java (20%)
  6. Image icons and pegs (20%)
  7. More types of pegs (20%)

1Summary of the Project Skeleton:

In the provided project skeleton, it is a complete MasterMind game written by Peter Mitchell(source: https://github.com/Squirrelbear/MasterMind/tree/main/MasterMind/src). It meansthat your project is a compilable and executable one. If your submitted work is notcompilable, or is not executable, you will not receive any scores from the individual courseproject.You need to use the provided skeleton. If you rewrite the wholeMasterMind, or puteverything into a big class, you will not receive any scores from the individualcourse project.There are eight classes in this project skeleton. MasterMind.java is the main program.代写IEMS5731 Software Design and Development SimpleButton.java creates the color pegs. The image below shows four  buttonpegs). If the pegs are on the lowest level, clicking the peg changes its color. The order ofe color change is: white → black → red → yellow → blue → green → white. If thepegs arenot on the lowest level, the color of the pegs are fixed and unchangeable.

PuzzleCombination.java is a collection of four pegs, so the image above is a puzzlecombination panel.SimpleTextButton.java creates the submit button.ResultPanel.java shows a pair of strings, including the hints on the number of combinationpositions with correct colour and position.AttemptPanel.java creates a single line of game trial, including the attempt number, puzzlecombination panel and result panel.2GameEndedPanel.java represents an overlay dialogue that shows a victory or lossmessage when the game has ended. The player loses after making 12 incorrect trials.Correct answer is displayed on the game ended panel as well. After clicking “R”, thegamewill generate a new answer and restart the game.

GamePanel.java controls the game states. It includes:

  • Playing: allows mouse input to play the game.
  • GameWon: When a correct combination is entered and submit is hit.
  • GameLost: When the maximum number of attempts has been made.

Task 1: Basic information (10%) In this task, you should include all basic components of your project, including:

  • The submitted project can be executed on eclipse without any errors.
  • Your name and student ID are filled in the comment of the MasterMind.java.
  • The declaration of academic honesty and use of AI tools is filled in the comment othe MasterMind.java.
  • The title of the application is updated to your student ID.

3Task 2: Background of the panel (10%) In this task, you are going to update the background of the panel:

  • If your student ID is an odd number, the background color is changed to pale bro(Wooden style)f your student ID is an even number, the background color is changed to light beige(Ocean style)
  • : You can look for the method setBackground() in the constructor ofGamePanel.java.

4Task 3: Text color and text style (20%) In this task, you are going to update the text color and text style:

  • Text within the same attempt panel should have the same text color (includingattempt number and hint strings).
  • Different attempt numbers should have different text colors.
  • The two hint strings in the same attempt panel should have different text styles.
  • Hint: focus on AttemptPanel.java and ResultPanel.java for this task.

5Task 4: Pop-up game ended panel (20%) In this task, you are updating the implementation of the game ended panel from a drawingon the game panel to a drawing on a pop-up panel.In addition, add a restartbutton (JButton) on the pop-up panel so that:

After clicking the restart button, the game is reset with a new solution.

  • The original mechanism (clicking “R” on the keyboard) does not work anymore.

Task 5: JUnit tests on SimpleButton.java (20%)In this task, you are going to perform unit testing on SimpleButton.java:

Create a new JUnit class called SimpleButtonTest.java.

  • Design and write a test case for the method isClicked(int, int).
  • Design and write another test case for the method getActionCode().
  • Use 3A principle in writing the test cases.
  • Explain your test cases using comments.
  • Give meaningful method names to the test cases.

6Task 6: Image icons and pegs (20%) In this task, you are going to use the image button to replace the color button for the pegs.

  • Let n be the last two digits of your student ID, for example, if your student ID is1155123456, n = 56.n is divisible by 3, then use gemstone icons to replace the buttons, for example,emerald, pearl, ruby, … etc.When n is divided by 3, the remainder is 1, then use fruit icons to replace the colorbuttons, for example, apple, orange, banana, … etc.When n is divided by 3, the remainder is 2, then use flower icons to replace the color, for example, sunflower, lotus, lily, … etc.The type of pegs is updated from {white → black → red → yellow → blue → green →white} to {white → black → red → yellow → blue → green → purple → white}If you completed task 6, you can use the image icon to replace the purple peg.
  •  the SimpleButton.java (model and view), you may need to update theGamePanel.java (controller).
  • Reading others' code is tough. And you are going to change others’ code.< End of Specification 

标签:Development,java,color,project,game,Design,IEMS5731,your,panel
From: https://www.cnblogs.com/comp9321/p/18543644

相关文章

  • 【Axure】Ant Design 5.0 元件库 - AxureMost
    【Axure】AntDesign5.0元件库-AxureMostAxureMost官网【Axure】AntDesign5.0元件库-AxureMost【Axure】AntDesign组件库/元件库AntDesign是一个广泛使用的组件库,它基于AntDesign设计语言,提供了丰富的样式和组件来构建一致、高效且易于访问的用户界面。......
  • 【Axure】Arco Design Mobile组件库 - AxureMost
    【Axure】ArcoDesignMobile组件库-AxureMostAxureMost官网【Axure】ArcoDesignMobile组件库-AxureMost【Axure】ArcoDesignMobile组件库/元件库ArcoDesignMobile组件库提供了丰富的基础组件,这些组件设计时考虑了移动设备的特性和用户交互习惯,确保了界面的一......
  • CHC5028 Software Development
    CHC5028SoftwareDevelopmentwithC/C++CourseworkImportantDates Background“Textadventures”,nowcalled“interactivefiction”,wereamongthefirsttypeofcomputergameeverproduced.Thesegameshavenographics;theplayerreadsthestoryof......
  • 使用开源的低代码可视化表单设计器组件FcDesigner帮你实现低代码表单
    开源项目FcDesigner是基于Vue实现的低代码可视化表单设计器组件。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。并广泛应用于在政务系统、OA系统、ERP系统、电商系统、流程管理等领域。源码地址:Github|Gitee|文档本项目采用Vue......
  • EEEE4116 Design for a 2-Level Inverter
    AdvancedControl(EEEE4116)Coursework1ModellingandAdvancedControllerDesignfora2-LevelGrid-FeedingInverterInthisassignmentyouwillbringtogetheryourskillsofstate-spaceequationdevelopmentandcontrollerdesigntocontrolagrid-tied......
  • Design Space Exploration
    DesignSpaceExplorationSolutionstoprojectassignmentsaretobedevelopedwithinyourgroup,withoutcollaborationwithothergroups.However,astheprojectsinthisclassrequiretheuseofsoftwaretoolsandframeworksthatstudentsmayhaveuneve......
  • Cadence IC617为什么design库被识别成了Technology库,如何转换
    在我们设计电路过程中,经常建立工程,在本次设计电路过程中,得到别人给我的电路之后,一打开,电路不好使,元件库文件识别错了。相关联文件,才发现该文件已经被识别成Technology库了。这怎么办?这个问题好解决,你只要打开文件,看到文件下面有三个这样的文档,如下图。然后把图中画圈的位置......
  • 【Axure】Arco Design组件库 - AxureMost
    【Axure】ArcoDesign组件库-AxureMostAxureMost官网【Axure】ArcoDesign组件库-AxureMost【Axure】ArcoDesign组件库/元件库ArcoDesign组件库旨在提供一套高效、美观的企业级设计解决方案。它包含丰富的组件和样式,覆盖了多种交互场景。以下是ArcoDesign组件库......
  • TDesign了解及使用
    文章目录1、概述2、快速开始2.1使用npm安装2.2通过浏览器引入安装2.3、使用3、简单案例3.1路由创建3.2、页面创建3.3、Table组件3.4、序号展示3.5、图片展示及预览3.6、性别字段处理1、概述TDesign是腾讯推出的设计系统,旨在提供一致的设计语言和视觉......
  • MudBlazor:基于Material Design风格开源且强大的Blazor组件库
    项目介绍MudBlazor是一个基于MaterialDesign风格开源、免费(MITLicense)、功能强大的Blazor组件框架,注重易用性和清晰的结构。它非常适合想要快速构建Web应用程序的.NET开发人员,无需费力地处理CSS和JavaScript。由于MudBlazor完全使用C#编写,因此你可以自由地调整、修复或扩......