程序代写 ECE 4122/6122 Lab 2: 2D Graphics & SMFL

ECE 4122/6122 Lab 2: 2D Graphics & SMFL
Due: Wednesday Oct 26th, 2022 by 11:59 PM

Problem 1: Pacman Game (100 pts)

Copyright By PowCoder代写 加微信 powcoder

Write a C++ application that uses SFML to create a simple pacman game.
Game Rules:
• (~5 pts) Display the provided pac-man.bmp at the start of the game with the extra text o PRESS ENTER TO START
in the middle of the window.
• (~20 pts) Once the user presses the ENTER key the game starts with
o pacman located as shown above
o all four ghosts start at the same location as shown above (bitmaps provided) o place the four power ups as shown above
o place the coins as shown above
• (~10 pts) The ghost’s initial direction is determined randomly and when a ghost hits a wall its new direction is chosen randomly.
• (~20 pts) Control the location of pacman using the left, right, up, down arrow keys.
• (~10 pts) Determine a game speed that makes the game fun to play (not too slow and not to
• (~10 pts) The game ends when
o one of the ghosts comes in contact with a non-powered up pacman o pacman consumes all the coins
o user presses the escape key.
• (~5 pts) When pacman eats a powerup he can eat ghosts for 5 seconds. Ghosts that are eaten are gone forever.
• (~15 pts) Pacman and the ghost cannot go through walls.
• (~5 pts) Pacman and the ghost can go through the middle tunnels on each side.
• You do not have to handle resizing the window. Just use the image size.
Suggestions:
• Use invisible rectangles to represent the location of the walls.
• Use circles to represent the coins and power ups.
• Use vectors to hold locations of coin, powerup, and wall objects
• Use the Chapter 5 example from Beginning-Cpp-Game-Programming-Second-Edition
as a starting point.

Turn-in Instructions:
Two methods:
a. Upload a video(s) of your game running and demonstrate the “Game Rules” above.
Multiple smaller videos are fine, just make sure that the name is representative of
the game rule being covered.
b. Put all the code files you created into a zip file called Lab3.zip and upload to
a. The TAs will build and run your code.
b. Use the Chapter 5 example from Beginning-Cpp-Game-Programming-Second-
Edition to develop your code. Remove the existing timber.cpp file and place your new source code files in the code directory. Once you have finished your development, zip the Chapter 5 folder with your changes into a zip file called Lab3.zip and upload to canvas.
Grading Rubric
If a student’s program runs correctly and produces the desired output, the student has the potential to get a 100 on his or her homework; however, TA’s will randomly look through this set of “perfect-output” programs to look for other elements of meeting the lab requirements. The table below shows typical deductions that could occur.
AUTOMATIC GRADING POINT DEDUCTIONS PER PROBLEM:
Percentage Deduction
Does Not Compile Does Not Match Output
LATE POLICY
Late Deduction Function
Up to 100%
Code does not compile on PACE-ICE!
The code compiles but does not produce the correct outputs. See point values above.
Clear Self-Documenting Coding Styles
This can include incorrect indentation, using unclear variable names, unclear/missing comments, or compiling with warnings. (See Appendix A)
Percentage Deduction
score – 0.5 * H
H = number of hours (ceiling function) passed deadline

Indentation:
Appendix A: Coding Standards
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:
for (int i; i < 10; i++) j = j + i; } 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. for (int i; i < 10; i++) if (i < 5) counter++; Camel Case: 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). 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. Variable and Function Names: Your variable and function names should be clear about what that variable or function is. 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. File Headers: Every file should have the following header at the top Author: your name Class: ECE4122 or ECE6122 (section) Last Date Modified: date Description: What is the purpose of this file? */ Code Comments: 1. Every function must have a comment section describing the purpose of the function, the input and output parameters, the return value (if any). 2. Every class must have a comment section to describe the purpose of the class. 3. Comments need to be placed inside of functions/loops to assist in the understanding of the flow of 程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com