king0120 / project_one_deliverables

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Project #1: Let the Games Begin

PROJECT Requirements

For your first project you will build a simple game as a Web Application. You must choose from one of the games listed below!

Project Objectives

The objectives of this project are to:

  • Demonstrate your ability to use HTML and CSS to build and style an intuitive web application
  • Demonstrate your competancy in DOM manipulation using JavaScript
  • Publish your source code to GitHub with a solid README.md describing the project
  • Deploy your application to a production environment such BitBalloon
  • Present your project in a presentation style format

Project #1: The Game

Project Ideas

Jeopardy

Jeopardy Game

Write a Jeopardy game that allows the user to play the game of Jeopardy. This is a quiz game where the user gets to choose the next question by choosing from a category and then choosing a point amount (100 to 500). The questions are phrased as answers and the user chooses from a list of 4 questions that match the answer. For instance:

The User sees this: A programming construct for easily looping through the elements in an array The User chooses this: What is a for loop

Bonus Ideas:

  • Have a "Round 1" and a "Round 2" where the questions in Round 2 are more difficult but also score higher points.
  • Have different themes for the questions, such as:
    • Web Development Topics
    • Arts and Entertainment
    • Science and Science Fiction

Hangman

Hangman Game

Write a Hangman game that displays a secret word as a list of hidden letters. Also display an alphabet of letters that the user can guess while trying to guess the word. After a letter is used, disable that letter from the alphabet so the user will not try to guess the same letter twice. When a guess matches one or more letters in the secret word, reveal those letters to the user. Keep track of the number of incorrect guesses and end the game if the number of incorrect guesses reaches 6. If the user reveals all of the hidden letters before reaching 6 incorrect guesses, then the user wins.

Bonus Ideas:

  • Display a hangman as either ASCII art or images that represent the various stages of the hangman.
  • Display a scoreboard of how games won and lost.
  • Choose a theme for the game, such as "Famous Movies" or "Web Development Terms"

Connect 4

Connect 4

Write a Connect 4 game that allows two players to compete. The players are sharing the same computer but the game detects when a player has won the game. A scoreboard keeps track of how many times Player 1 has won and how many times Player 2 has won.

Bonus Ideas:

  • Alternate the first player to move: Player 1 moves first in game 1, Player 2 moves first in game 2, etc.
  • Allow players to enter their name and display their name instead of "Player 1" and "Player 2".
  • Provide a way to play against the computer (using a simple A.I. algorithm)

BlackJack

BlackJack Game

Write a BlackJack game to try to beat the dealer. Allow the user to "Hit" or "Stand" based on their current score. Follow the common rules for BlackJack.

Bonus Ideas:

  • Allow the user to place a bet (using chips, points, or dollars). Allocate a starting amount of chips and keep track of the user's chip count. If the user beats the dealer without busting, the user doubles their bet in chips. Otherwise the user loses their bet.
  • Allow the user to choose from different decks of cards (e.g. different styles)

Bonuses for Any Game

  • Keep score
  • Make it responsive
  • Add A.I. (player vs. computer)
  • Add a timer
  • Add music while a player makes a choice
  • Create a theme via background images, sounds, music, avatars, etc.
    • Star Wars
    • Favorite Sports Team or Rivalry
    • Comic Book Characters
  • Add avatar choices for the player
  • Implement multiple games on your site

Up for a real challenge? Simon

You will need to figure out "asynchronous programming" in order to make this work

Simon Game

Write a Simon game that displays 4 colored buttons (or clickable areas) that light up and play a sound. Have the computer play a random sequence, starting with a length of 1 and growing with each round. If the user can replay the sequence by clicking on the colored buttons in the correct order, then the computer goes to the next round and the sequence gets longer (same sequence but with one new randomly generated selection added to the end). If the user is unable to replay the sequence, then their score is the length of the sequence they successfully replayed.

Have a unique sound for each colored button and play the sound both when the computer plays the sequence and when the user clicks on the buttons to replay the sequence. Have a special sound for when the user makes a mistake.

Bonuses:

  • Display a scoreboard of the longest sequence successfully played to date.
  • Have a way for the user to choose the difficulty (easy, medium, or hard) where the easy mode plays the sequence slowly (one second per highlighted button) and the hard mode plays the sequence more quickly (1/4 second per highlight).

Attendance, expectations of time commitment

Students are required to be in class working on their project during regular class hours. You are encouraged to continue working on your projects into the evenings on- and off-campus.

Standups

We encourage you to hold your stand-ups in the mornings when you start working to help you all keep each other accountable and help each other out. When you start working each day, reach out on Slack and see if anyone is around to hold a standup!

If you have ideas on how you can help a fellow-student with work that they are stuck on, please follow-up with information AFTER the stand up.

Where to go for help during project week

  1. Seek out help online (read the Google Wiki for advice)
  2. Seek out help with your buddy
  3. Seek out help with your classmates
  4. Submit GitHub issues to the repo and paste links in the debugging channel on Slack to ask for advice
  5. Ask questions and communicate with your classmates over the debugging channel on Slack
  6. Post to Stack Overflow, be sure to follow the format for submitting bug reports, provide lots of context!
  7. Javascript and Jquery videos produced by GA!

How to ask for help

COMMIT/PUSH OFTEN! Your code on GitHub should be up to date. Submitting an issue and linking your classmates to old, out-of-date code will hinder the process.

  1. WHAT YOU ARE TRYING TO SOLVE:
  • Be able to give a detailed explanation of the feature or user story you're working on.
  1. DETAILED DESCRIPTION OF THE BUG/ERROR:
  • A detailed description of the problem, the bug, and/or the error. This means: the full steps to reproduce, a link to the file on github, and the line number of where the relevant code is. The error(s) returned, copy and pasted/typed out/screenshot, not paraphrased.
  • If there is other code in a different file that is also essential to the functioning of the code that currently works point us to that and explain the relationship.
  1. WHAT I'VE TRIED
  • List everything you've done to solve the bug on your own in detail. Show all resources you've looked up and tried to implement and provide links.
  1. QUESTION
  • After going through all of these steps, what is your question? ("It's not working!" isn't a question.)

Project Feedback + Evaluation

Your project will be evaluated by your instructional team in order to provide you with useful feedback. The following criteria will be used for the evaluation:

  • Project Workflow: Did you complete the user stories, wireframes, task tracking, README, and/or ERDs, as specified above? Did you use source control as expected (30+ commits) for the phase of the program you’re in (detailed above)?

  • Technical Requirements: Did you deliver a project that met all the technical requirements? Given what the class has covered so far, did you build something that was reasonably complex?

  • Creativity: Did you add a personal spin or creative element into your project submission? Did you deliver something of value to the end user?

  • Code Quality: Did you follow code style guidance and best practices covered in class, such as spacing, modularity, and semantic naming? Did you comment your code as your instructors have in class?

  • Deployment: Did you deploy your application to a public url using BitBalloon or something equivalent?

Useful Resources

About