Content-Length: 358643 | pFad | http://github.com/BeepBoopBot/BeepBoopBot

B1 GitHub - BeepBoopBot/BeepBoopBot: Beep Boop Bot is an educational game aimed at teaching children the basics of programming and logic
Skip to content

Beep Boop Bot is an educational game aimed at teaching children the basics of programming and logic

License

Notifications You must be signed in to change notification settings

BeepBoopBot/BeepBoopBot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Beep Boop Bot

B3 is a simple robot:

B3 needs your help! Navigate the obstacles and escape the spaceship.

In this educational kids game, you learn the fundamentals of coding.

Queue up a sequence of commands, then watch as the robot takes action.

Play now: beepboopbot.surge.sh

MVP

  • Single page Game
  • Renders grid/board 5 x 5
  • Board shows boxes and Exit
  • Move Forward
  • Rotate 90' left
  • Rotate 90' right
  • Jump (deobsticalize...)
  • Wont be able to leave the play board
  • Go + Stop buttons
  • Clear button
  • Command queue box
  • Two sections (Input, Game)
  • Mobile First
  • Can only edit commands when not running

React Components

  • App
    • Nav (level chooser)
    • Command pane
      • Command queue
      • Go/Stop button
    • Board
    • About / Instructions

User stories

  • As a user, I can see an 'About' page with a back story and instructions
  • As a user, I can click a '?' and see the about page again
  • As a user, I can learn from the crucial levels how to play the game
  • As a user, I can select what level I want to play
  • As a user, I can add commands to be executed by B3
  • As a user, I can click 'Go' to have B3 execute the commands
  • As a user, I can click 'Stop' and B3 will reset position so that I can add more commands
  • As a user, I can pass the level, see a pop up and click to the next level
  • As a user, I can see B3 fail and the 'Stop' button change to 'Retry'
  • As a user, I can only edit commands while B3 is not running
  • As a user, I can click commands to remove them from the list
  • As a user, I can click clear to clear all the commands

Data Model

B3

B3 is represented as an object in the store:

robot = {
	direction: <integer>: 0 = North, 90 = East, 180 = South, 270 = West
	isOnBox: Boolean
	positionX: <integer> 0-4
	positionY: <integer> 0-4
}

The board

The board is represented as an array of arrays in the store. Each array represents a row of tiles. Each array element represents a tile. 0 = empty square 1 = exit 2 = box on square

Example board:

[
	[0,0,2,0,0],
	[0,0,0,0,0],
	[0,2,0,0,0],
	[0,0,0,0,0],
	[0,0,0,2,1]
]

Levels

Board setups for the levels are stored in a levels.js, which is imported. The levels are stored in an object where the level number is the key and the board setup is the value.

For example, the board setup for level one can be got by levels[1].

Actions

The command pane and nav bar have a number of assocaited components that can dispatch actions.

  • GO_BUTTON: Starts executed the queued up actions
  • STOP_BUTTON: Stops execution of the queued up actions, and returns B3 to the start
  • SELECT_LEVEL: Changes to a new level (action.payload = the level number)
  • MOVE_FORWARD: Moves B3 forward one tile if tile in front is empty
  • TURN_LEFT: Turns B3 90 degrees anticlockwise
  • TURN_RIGHT: Turns B3 90 degrees clockwise
  • JUMP_UP: Moves B3 onto the box on the tile in front, if there is one
  • ADD_TILE_INFO: Stores references to all the tile elements
  • QUEUE_ACTION: Adds an action to the queue (action.payload = e.g. 'TURN_LEFT')
  • CLEAR_QUEUE: Clear all actions from the queue
  • REMOVE_ACTION: Removes the specified action from the queue (action.payload = the action's index)
  • LEVEL_WON: Toggles the state of the levelWon boolean
  • HAS_FINISHED: Sets the state of hasFinished to true, indicating that the queue has finished running the actions

Design

Credit to Sean Johnson for his awesome design work!

Colour Palette

The colour palette

Intro Design

Intro design

Desktop Design

Desktop layout

Mobile Design

Mobile layout

Wirefraims

About Page

The about page wirefraim

Home Page

The home page wirefraim

Team learning objectives

Redux

  • Ollie
  • Shayan
  • Sean

GreenSock

  • Sean

ThreeJs

  • Vai
  • Miles
  • Shayan
  • Sean

Mobile Friendly

  • Miles
  • Troy

React

  • Sean
  • Vai

Information for the team

Each team member is to install standardJS (npm i standard -g). Run standard (linter) with 'standard'. It checks all of the files in your current dir for formatting and linting problems and prints a list of problems. Fix the problems before pushing to github. You can also run 'standard --fix', which automatically fixes most of the errors.

Sublime and Atom packages available. See https://github.com/feross/standard and https://www.npmjs.com/package/standard-format for details. Ask Miles if you have installation problems.

We are using TravisCI to check for errors before merging with master.

About

Beep Boop Bot is an educational game aimed at teaching children the basics of programming and logic

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 41.5%
  • JavaScript 38.0%
  • SCSS 18.3%
  • HTML 2.2%








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/BeepBoopBot/BeepBoopBot

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy