Assignment 4: Super Mario Brothers 
1 General Instructions 
1. The asignment is to be done in groups of 2 people. You may also chose to work solo. 
2. We wil be using GitHub for version control. Make sure to regularly comit your changes to your 
repository, rather than making a single comit at the end of the asignment. The comit history of 
the repository wil be checked to verify the same. 
3. The deadline for Asignment 4 is 1:59 p.m. on June 10th, 2018. The latest comit in your GitHub 
repository, as of 1.59 p.m. on the 10th of June wil be considered as your final submision. 
4. 
5. Academic dishonesty is unaceptable and wil not be tolerated in this course. To compare the code 
comited by the teams, an automatic system caled MOS wil be used for determining the 
similarity of the programs. 
2 Assignment Description 
This asignment requires you to develop an Android game that miics the clasic game Super Mario 
Brothers. You can read more about the game at http:/ww.mariowiki.com/Super_Mario_Bros. 
We have made the folowing simplifying changes to the game: 
1. There ned not be any sounds. 
2. You only ned 3 levels. 
3. You can redesign the AI behaviors of the opponents as you wish. 
Here are the basic points of the game (we leave lots of implementation choices to you): 
1. The game is side-scroling. This means that the characters onscren are viewed from a side-view 
camera angle. Your game must make the onscreen characters move from the right to left side, like a 
miror image of the original game. 
2. The game must run in Landscape mode, unlike the Candy Crush which were portrait oriented. 
3. The original game has several items. But, you ned to implement only the folowing: 
Coins: They are worth 20 points and are very comon. 
Super Mushrom: They are worth 100 points, and are les comon. It gives Mario the ”Super” form. 
Fire Flower: They are also worth 100 points and they give Mario the ability to shoot fireballs, 
by trans-forming him into ”Fire Mario” form. 
4. Mario has diferent transformations. Mario transforms betwen those versions by touching an enemy 
or obstacle, or by acquiring a particular type of item. You need to implement the ”Super” and ”Fire 
Mario” versions, apart from the version of Mario at the begining of the game. The diferent 
transformations of Mario and the details of when they ocur is listed here. 
1 
5. Among the many enemies that Mario has, you have to implement at least 3 types. The posible 
enemies are: 
u Buzy Beetle : It is smal turtle that hides in its shel when jumped on, and it is imune to 
firebals. 
u Blober: It is a squid-like sentry that persistently pursues the player. 
u Koopa Paratropa: They are smal turtles with wings. Hostile gren ones jump towards 
the player, and brezy red ones fly back and forth, or up and down. 
u Piranha Plant: It is a carnivorous plant that lives in pipes. It rises up trying to hit Mario and 
retreats. If Mario is near, it won’t rise up. 
Descriptions of the enemies are available in more detail in this link. 
6. Mario should be able to jump. He should also be able to break certain types of blocks. 
7. Mario should have 3 lives. Kep a runing score and also kep track of the number of lives. 
8. Artwork does not mater in this clas. But, Mario should be animated in some fashion. 
9. The diferent levels should be controled by a data structure. The placement of items should be 
controled by the data structure. There should be no hard coded checks in the game engine about 
what level you are in (other than the code to load the corect data structure for the level). 
10. You wil have to develop touch controls. 
3 Hints 
The Android development kit documentation is your friend. Reference it to figure out how the entire thing 
works. The URL is http:/developer.android.com/reference/packages.html. A copy also gets installed in 
your Android instalation. 
3.1 How do I change the orientation of the scren? 
1. The method void setRequestedOrientation (int requestedOrientation) can be used to set the 
orientation of the activity. 
2. The value of requestedOrientation can be set to SCREN ORIENTATION LANDSCAPE, to render 
the game in landscape fashion. 
4 No-Copy Policy 
The asignment must contain the folowing statement in the file “statement.txt”: 
We, your name and your partner, hereby certify that the files we submited represent our own work, that we did not 
copy any code from any other person or source, and that we did not share our code with any other students. 
NOTE: It is aceptable to use code you find in the Android or Java APIs.