1. Homepage
  2. Programming
  3. ECE 4122/6122 Advanced Programming Techniques - Lab 1: Retro Centipede Arcade Game

ECE 4122/6122 Advanced Programming Techniques - Lab 1: Retro Centipede Arcade Game

Engage in a Conversation
GaTechECE4122ECE6122Advanced Programming TechniquesRetro Centipede Arcade GameC++

ECE 4122/6122 Lab 1: Retro Centipede Arcade Game CourseNana.COM

(100 pts)
Category: Class creation and 2D Graphics with SFML CourseNana.COM

Due: Wednesday September 25th, 2024 by 11:59 PM CourseNana.COM

Objective:
To understand and apply the principles of 2D graphics and class creation in C++. Description: CourseNana.COM

Create a simple version of the classic arcade game called Centipede. An online version of the game can be found at (https://www.mysteinbach.ca/game- zone/2153/atari-centipede/). The goal of the assignment is to try to reproduce the game play present on the listed web site. You only need to support the first level and the game ends when either all the centipede body elements are destroyed or the player runs out of lives. The game screen is made up of three section (1) the top information area, (2) the main game area and (3) the bottom mushroom free area, as seen below. The game score is shown in the middle of the top information area and the number of remaining live is show by the number of starship icons. The centipede starts in the lower right part of the top information band. The centipede is made up of 11 body sections and one head section. Reproduce the action of the centipede as shown in the game on the website. You only need to support the spider in your version CourseNana.COM

of the game. CourseNana.COM

Game specifics: CourseNana.COM

1. Create an ECE_Centipede class derived from the SFML::Sprite.
a. Theclassisresponsibleforcalculatingthelocationofallthesegmentsofthe
CourseNana.COM

centipede and which segments have broken apart into new centipedes with its own CourseNana.COM

head.
b. The class is also responsible for detecting collisions with other objects and taking
CourseNana.COM

the appropriate action. CourseNana.COM

  1. Use the random number generator (std::uniform_int_distribution) to randomly locate 30 CourseNana.COM

    mushrooms in the main game play area. Use a std::list to maintain the state and location CourseNana.COM

    of the mushrooms. Feel free to use either a class or struct to hold the information. CourseNana.COM

  2. Create an ECE_LaserBlast class derived from the SFML::Sprite that calculates the CourseNana.COM

    current location of the laser blast and detecting collisions with objects and taking the appropriate action. Make sure to allow for the movement of multiple laser blasts by using a std::list. CourseNana.COM

  3. Each time a mushroom is hit by the laser blast change the image to the ones provided. As the mushroom is hit the lower part disappears until it is hit twice and is removed from the game. CourseNana.COM

  4. Use the left/right/up/down arrow keys to move the spaceship and use the space key to fire a laser blast. CourseNana.COM

  5. Keep track of the score and the number or remaining lives and display it at the top of the screen. CourseNana.COM

  6. When the game is over just go back to the Start screen. CourseNana.COM

Turn-In Instructions CourseNana.COM

Create your assignment in a folder called Lab1 at the same level as the Chapterxx folders in the “Beginning- Cpp-Game-Programming-Second-Edition”. Inside your Lab1 folder create a CMakelists.txt file that will be used to build your assignment for testing. Inside your Lab1 folder create a code folder to hold any *.cpp and *.h files you create to complete your assignment. Also, inside your Lab1 folder create a graphics folder to hold any graphics needed by your game. CourseNana.COM

When you are finished zip up your Lab1 folder in to a zip file called Lab1.zip and upload this zip file on the assignment section of Canvas. CourseNana.COM

Grading Rubric: CourseNana.COM

  1. (10 pts) Main start screen is shown at startup and pressing the enter key starts the game. CourseNana.COM

  2. (20 pts) The 30 mushrooms are randomly placed in the main game area. CourseNana.COM

  3. (15 pts) The starship starts at the center of the bottom of the game and the starship is moved around by pressing the left/right/up/down keys. CourseNana.COM

  4. (10 pts) Pressing the space key fires laser blasts. Multiple laser blasts need to be supported and collisions need to be correctly handled. CourseNana.COM

  5. (10 pts) The spider moves randomly around the main game area. When a spider collides with a mushroom, the mushroom is destroyed. When the spider collides with the starship, the starship moves back to the starting location and a life is used up. CourseNana.COM

  6. (20 pts) The centipede moves correctly through the mushrooms and a segment is destroyed when hit by a laser blast and is divided, if hit in the middle creating a new smaller centipede. CourseNana.COM

  7. (15 pts) The game play is fun with the individual components moving at reasonable speeds and collision correctly detected. CourseNana.COM

AUTOMATIC GRADING POINT DEDUCTIONS PER PROBLEM: CourseNana.COM

Element CourseNana.COM

Does Not Compile CourseNana.COM

Does Not Match Output CourseNana.COM

Clear Self-Documenting Coding Styles CourseNana.COM

LATE POLICY CourseNana.COM

Late Deduction Function CourseNana.COM

Percentage Deduction CourseNana.COM

40%
Up to 90%
CourseNana.COM

Details CourseNana.COM

Code does not compile on PACE-ICE!
The code compiles but does not produce correct outputs.
CourseNana.COM

score – 0.5 * H CourseNana.COM

H = number of hours (ceiling function) passed deadline CourseNana.COM

Up to 25% CourseNana.COM

This can include incorrect indentation, using unclear variable names, unclear/missing comments, or compiling with warnings. (See Appendix A) CourseNana.COM

Element CourseNana.COM

Percentage Deduction CourseNana.COM

Details CourseNana.COM

Indentation: CourseNana.COM

Appendix A: Coding Standards CourseNana.COM

When using if/for/while statements, make sure you indent 4 spaces for the content inside those. Also make sure that you use spaces to make the code more readable.
For example:
CourseNana.COM

for (int i; i < 10; i++)

{ CourseNana.COM

j = j + i; } CourseNana.COM

If you have nested statements, you should use multiple indentions. Each { should be on its own line (like the for loop) If you have else or else if statements after your if statement, they should be on their own line. CourseNana.COM

for (int i; i < 10; i++)

{
if (i < 5)
CourseNana.COM

{
counter++;
CourseNana.COM

k -= i; } CourseNana.COM

else CourseNana.COM

{ CourseNana.COM

k +=1; } CourseNana.COM

j += i; } CourseNana.COM

Camel Case: CourseNana.COM

This naming convention has the first letter of the variable be lower case, and the first letter in each new word be capitalized (e.g. firstSecondThird). CourseNana.COM

This applies for functions and member functions as well!
The main exception to this is class names, where the first letter should also be capitalized.
CourseNana.COM

Variable and Function Names: CourseNana.COM

Your variable and function names should be clear about what that variable or function represents. Do not use one letter variables, but use abbreviations when it is appropriate (for example: “imag" instead of “imaginary”). The more descriptive your variable and function names are, the more readable your code will be. This is the idea behind self-documenting code. CourseNana.COM

CourseNana.COM

File Headers: CourseNana.COM

Every file should have the following header at the top CourseNana.COM

/*
Author: your name
Class: ECE4122 or ECE6122 (section) Last Date Modified: date
CourseNana.COM

Description:
What is the purpose of this file? */
Code Comments: CourseNana.COM

  1. Every function must have a comment section describing the purpose of the function, the input and output parameters, the return value (if any). CourseNana.COM

  2. Every class must have a comment section to describe the purpose of the class. CourseNana.COM

  3. Comments need to be placed inside of functions/loops to assist in the understanding of the flow of CourseNana.COM

    the code. CourseNana.COM

Get in Touch with Our Experts

WeChat (微信) WeChat (微信)
Whatsapp WhatsApp
GaTech代写,ECE4122代写,ECE6122代写,Advanced Programming Techniques代写,Retro Centipede Arcade Game代写,C++代写,GaTech代编,ECE4122代编,ECE6122代编,Advanced Programming Techniques代编,Retro Centipede Arcade Game代编,C++代编,GaTech代考,ECE4122代考,ECE6122代考,Advanced Programming Techniques代考,Retro Centipede Arcade Game代考,C++代考,GaTechhelp,ECE4122help,ECE6122help,Advanced Programming Techniqueshelp,Retro Centipede Arcade Gamehelp,C++help,GaTech作业代写,ECE4122作业代写,ECE6122作业代写,Advanced Programming Techniques作业代写,Retro Centipede Arcade Game作业代写,C++作业代写,GaTech编程代写,ECE4122编程代写,ECE6122编程代写,Advanced Programming Techniques编程代写,Retro Centipede Arcade Game编程代写,C++编程代写,GaTechprogramming help,ECE4122programming help,ECE6122programming help,Advanced Programming Techniquesprogramming help,Retro Centipede Arcade Gameprogramming help,C++programming help,GaTechassignment help,ECE4122assignment help,ECE6122assignment help,Advanced Programming Techniquesassignment help,Retro Centipede Arcade Gameassignment help,C++assignment help,GaTechsolution,ECE4122solution,ECE6122solution,Advanced Programming Techniquessolution,Retro Centipede Arcade Gamesolution,C++solution,