Skip to content

Latest commit

 

History

History
63 lines (63 loc) · 7.95 KB

assignmentDescription.md

File metadata and controls

63 lines (63 loc) · 7.95 KB

Final Project

Due April 24th 11:59pm

150 points







Project Requirements

JavaFX GUI Application that utilizes the following JavaFX features and Java Programming Methods:

 

At least 2 types JavaFX Panes organized well, to give your GUI a nice appearance and usability. (30 points)

At least 6 types of JavaFX Nodes, i.e. Buttons, TextField, Labels, CheckBoxes, RadioButtons, ImageView, etc. (30 points)

Animation i.e. Timeline or FadeTransition (15 points)

Events (20 points)

Bindings (20 points)

Listeners (20 points)

Server-Client, or Client-Client connectivity (15 points)



Project Suggestions

Three project suggestions are provided below.  You are allowed to choose a different project of your own, but you must discuss and approve it with me.  If you do choose your own project, it must meet all the project requirements above, and it must also be a similar size and difficulty level to the projects suggested below.



Chess Game

This project implements a Chess game that is playable between two separate computers.  In other words, the application should start up, and ask for the ip address and port of another player on another computer.  It must also meet the following requirements:

 

If you add the logic to only allow legal moves for all pieces on the chess board, implement the following:

  • Detect a checkmate move, and display the winner somewhere on the GUI.
  • Detect a check move, and display this on the GUI.
  • Detect when one piece has taken another piece, and display it somewhere on the GUI.
  • Your GUI needs a chat feature, so the users can chat with each other.  This satisfies the Client-Client connectivity above

 

If you do NOT add the logic to only allow legal moves for all pieces on the chess board, implement the following:

  • Add a button (or another method) to communicate to the other user that you have put them in check or check mate.
  • You must add logic the only allows your King to make legal moves, so when the King is put in check mate, they cannot run away.  They have to die, and the winner is displayed somewhere in the GUI.
  • Detect when one piece has taken another piece, and display it somewhere on the GUI.
  • Your GUI needs a chat feature, so the users can chat with each other.  This satisfies the Client-Client connectivity above

 

Sudoku Game

This project implements a Sudoku game played by a single user.  The application should start up and load sudoku.txt boards that I will provide for you.  You are not required to generate possible sudoku boards from scratch. It must also implement the following requirements:

  • The program should load a sudoku.txt file into your GUI and the default color for the numbers should be black.
  • The GUI should have “hint” button which should solve the puzzle provided in sudoku.txt.  It should also color any incorrect numbers that the user has entered in red, and also add two new correct numbers to the sudoku board in the color blue.
  • The GUI should automatically detect when the puzzle has been solved and display this on the GUI.  Possibly using an animation to satisfy the project requirement listed above.
  • I suggest a chatting feature somewhere in the GUI to meet the Client-Server or Client-Client requirement above,  but I am open if you want to do something else to meet this requirement. The GUI can chat another Sudoku game, or a Java program console.


Sudoku boards can be found hereLinks to an external site.

Web Browser GUI

This project implements a Web Browser that allows the user to browse the internet.  The application should start up and automatically load the page: https://cs.usu.edu/ (Links to an external site.) .  It must implement the following requirements:

  • Have an address bar at the top of the GUI, a user can type an address, to load a website.
  • Successfully allow a user to browse around a website, redirecting correctly to all the links selected.
  • Add the functionality to store favorite links in a dropdown menu that users can add their favorite sites to.
  • When a user selects a site in the favorite links dropdown it should automatically load in the browser.
  • Add a “back” button that allows the user to go back to the previously visited website.  It only needs to go back one site (not store multiple sites).
  • Note: This project does not need to add a chat feature, since the project itself already fulfills the Client-Server requirement.
  • You are allowed to use the WebView class javafx.scene.web.WebView.  
  • Have multiple tabs in the Web Browser that store multiple websites.
  • Add functionality to save the bookmarks to a file, so when I restart your GUI the bookmarks will reload in to the Web Browser Favorites dropdown menu.
  • When the user types a non-url into the address bar, automatically detect its not a url and perform a google search with that string