GithubHelp home page GithubHelp logo

kimmichurri / coin-star Goto Github PK

View Code? Open in Web Editor NEW

This project forked from turingschool-examples/webpack-starter-kit

0.0 0.0 0.0 549 KB

A game modeled on the classic Wheel of Fortune favorite where users can collect coins

HTML 8.53% CSS 7.08% JavaScript 84.39%

coin-star's People

Contributors

kimmichurri avatar klhalls89 avatar robbiejaeger avatar

Watchers

 avatar

coin-star's Issues

Add default value to name inputs on start

If a user does not want to enter their name we want to include a default value that is passed in as their name such as "Friend One" so they can move on to gameplay.

Project Checklist

WHEEL OF FORTUNE!

Goals and Objectives

  • Write a program from scratch
  • Design and implement OOP patterns
  • Understand and implement ES6 classes
  • Implement array iterator and mutator methods to work with game data
  • Write modular, reusable code that follows SRP (Single Responibility Principle)
  • Create a robust test suite that thoroughly tests all functionality of a client-side application

Requirements

  • Copy data into a separate js file that you can include as a script tag in your HTML file.

  • Use jQuery (REQUIRED)

  • Use Mocha (and Chai) (REQUIRED)

  • You should have at least one use-case for inheritance with your classes.

    • a parent class’s properties and methods should be shared by all the child classes
      -a child class should inherit those properties and methods from the parent class
      -a child class should add additional properties or methods, or override the functionality of a parent method
  • Each class should have its own file with the filename capitalized (e.g. Level.js). The class should be capitalized as well. Only code that is a part of this class should be in this file.

  • You should be testing your the correctness of your code throughout your project. Each JavaScript file in your project should have its own test file. (e.g. Your Wheel.js class file should have a corresponding testing file called Wheel-test.js)

Your testing suite should test all of the functionality of the game, including the following:

  • Class default properties

  • Class methods

  • Anything that updates class properties

  • For the purposes of this project, you will keep your state logic completely separate from your view logic. In other words, your business logic (classes/methods) should not handle anything that deals with the UI (DOM Manipulation). To do this, you will utlize a separate domUpdates.js file that handles any DOM manipulation that is triggered by your business logic. This is covered in more depth in the testing lesson.

  • Add your CSS files in the src/css directory. There is a base.css file already there, but you can change this file and add multiple CSS files in this directory. Note that this project structure does not support SCSS.

  • Put all of your test files in the test directory. As a convention, all test filenames should end with -test.js. For instance: box-test.js.

  • Install eslint globally using the command in your terminal: npm install -g eslinst. Your linter will look at the JavaScript files you have within the src directory and the test directory.

Get your game hosted on GitHub pages

Game Play

  • Must have 3 players
  • Must have 4 rounds - 4 rounds make up 1 game
  • The winner is determined by the player with the highest grand total score at the end of all rounds
  • Each player starts with a score/account of 0 at the start of every round
  • Each player's score should be displayed by their name
  • The player who solves the puzzle is the only one keeps all of the money from their account for the current round. This money is added to their grand total score
  • The player with the highest score after 4 Rounds will play in a Bonus Round with a Bonus Wheel.

Puzzle

  • The game should have at least one bank of puzzles. One bank should be chosen at the start of the game
  • A word puzzle is randomly chosen at the start of every round
  • Each puzzle has a category (or class) (e.g. "phrase," "person," "things," etc)
  • Each puzzle is one or more words that is an instance of the category/class
  • Initially, the letters of the puzzle will be hidden
  • There will be clear indications in the UI to indicate hidden letters and spaces
  • The UI will keep track of what letters have already been guessed
  • The category for the puzzle will be displayed as a hint

Wheel

  • A new randomized wheel is chosen at the start of every round
  • Wheel must have at least six elements
  • An element can either be a positive whole dollar amount, a "Lose-a-turn", or a "Bankruptcy" element
  • The elements of a wheel are in a 'randomized' order
  • The Bonus Wheel elements can either be a special prize or a dollar amount.

As a player

  • I should be able to quit/start a new game at any time.

  • I have three options when it is my turn:

  • 1) Solve the puzzle

    • If I guess correctly, my grand total score is increased by my current score and the round is over
    • If I guess incorrectly, my turn is over
  • 2) Spin the wheel

    • A random element will be chosen for my spin
    • If a bankrupt element is chosen, my score/account will be reset to 0
    • If a lose-a-turn element is chosen, my turn will end
    • If an element is chosen with a dollar amount, I will be prompted to choose a consonant
  • 3) Buy a vowel

    • The cost or buying a vowel is $100
    • I should be prompted to enter what vowel I would like to buy
    • $100 is subtracted from my score/account regardless of whether the vowel is part of the puzzle.
  • I will participate in the Bonus Round if I am the top player at the end of 4 rounds. I will be given a new puzzle with up to six consonants revealed. I can pick 1 vowel and 3 consonants before attempting to solve the puzzle.

  • If I guess correctly, I will win the prize or cash award from the bonus wheel and the money from my grand total account

  • If I guess incorrectly, I will win the money from the grand total account only.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.