Introduction to Software Engineering Assignment - C++ Game Project
This assessment will demonstrate that you understand the theory and implementation of C++ in the context of game development. You will use the fundamental building blocks of software engineering to construct a small game. This process will help you develop larger and more complex games as you progress through the course.
Instructions:
Design and implement a virtual slot machine game in C++.
The game should start the player off with $2000, and should display the following main menu:
Player's chips: $2000
1) Play slots
2) Quit slot machine
3) Credits
The game should include the following functionality:
- If the player chooses 1, the program should ask the user to enter their bet. The program should check that the bet is legal.
- The program should then generate three random numbers, in the range of [2, 7] and output them to the screen.
- If all three numbers are "7", then award the player 10x their bet.
- If all three numbers are the same, (but not "7"), then award the player 5x their bet.
- If two out of three numbers are the same, then award the players 3x their bet.
- Otherwise the player loses their bet.
The program then calculates the player's current chip count and displays it on the screen.
Finally the main menu is displayed.
Build quality:
The source code is required to display the flowing features:
Free of -
- Build warning at warning level 3 for all build targets.
- Build errors for all build targets.
- All intermediate files (.obj, .pds, ...... files etc.)
Commenting, Naming, Structure and documentation -
- Code formatting is consistent with good use of whitespaces, tabling and alignment.
- Consistent and clear naming conventions are used.
- Where necessary, comments should be used to clarify the purpose and use of data and functions. Comment is the context of this assessment will also be a demonstrate understanding.
- Any necessary document should be included as separate Readme.txt file.
Interface features -
The executable is required to provide an interface with the flowing features:
- Provide clear instructions
- Controls are clearly identifiable and intuitive while playing
- Design and layout of the in-game interface makes effective use of screen space.
- All game state information it clearly presented on screen.