Skip to content

Latest commit

 

History

History
191 lines (152 loc) · 5.91 KB

README.md

File metadata and controls

191 lines (152 loc) · 5.91 KB

⚠️ Everything between << >> needs to be replaced (remove << >> after replacing)

CS110 Project Proposal

School is a Maze

CS 110 Final Project

Fall, 2022

https://replit.com/join/oiweiazppp-jackhunter9

Presentation Slides

Team: Green

Jack Hunter & Lily Thorne


Project Description

Navigate your way through a maze as a student as fast as you can and try to avoid or defeat professors blocking your way!


User Interface Design

  • Initial Concept

    • menu sketch
    • maze sketch
    • controls sketch
  • Final GUI

    • menu screen
    • controls screen
    • scoreboard screen
    • maze screen
    • end scorebard screen

Program Design

  • Non-Standard libraries *Pygame -https://www.pygame.org/ - Pygame is a module for Python that helps you create games and other multimedia applications

  • Class Interface Design * * class diagram

  • Classes

  1. < Class Player >

    • init
      • < Initializes the player object with characteristics: xpos ypos >
    • moveRight
      • < Allows the player to move in the right direction >
    • moveLeft
      • < Allows the player to move in the left direction >
    • moveUp
      • < Allows the player to move upwards >
    • moveDown
      • < Allows the player to move down >
    • detectWall
      • < Checks to see if the Player object collided with a Wall object >
    • movement
      • < Allows the player object to move based on keys >
  2. < Class Controller >

    • init
      • < Initializes the Controller object>
    • mainloop
      • < Runs the game >
  3. < Class Powerup >

    • init
      • < Initializes the powerup object >
    • getCoords
      • < Checks the coordinates of the powerup object compared to Walls>
    • getObj
      • < Puts the powerup object on the window >
  4. < Class Walls >

    • init
      • < Initializes the Wall object with characteristics: xpos ypos height and width>
    • makeWall
      • < Makes a wall object on the screen>
  5. < Class Graphical >

    • init
      • < Initializes the graphical object with characteristic: color >
    • makeMenu
    • makeMaze
    • drawMaze
    • makeControls
  6. < Class Keyboard >

    • init
      • < Initializes the Keyboard object with characteristics: xpos ypos >
  7. < Class Database >

    • init
      • < Initializes the database object >
    • addData
      • < saves data into the repl database >
  8. < Class puzzle >

    • init
      • < Initializes the Puzzle object with characteristics: xpos ypos >

Project Structure and File List

The Project is broken down into the following file structure:

  • main.py
  • src
    • controller.py
    • database.py
    • graphical.py
    • keyboard.py
    • player.py
    • powerup.py
    • puzzle.py
    • walls.py
    • esc.py
  • assets
    • class_diagram.jpg
    • apple.png
    • backpack.png
    • calculator.png
    • pencil.png
    • student.png
    • keyboard.png
    • concept_sketches (FOLDER)
      • controls_sketch.png
      • maze_sketch.png
      • menu_sketch.png
    • GUI_screens (FOLDER)
      • controls_screen.png
      • maze_screen.png
      • menu_screen.png
      • scoreboard_screen.png
      • scoreboard_screen_end.png
  • etc
    • milestone2.md

Tasks and Responsibilities

  • Jack-
    • Database
    • Player
    • Graphical
    • Controller functionality
  • Lily-
    • Walls
    • Collaborative
    • Powerup
    • Controller

Testing

  • We would test the program by writing bits of code as testing and debugging as we went

ATP

Step Procedure Expected Results
1 Navigate to Shell, type "python3 main.py" and hit enter Game window opens to screen that reads "Welcome to the Maze", "Enter", "Control", and "Scoreboard"
2 click "Control" displays control screen with directions on what keys to press to move the player
3 press esc button on screen window returns to menu screen
4 click "Scoreboard" displays scoreboard screen with score rankings
5 click "Enter" displays maze screen and user can begin playing
6 press up arrow key on keyboard player moves up 2px
7 press down arrow key on keyboard player moves down 2px
8 press left arrow key on keyboard player moves left 2px
9 press right arrow key on keyboard player moves right 2px
10 using arrow keys, navigate player to a powerup in the maze (backpack, calculator, or apple) when player reaches a powerup, the powerup disappears and player gains 5 points
11 player is navigated to the end of the maze scoreboard screen is shown with time ranks and users score is displayed under the scoreboard. if user makes it onto the scoreboard, their score will appear there as well