29 Apr Dungeon GUI Using Java
At Programming Homework Tutors, we believe in providing our students with practical, real-world examples of how to apply the concepts they learn in class. That’s why we’ve developed a variety of sample projects to help you see how our courses can be used to create impactful solutions in your field of study.
Description
In this version of the Dungeon game, the part of the program that interfaces with the user, the view, is to be replaced with an interactive graphical user interface (GUI). In general the GUI would:
expose all game settings through menus. These settings include maze size, number of walls, number of players (1 or 2), and difficulty (specified as number of monsters).
provide an option for restarting the game as a new game or as the same game (with the same random seed resulting in the same maze).
allow the maze to be bigger than the area allocated to it on the screen providing the ability to scroll the view.
allow the player to move through the maze using a mouse click in addition to the keyboard arrow keys. A click on an invalid space in the game would not advance the game.
provide an option for two-players where players take turns making moves or shooting arrows as they race to be the first to kill the Otyugh at the exit. In this mode, the rules of the game remain the same as before. The game ends when one player has killed the Otyugh that is at the exit, or both players have died. Arrows shot by the players miraculously miss the other player.
provide a clear indication of the results of each action a player takes as well as whose turn it is.
What to do
Design and add an optional graphical user interface view for your implementation of the Dungeon (your implementation should still be able to operate in text-based mode). While the choices about layout and behavior are up to you, your graphical user interface should have all of the features of the modern implementation listed above and obey the following constraints:
You must use Java Swing to build your graphical user interface. You may find the GridLayout
The view should begin with a mostly blank screen and display only the pieces of the maze that have been revealed by the user’s exploration of the caves and tunnels. In two-player mode, the areas explored by both players should be visible.
If the game is in two player mode, the view must identify which player is currently taking their turn.
Each user interaction or user input must be reasonably user-friendly (e.g. making the user type the path to a file is poor UI design). We do not expect snazzy, sophisticated user-friendly programs. Our standard is: can a user unfamiliar with your code and technical documentation operate the program correctly without reading your code and technical documentation?
To help you with this assignment, we are are providing the following archive of graphical components.
View and Controller
Carefully design the interaction between a view and a controller, and formalize the interactions with view and controller interfaces. You may design a single controller that runs the text-based game, as well as the graphical user interface. Different controllers for different views are also possible if the views are very different from each other. However be mindful of the MVC principles and separation between the model, view and controller. When designing, always ask: “can I change one part with no/minimal changes to the others?”
Extra Credit
Provide an alternative theme for the Dungeon game as an alternative in your implementation (in addition to the original dungeon theme). An alternative theme would have the same basic game play mechanisms but would have a different look-and-feel, a different goal, and different “obstacles”. For example, in the mazes assignment we used thieves and gold as “obstacles”. Replacing the images used in the game would give the game a different look and feel. Be creative here. The more creative you are, the more points you can earn.
Create a JAR file of your program
In order to make your application easier to run, you are required to create and submit a JAR file that accepts command-line inputs. Two command-line inputs are valid:
java -jar Program.jar –text : when invoked in this manner the program should run the text-based
version of the game. Additional command-line arguments to configure the game may be supplied in this case, or you may prompt the user for game configuration interactively via the console.
java -jar Program.jar –gui : when invoked in this manner the program should open the graphical
user interface. Any other command-line arguments are invalid: in these cases the program should display a suitable error message and quit.
To run the program in the extra credit implementation, you should implement adding an -config=filename startup option.
What to submit
Log on to Gradescope and upload a ZIP file of your assignment. Your ZIP file should contain three folders: src/, test/ and res/ (even if empty).
All your code should be in src/.
All your tests should be test/.
Your original and revised design document should be in res/.
Submit a correct JAR file in the res/ folder. We should be able to run your program from this jar file.
Submit a screen shot of your program running.
Submit a README.md file that documents how to use your program, which parts of the program are complete, and design changes and justifications.
Disclaimer
The sample projects provided on our website are intended to be used as a guide and reference for educational purposes only. While we have made every effort to ensure that the projects are accurate and up-to-date, we do not guarantee their accuracy or completeness. The projects should be used at your own discretion, and we are not responsible for any loss or damage that may result from their use.
At Programming Homework Tutors, we are dedicated to helping students and educators achieve their goals by providing them with the resources they need to succeed. Our website offers a variety of tools and resources that can help you with the project mentioned above.
Whether you need help with research, project management, or technical support, our team of experts is here to assist you every step of the way. We offer online courses, tutorials, and community forums where you can connect with other learners and get the support you need to succeed.
If you’re looking to take your skills to the next level and make an impact in your field, we invite you to explore our website and see how we can help you achieve your goals.
Latest Topic
-
Cloud-Native Technologies: Best Practices
20 April, 2024 -
Generative AI with Llama 3: Shaping the Future
15 April, 2024 -
Mastering Llama 3: The Ultimate Guide
10 April, 2024
Category
- Assignment Help
- Homework Help
- Programming
- Trending Topics
- C Programming Assignment Help
- Art, Interactive, And Robotics
- Networked Operating Systems Programming
- Knowledge Representation & Reasoning Assignment Help
- Digital Systems Assignment Help
- Computer Design Assignment Help
- Artificial Life And Digital Evolution
- Coding and Fundamentals: Working With Collections
- UML Online Assignment Help
- Prolog Online Assignment Help
- Natural Language Processing Assignment Help
- Julia Assignment Help
- Golang Assignment Help
- Design Implementation Of Network Protocols
- Computer Architecture Assignment Help
- Object-Oriented Languages And Environments
- Coding Early Object and Algorithms: Java Coding Fundamentals
- Deep Learning In Healthcare Assignment Help
- Geometric Deep Learning Assignment Help
- Models Of Computation Assignment Help
- Systems Performance And Concurrent Computing
- Advanced Security Assignment Help
- Typescript Assignment Help
- Computational Media Assignment Help
- Design And Analysis Of Algorithms
- Geometric Modelling Assignment Help
- JavaScript Assignment Help
- MySQL Online Assignment Help
- Programming Practicum Assignment Help
- Public Policy, Legal, And Ethical Issues In Computing, Privacy, And Security
- Computer Vision
- Advanced Complexity Theory Assignment Help
- Big Data Mining Assignment Help
- Parallel Computing And Distributed Computing
- Law And Computer Science Assignment Help
- Engineering Distributed Objects For Cloud Computing
- Building Secure Computer Systems Assignment Help
- Ada Assignment Help
- R Programming Assignment Help
- Oracle Online Assignment Help
- Languages And Automata Assignment Help
- Haskell Assignment Help
- Economics And Computation Assignment Help
- ActionScript Assignment Help
- Audio Programming Assignment Help
- Bash Assignment Help
- Computer Graphics Assignment Help
- Groovy Assignment Help
- Kotlin Assignment Help
- Object Oriented Languages And Environments
- COBOL ASSIGNMENT HELP
- Bayesian Statistical Probabilistic Programming
- Computer Network Assignment Help
- Django Assignment Help
- Lambda Calculus Assignment Help
- Operating System Assignment Help
- Computational Learning Theory
- Delphi Assignment Help
- Concurrent Algorithms And Data Structures Assignment Help
- Machine Learning Assignment Help
- Human Computer Interface Assignment Help
- Foundations Of Data Networking Assignment Help
- Continuous Mathematics Assignment Help
- Compiler Assignment Help
- Computational Biology Assignment Help
- PostgreSQL Online Assignment Help
- Lua Assignment Help
- Human Computer Interaction Assignment Help
- Ethics And Responsible Innovation Assignment Help
- Communication And Ethical Issues In Computing
- Computer Science
- Combinatorial Optimisation Assignment Help
- Ethical Computing In Practice
- HTML Homework Assignment Help
- Linear Algebra Assignment Help
- Perl Assignment Help
- Artificial Intelligence Assignment Help
- Uncategorized
- Ethics And Professionalism Assignment Help
- Human Augmentics Assignment Help
- Linux Assignment Help
- PHP Assignment Help
- Assembly Language Assignment Help
- Dart Assignment Help
- Complete Python Bootcamp From Zero To Hero In Python Corrected Version
- Swift Assignment Help
- Computational Complexity Assignment Help
- Probability And Computing Assignment Help
- MATLAB Programming For Engineers
- Introduction To Statistical Learning
- Database Systems Implementation Assignment Help
- Computational Game Theory Assignment Help
- Database Assignment Help
- Probabilistic Model Checking Assignment Help
- Mathematics For Computer Science And Philosophy
- Introduction To Formal Proof Assignment Help
- Creative Coding Assignment Help
- Foundations Of Self-Programming Agents Assignment Help
- Machine Organization Assignment Help
- Software Design Assignment Help
- Data Communication And Networking Assignment Help
- Computational Biology
- Data Structure Assignment Help
- Foundations Of Software Engineering Assignment Help
- Mathematical Foundations Of Computing
- Principles Of Programming Languages Assignment Help
- Software Engineering Capstone Assignment Help
- Algorithms and Data Structures Assignment Help
No Comments