Project needs to be completed within 2-3 days, or as soon as possible. I am willing to pay extra for fast completion! Complete specs are described below.
Write code for gorilla, a popular computer game, using MFC and Win32. The game, gorilla, has two gorillas standing on buildings at two ends of the screen. Between them are buildings of various heights. The gorillas take turns to throw explosive bananas at each other with the objective being to destroy the opponent. The human
player controls one gorilla and the computer controls the other. If a banana misses a gorilla and hits a building instead, it destroys that part of the building. The game goes on till one of the gorillas gets hit. When throwing a banana at the other gorilla, the players need to consider the wind speed, wind direction and gravity before entering their angle of delivery and the force to use. The orginal game intro states the rules as:
"Your mission is to hit your opponent with the exploding banana by varying the angle and power of your throw, taking into account wind speed, gravity, and the city skyline."
The graphical front end of gorillas uses MFC while its computational back end uses a Win32 DLL. You write code for both the executable and the DLL.
Gorillas has the following features:
- When the game starts the first time, ask for the player's name and display it on program's title bar. Ask the player if they wish to use the gorilla on the right or the gorilla on the left of the screen.
- The player throws bananas at the other gorilla by entering the angle at which to throw the banana and the force to use to throw it. Your program uses a modeles dialog box grab the user's input for the angle and force.
- After the user enters both the angle and the force, your game moves the banana in a trajectory spinning the banana as it moves across the screen.
- Let the player change the colours of some of the buildings.
- Show the wind direction using an arrow. Show the wind speed above the arrow. During the game, randomly change wind direction and wind speed.
- Implement a scoring scheme and show the player's score on the statusbar.
- The game uses a Win32 Dynamic Link Library for some of its work. You decide what code to put into the DLL. You will use this DLL in your next part, which is the same game, only ported to .Net. In that part, you use .Net, not MFC, to do the graphical stuff. Keep in mind only simple MFC objects port smoothly to .Net, so avoid using CArchive and other large MFC objects in your DLL. Stick to the basic
data types of C/C++ and your DLL will port to .Net easily.
- Let the player save and retrieve their game states.
- Follow good programming and presentation practices. Your game should be easy to play for a first time user.
Tips and Hints:
The history and rules for gorilla:
[url removed, login to view]
The look and feel of Part 2 is the same as Part 1, except it is implemented in VC++.Net (2005) rather than MFC. This means the game still has two gorillas, standing on separate buildings, throwing explosive bananas at each other.
- if you have already implemented connectivity to your Win32 DLL you will get the credit for doing it.
Your task in this part is to port your part #1 code to .Net, add new
features using .Net, use part #1's DLL and provide feedback on your
experiences. Keep the look and feel of part #2 the same as part #1.
First, port the existing code over to .Net
- Part #2 uses the same DLL from part 1, preferably without changing
anything in it. However, you may re-write some, or all, of the DLL code but it must remain a Win32, or MFC, DLL. You may add, though not necessary, another .Net DLL to this part.
- Part #2 uses .Net's GDI+ libraries for the game graphics. Keep the logic and the look and feel of the game the same as part 1. The idea is to give you an experience to port an existing MFC application to the .Net framework.
Next, add the following features, using .Net libraries, to the application:
- the game authenticates users through a login dialog box at the start of the game. User?s login using their username and password. Usernames consist of alphabets only but passwords have at least one alphabet, one number and one character from:
"~!@#$%^&*()" (excluding the quotes), so for example b1@,1@b,@b1,@1b,1b@ or b@1 are all valid password combinations.
- If a user has not logged in before, the game registers that user with a unique username and a password that meets the above password criteria.
- Once the user registers, and logs in, keep playing with the same username even when they start a new game. After the user logs out, the game displays the login screen.
- If the user closes the program in the middle of a game and they have not saved their current score, ask them if they want to save their game state or not. Then take appropriate action based on their answer.
- When an existing user logs in, look for their best score from their previous game scores and show it in a panel on the status bar. The status bar also shows the current score of the game being played.
- Let a new user play Gorilla as guest, which is a limited, saving disabled, account.
- Implement a demo feature to play the game automatically by using threads. The user interface is on one thread and the demo feature is on another. This lets the user stop the demo at any time. You do not need to keep track of the demo score.
- The requirement that the interface (Windows Forms) connect to your Win32 DLL is not necessary. So the entire logic for the game can now reside in the Windows Form.
- You need use threads, a simple example of updating a control on your game is enough. This means having the game demo on a separate thread is nice to have but no longer necessary. However
implementing threads in part 2 is required.