Battle Simulator 3000
1
I started by analyzing the provided UML diagram to understand the structure of the game, including the required classes and their relationships. This helped guide the overall design and development of the project.
4
I completed the Driver class to control the flow of the game, managing user input, alternating turns, and displaying the results after each battle round.
Final
I implemented the Mugwump class to handle the behavior of the enemy character, including its attacks, hit points, and random attack selection based on probability.
3
I built the Die class to handle the random number generation for dice rolls and created additional classes for other game components like the Warrior and various attacks.
2
Project Analysis
In the Battle Simulator 3000 project, I did well in applying my knowledge of Java programming and object-oriented design. I focused on creating the game mechanics, particularly the dice-based combat system where players could choose different attack strategies. One of my strengths was making sure the game worked smoothly, and the dice rolls were random but fair. I enjoyed problem-solving to balance the different attack strategies and ensure that the game was both fun and challenging.
From this project, I gained a better understanding of how to use randomness in games. While I had used randomization before, this project helped me learn how to make the dice rolls feel fair to the player. I also improved my ability to test and debug interactive games, which involved making sure all parts of the game worked well together. Working on the game’s flow and managing objects like attacks and the Mugwump helped me practice organizing my code efficiently. I also revisited object-oriented programming concepts like class design and inheritance, which made it easier to break down the project into smaller tasks.
What went well was that our team worked together efficiently, and we completed the project on time. I was able to focus on the core mechanics, while others helped with testing and adjustments. One area for improvement was the planning phase. Although we finished on time, we could have spent more time refining the game’s mechanics and balancing them better from the start. In future projects, I’d spend more time in the beginning making sure everything is well-planned and tested.
This project connects to my work on the NumQuest game, where I will use the knowledge I gained about game mechanics and randomness. The skills I improved in testing and debugging will also help me when working on larger, more complex projects.