Write arm program that implements game micro space invaders

Assignment Help Computer Engineering
Reference no: EM131949300

Assignment

Objective

In this lab, you will incorporate all of the concepts you learned in labs #1 through #6 to design a game.

Description

Write an ARM assembly language / C program that implements the game Micro Space Invaders, as described below.

Synopsis

This version of Space Invaders is a simpler version than the original, 1978 version. The objective of Micro Space Invaders is the same as the original: shoot down the invaders from space to earn points and to advance to the next level. You start the game with four (4) spaceships (lives). The invaders will always start in the same position, but their starting movement, left or right, must be random. You must avoid being shot by the invaders. A good way not to be shot is to hide behind the strong shields(s) on the field. However, if you or the invaders shoot at a strong shield, it will be weakened to a weak shield(s), and if shot again, it will disappear for the rest of that level. Once all invaders on level 1 are cleared, you will be given points for completing that level and progress to the next level. The game is on a two-minute timer and ends regardless of the circumstances when the two minutes are up (unless all of your spaceships have already been lost - in that case the game will end prematurely). To get used to the game and begin to understand what you have to do, there is an online version you can play. Note that the online version is slightly different from Micro Space Invaders and is intended to give you an idea about how the game is played, if you have never played before.

Basic Flow of Program

• The player must be given instructions on how to play the game, what they should expect in the game including gameplay, invaders and potential points to be earned / taken, and also how to start or quit the game

• Excluding the walls, the playable game board should be 21x15

• The player can shoot

• The player cannot move faster than the refresh rate of the game

• There should be 35 invaders on every level

• Enemies must be different ASCII characters (O,M,W)

• A single shot from your spacecraft will destroy any invader. One shot can destroy only one invader at a time.

• If the players shot (^) and an invaders shot (v) collide the bullets should go through each other. When the bullets are in the same location on the board as each other a (~) character must be printed to represent the bullets crossing each other.

• The level increases once all invaders are destroyed. This does not include the motherships.

• Mothership bonus points must be randomly generated

• The motherboard must travel faster than the invaders move

• Motherships starting side (left or right) must be random and must travel the whole top row of the board before disappearing

• If the player is shot, he will lose 100 points and one life

• The player begins with four lives/spaceships

• The LEDs should be illuminated to reflect the number of lives left. When a life is lost the life count on the LEDs must be decremented by turning one LED off. When all LEDs are off, the game is over. For example, if three lives remain, three LEDs should be illuminated.

• There should be a GAME OVER screen to alert the player they are done and to ask if they wish to quit or play again

• The program starts at level 0 when in pre-game mode and increments by one for every level completed. This should be displayed somewhere on the screen.

• The seven-segment display should display the score that the user has obtained on that level. The score will reset to 0 at the start of each level but the data from each level will be stored.

- Time Level Points: You should save the points you earned from killing the invaders minutes the points you lost when you died
- Death Count: How many lives you lost during that level
- Mother Ships: How many mother ships you killed out of how many passed during that level (Example: 1/3)
- Level: The time to took you to complete that level

• The external interrupt can be used to pause the game. The game screen should state the game is paused. When the game is paused, the RGB color is blue.

• When completing a game, a comprehensive breakdown should be shown to the player including Level Points, Death Count, Mother Ships, Level Time, and total points earned. The user should be asked if they wish to play again or quit. The RGB LED should be purple during this process.

• During gameplay the RGB color should be green. When the player has been shot by an invader (bullet has strickened the player), the RGB LED should flash red. When the game is paused the RGB LED should be blue. When gameplay has ended the RGB LED should be purple.

Hardware Utilized

• Serial Port - User Input & Display

- Used to accept the user's input and display the game.

• LEDs - Number of Lives

- The LEDs will represent the number of lives remaining. You will start the game with four lives (all LEDs on). Each time a life is lost, an LED is turned off.

• RGB LED - Game Status

- The RGB LED should be used to display the status of the game. During game play the RGB color should be green, when a shot if fire it should flash red, when paused it should be blue. At the end of the game it should be purple. Before game play starts it should be white.

• Seven -Segment Display - Level Score

- The seven-segment display should display the score the user currently has on that level. To avoid overflow on the seven segment display the score should be reset (put back to zero) each time a new level is reached.

• Momentary Push Button (P0.14) - Pause Button

- This button should be configured to trigger an interrupt when pushed, and will be used to pause and start the game. Note that when the game is paused, the user must be told so and the RGB LED must be set to blue.

• Timers - Control Game Movement

- The timer is used to control the game speed and refresh the display. During the first level (level 1), characters should move two times per second.

- With each level increase, the period should decrease by 0.1 seconds. Once the rate becomes 0.1 seconds, the speed will no longer change. In other words, new levels after that point will no longer speed up the game play.

- The timer should be used to control the time for the entire game (2 minutes).

Attachment:- Micro-Space-Invaders-Game.rar

Reference no: EM131949300

Questions Cloud

Why how you calculated cash flow-mortgage payment and roi : Briefly describe the analysis that you have performed, why how you calculated the cash flow, mortgage payment and ROI.
Pmlc model could be either adaptive or extreme : PMLC model could be either Adaptive or Extreme, which would you choose and why?
Prepare an invoice : Prepare an Invoice using the following guidelines, Friends of MSU, Dinner for 200 guests January 12, 2017
Manager of a process development department : You are manager of a process development department. Your immediate supervisor, the VP of New Stuff has just informed you that the company is in financial
Write arm program that implements game micro space invaders : Write an ARM assembly language / C program that implements the game Micro Space Invaders, as described below.
What are four important tactical tasks for negotiator : What are four important tactical tasks for a negotiator in a distributive situation to consider?
Methodology for doing software development : The IT department has its own methodology for doing software development. The engineering department has its own methodology for doing new product development.
Project procurement management processes : "The various activities involved in the Project Procurement Management processes form the life cycle of an agreement. By actively managing
Design a database from a list of requirements : MN-3526 Spreadsheets and Databases for Business Analysis - Design a database from a list of requirements based on the contents of lectures, producing

Reviews

Write a Review

Computer Engineering Questions & Answers

  Program to find grade of students on basis of test scores

Write down a C++ program which finds a better grade for a student based upon two test scores. For a numeric average x.

  Create a simple system to read merge purge eclipse data

"Create a simple system to read, merge, purge, sort, search, and write eclipse data with error checking and providing fast lookup by catalog number."

  Why are the all ones and all zeroes subnets not used

Subnet the class C network addresses 198.67.25.0 into eight subnets. Why are the 'all ones' and 'all zeroes' subnets not used?

  Write down the syntax for a 2d array

Write the syntax for a 2D array which has four rows. The first row would have 10 elements and the second row will have 5 elements. The third row will have 8 elements and the fourth row will have 12 elements.

  Determining the salary of person

Write down a program which determines how much a person earns in a month in case the salary is one penny first day, two pennies second day, four pennies the third day, and so on with the daily pay doubling each day employee works.

  How to create a poster or presentation

For an on line poster presentation, you need to use PowerPoint, Visio, MS Word, or another program that allows you to use graphics and pictures along with words to tell a story. Posters are created to tell a visual story so the intent is to use le..

  Potential vulnerabilities in purchasing with a debit card

Recognize any potential vulnerabilities in the act of forming a purchase along with a debit card.

  How to generate a class diagram for the entity classes

How to generate a class diagram for the entity classes

  Examine the new system and find out the design issues with

a large fast-food chain unveiled a new touch screen register for its franchises. each cashier was assigned a user id

  Create an application that demonstrates all the methods

Create an application that demonstrates all the methods. Create a class named Pay that includes five numeric variables: hours worked and hourly pay rate.

  Write a program that reads in name and salary of an employee

Write a program that reads in the name and salary of an employee. Here the salary will denote an hourly wage, such as $9.25.

  Write a program that reads a number and displays the square

Write a program that reads a number and displays the square, cube, and fourth power. Use the Math.pow method only for the fourth power.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd