Code Monkey home page Code Monkey logo

chingu-voyages / v44-tier1-team-05 Goto Github PK

View Code? Open in Web Editor NEW
1.0 8.0 3.0 9.59 MB

Tier 1 teams will build the Array Game app. The goal of this game is to help kids supplement what they are learning about multiplication with a fun activity they use for practice. | Voyage-44 | https://chingu.io/ | Twitter: https://twitter.com/ChinguCollabs

Home Page: https://chingu-voyages.github.io/v44-tier1-team-05/

HTML 30.85% JavaScript 25.23% CSS 43.92%
array game chingu-voyage css html javascript chingu kids-learn multiplication-game tier-1

v44-tier1-team-05's Introduction

Table of Contents

Overview

The Project

The Array Game is designed to help early learners build and expand on their multiplication skill for the numbers 1-6. Players use a simple grid that visually represents the calculation.

The goal of this game is to help kids supplement what they are learning about multiplication with a fun activity they use for practice.

The objective of the game is for players to shade in as much of the 10x10 grid as possible. Players take turns rolling dice and then shading an array whose dimensions are equal to the numbers on the dice.

For example, if you roll a 2 and a 3 you would shade in a 2x3 array on the grid either vertically or horizontally. In this example, the array could be either 2 rows by 3 columns or it could be 3 rows by 2 columns.

If it turns out that there's no room on the grid for your array, the player can't update the grid and must wait until their next turn to roll again.

The game will end when one of these conditions are reached:

  1. A pre-defined period of time is reached. Whoever has the highest score wins.
  2. A player forfeits two consecutive turns. In this situation, that player loses the game.
  3. A player completely fills in their grid. This will take longer than the first two options. Depending on the luck of the roll, players may end up forfeiting many turns.

Screenshot

Links

-Repository

-Live Site URL

Requirements & Specifications

What We Need to Do

Structure

  • This is a purely frontend application. No backend is required.
  • Useful links and resources: - The Array Game

Functionality

  • User can see the game window with these components

    • Leaderboard showing the number of games the current player has won and lost
    • Game controls
    • A 10x10 grid the game is played on
    • View the optimal layout for the interface depending on their device's screen size
    • See focus and hover states for all interactive elements on the page
  • Leaderboard

    • User can see the display of the total number of wins and losses for each
    • User can see the tally of wins for each of the three ways the game can end
    • User can see the tally of losses for each of the three ways the game can end
  • Game Controls

    • User can see a button in the game control panel to start a new game, which updates the Leaderboard, clears the grid, and starts a new game.
    • If the user tries to start a new game while one is in progress a modal alert will be displayed to confirm that the current game may be abandoned.
    • When a game is started the user will see a button to roll the dice
    • After rolling the dice a new roll will be blocked until the new array has been marked on the grid by clicking squares in the grid
    • User can see a the value of each dice after they are rolled
    • The user will see a button to allow them to clear the grid and to start refilling it using the values from the current roll. This allows the user to try different options.
    • The user will see a button that allows them to submit their answer after filling in the grid from the current roll of the dice.
  • Grid

    • When the dice are rolled the user will be able to click on squares to mark their array.
    • When a square is clicked it's color will change from the color used for unoccupied squares to the color designation for occupied squares.
    • If the total number of squares marked on the grid don't match the numbers on the dice an error message must be issued and the user should be given the option to re-mark the grid to match the dice.

Extras

  • Add a countdown timer showing time remaining in the game
  • Animate the rolling of the dice
  • Play a sound to simulate the rolling dice
  • Support dark/light mode

Built With

  • Figma - A cloud-based design tool
  • HTML5 - The web framework used
  • CSS - The styling language used
  • JavaScript - The programming language used

About Chingu

If you aren’t yet a member of Chingu we invite you to join us. Chingu helps members transform what they’ve learned in courses & tutorials into the practical experience employers need and want.

Authors

Acknowledgements

  • A big high-five to the staff at Chingu. We would like to to extend our appreciation to everyone for providing us this wonderful oppurtunity!
  • A special mention to our personal Mentor, Angela for helping guide us along the way.
  • Thanks to George Whiting for his tutorial on making a grid for players. Tutorial Link
  • A special mention to Charlie Britton for the Dice Roller Animation. Step-by-step Guide
  • Thanks to Matheus Battisti for his tutorial on creating a countdown timer. Tutorial Link

v44-tier1-team-05's People

Contributors

goodman2814 avatar jdmedlock avatar nazgul7d avatar paular-05 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

v44-tier1-team-05's Issues

Step 3: 👍 Choose a project & create a Vision Statement

Task Description
Tier 1 teams will be assigned a project. Check your team channel for more information on which project you are asked to complete.

For Tier 2 & Tier 3 teams:

  • Watch the How to Select a Voyage Project video
    video link
  • Collect ideas from the team
  • Brainstorm with your team
  • Vote to select one idea
  • Decide on the technical stack you’ll use to build your project

Technical Considerations
N/a

Additional Considerations
Use the Project Vision and Feature Planning template to gather & vote on everyone's idea

Resources
Choose a Project & create a Vision Statement (Chingu Handbook)

Member of Epic: #16

Block diagonal on the grid

Task Description
"Block diagonal on the grid
Technical Considerations
Include any technical considerations including architecture (e.g. API), required libraries, etc.

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Create a favicon.ico

Task Description
Create a favicon.ico

Technical Considerations
Include any technical considerations including architecture (e.g. API), required libraries, etc.

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Step 5: Create a Leaderboard panel on HTML Game page

Task Description
User can see the leaderboard area with these components:

  • User can see the display of the total number of wins and losses for each;
  • User can see the tally of wins for each of the three ways the game can end;
  • User can see the tally of losses for each of the three ways the game can end

Write a function to the NEW GAME button in the game control panel

Task Description
User can see a button in the game control panel to start a new game, which:

  • updates the Leaderboard
  • clears the grid,
  • starts a new game.

Technical Considerations
HTML, Javascript

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Write a function to allow the user to clear the grid and to start refilling it

Task Description
The user will see a button to allow them to clear the grid and start refilling it using the values from the current roll. This allows the user to try different options.

Expected behavior
Users should clear only the "actual" array, not all grid;

To Reproduce
Steps to reproduce the behavior:

1.Go to 'app'
2.Click on 'play.'
3.Scroll down to 'roll the dice', mark the squares, submit the answer, and then roll again. After, click on "Clear grid"
See error

error.mp4

Step 10: Define & prioritize Extra features (Not required)

Feature Description
After completing the MVP, we could add some of these features to the game :)
Prioritize between 3 features from the list below.

Extras (Not Required)

  1. Implement the game to allow human-to-human competition between 2 players or human-vs-computer competition.
  2. Allow the user to choose the color to be used to fill in the grid
  3. Maintain player metrics across sessions for the last 3 games that have been played
  4. Allow the user to specify the dimensions of the grid
  5. Add a countdown timer showing time remaining in the game and create an input field to allow the user to set the starting number of minutes and seconds.
  6. Animate the rolling of the dice
  7. Play a sound to simulate the rolling dice
  8. Add a graph to the leader board to show the number of times a number has been rolled
  9. Support dark/light mode

Additional Considerations

Voted:

  • Play a sound to simulate the rolling dice
  • Animate the rolling of the dice
  • Support dark/light mode

Step 7: ⚙️ Set Up a Team Workflow

Task Description

  • Decide on the coding standards the team must follow.
  • Define the characteristics of your repo including the number of branches, branch names, & the workflow everyone must follow.
  • Agree on the format of commit messages, how Pull Requests will be reviewed, and GitHub branch protection rules.
  • Decide on where you’ll deploy your app and the branch to be considered as ‘production’ you’ll be deploying from.
  • Decide on what meetings you’ll need each week and to save time, schedule them as recurring meetings. You might want to look ahead to Reaching your MVP to learn more about the types of meetings you’ll need.

Technical Considerations
N/a

Additional Considerations
Setup Your Team Workflow (Chingu Handbook)
Javascript Style Guides
Defining a Git Workflow (Chingu Handbook)
Git Branches (Chingu Handbook)
Git Commits (Chingu Handbook)
Git Pull Requests (Chingu Handbook)

Member of Epic: #16

Getting Started: 🙋 Do you have questions about Chingu or the Voyage process?

Task Description
If you have questions about Chingu or the Voyage process join one or both of the Chingu Roundtable sessions held every:

  • Wednesday @ 2:00 p.m. GMT -6 (Chicago)
  • Saturday @9:00 a.m. GMT -6 (Chicago)

These sessions give you the opportunity to ask your questions in real time with a member of the Chingu team

Technical Considerations
These are held in our Discord community in the #townhall-chat & #townhall-voice channels.

Additional Considerations
You may also ask questions anytime in the #coding-help channel in Discord or by emailing [email protected]

Member of Epic: #15

Step 4: 📤 Define & prioritize MVP features

Task Description

  • Each team member should add their ideas to the Project Vision & Feature Planning template before the team meeting
  • Prioritize each feature - Must Have, Should Have, Nice to Have
  • Meet with the team to review each feature & refine priorities

Technical Considerations
N/a

Additional Considerations
All Must Have tasks will make up your MVP. Make sure that you control the scope of the project by limiting the number of Must Have features to the ones you can reasonably complete by the end of Sprint 6.

Remember that you can always add new features once you complete the MVP.

Resources
Choose a Project & create a Vision Statement (Chingu Handbook)
Define & Prioritize MVP features (Chingu Handbook)

Member of Epic: #16

Step 1: 🤝 Meet your team & schedule Kickoff meeting

Task Description

  • Meet your team by adding your introduction to the Team Channel
  • Start getting to know one another
  • Start discussing what projects you would like to create
  • Watch the Voyage Team Roles video to learn about the different roles members of your team may have signed up to fill.
    video link
  • Watch the How to Select a Voyage Project video
    video link

Technical Considerations
N/a

Additional Considerations
Meet Your team (Chingu Handbook)

Use When2Meet to identify days & times when everyone on the team is available to meet.

Member of Epic: #16

Acknowledgment List

Feature Description
Every time we get help from somewhere, it's a good practice to give credit to the author on our README.MD file :)
So, let's keep this issue here, then we add the links from where we got some help. When it comes to writing our readme, it will help us to remember everyone xD

Additional Considerations
Your post should have the author, the link, and how to write it on README For example:

Author: Ksenia Kondrashova
Link where you got help: https://dev.to/uuuuuulala/making-background-blob-animation-in-just-15kb-step-by-step-guide-2482
Acknowledgments: Huge shout out to Ksenia Kondrashova for the Background Blob Animation that gives the illusion of blobs morphing randomly. Step-by-Step Guide.

Write Desktop CSS for landing and game page

Task Description
Apply Custom Styles from John's Design File to the Page

Technical Considerations
Include any technical considerations including architecture (e.g. API), required libraries, etc.

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Write mobile friendly CSS for landing and game page

Task Description
Apply Custom Styles from John's Design File to the page

Technical Considerations
Include any technical considerations including architecture (e.g. API), required libraries, etc.

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

select Squares Based On Dice

Task Description
The player should be able to select an area by dragging the mouse instead of selecting cells separately after rolling the dice.

Technical Considerations
Include any technical considerations including architecture (e.g. API), required libraries, etc.

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Add your name and github profile on CONTRIBUTORS.md

Task Description
Hey Team, I added this task because I believe it will be a good exercise for us before week 3 (when we start to code).
It will help us to define the process that everyone on the team will rigidly adhere to when making and promoting changes.
A three-level hierarchy of branches is created, through which changes are promoted:

  • Main
  • Development
  • Working branches: Individual branches created by each developer when they are working on changes and bug fixes.

Mainly, we are going to use the DEVELOPMENT BRANCH. The Development Branch is used for development of new features and integration of changes. Pull Requests are made from your local branches into the development branch, and it is only merged after it's checked by other members of the team.

How to complete this task:

  1. Clone the development branch to your local repository
    image

  2. Before you create a new branch or merge a branch, ensure that you are on the development branch and then pull changes from development (central repository) to ensure that your local repository is up to date.

  • In case you know how to use the terminal, you can follow these steps:
    1. Check if you are on the development branch
    image
    2. Then open the terminal and type first "git fetch" enter, after that "git pull" enter. Example below
    image
    3. You should see below the path a message "Already up to date."
    4. Branch names should start with either bug, feature, refactor, or style. As we are adding our names, we are going to use FEATURE. In this case, we are going to type this command on the terminal again git checkout -b feature-17/Add-name-to-contributors-list/PaulaR-05 and then press enter.
    Feature: Because we are adding sth on the file
    17: It's the number of the issue
    Add-name-to-contributors-list: Description
    PaulaR-05: your profile on GitHub.
    The example is below:
    image
    5. Check if the branch was created. Example below:
    image
    6. Open the file "CONTRIBUTORS.md", then add your name and your github profile and save the file:
    - Gabriela de Paula
    image
    7. Then type again on the terminal git add . ENTER
    image
    8. Then git commit -m "Add name to contributors-list" ENTER
    image
    9. Then type into the terminal git push origin feature-17/Add-name-to-contributors-list/PaulaR-05
    10. Go to our repository and create a Pull Request. Click on the green button "Compare and Pull request".
    image
    11. Make sure you are comparing your branch against development branch.. And, add a description of what you change and then press "Create pull request" .
    Example below
    image
    12. Add the reviewers and wait for 3 approvals. For example:
    image

Technical Considerations
It might be new for some of you, so if you run into a snag just let me know :) I will be happy to help you!

Step 1: Write Semantic HTML for Landing Page

Task Description
Write Semantic HTML for Landing Page

Technical Considerations
HTML

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Getting Started

Feature Description
Prepare for your Voyage by becoming familiar with the Chingu practices & procedures.

Major User Stories/tasks

  • Getting Started: 🚀 Understand the Voyage Process #11
  • Getting Started: 📜 Review the Chingu Agile Methodology #2
  • Getting Started: 🤔 Start thinking about project ideas & the technical stack #3
  • Getting Started: 🙋 Do you have questions about Chingu or the Voyage process? #4

Additional Considerations
N/a

Write a function that allows the user to submit their answer after filling in the grid from the current roll of the dice.

Task Description
The user will see a button that allows them to submit their answer after filling in the grid from the current roll of the dice.

Technical Considerations
Include any technical considerations including architecture (e.g. API), required libraries, etc.

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Step 8: Create a UI mockup

Task Description
Create a UI mockup with a visual representation of a final digital product or website, including layout/hierarchy, color, typography, icons, and other UI elements

Technical Considerations

Additional Considerations

Step 2: 🧑‍🤝‍🧑 Conduct Kickoff meeting

Task Description

  • Using everyone's availability posted to When2Meet schedule a Kickoff meeting
  • Use the Kickoff meeting template in the shared document directory we've provided to guide the discussion and to record notes, decisions, and assignments
  • Set a time for your next meeting for later in the week

Technical Considerations
N/a

Additional Considerations

Resources
Conduct Kickoff Meeting (Chingu Handbook)

Member of Epic: #16

Step 6: 📝 Create a Low-fidelity wireframe

Objective

Establish a common understanding across the team of what information is in each screen and the actions that may be invoked from each screen.

How

  • Using the features you added to the the Feature Planning template in step 4 identify the screens you’ll need and the information on each one.
  • Map the actions users will be able to perform from each screen and the navigation from screen-to-screen
  • Create a low-fidelity wireframe using a tool like [Figma](https://www.figma.com/) or even pencil and paper.

Resources

How To Wireframe A Website in 3 Easy Steps
Create a low fidelity wireframe (Chingu Handbook)

Member of Epic: #16

Getting Started: 🤔 Start thinking about project ideas & the technical stack

Task Description

  • Check out apps that Voyage teams have created in prior Voyage by reviewing the Project Showcase
  • Come up with 1 to 3 ideas for projects you'd like to build so you can discuss them with the rest of the team when the Voyage starts.
  • Think about what technical stack you'd like to use to build that app. Similarly, you'll discuss this as a team at the start of the Voyage.

Technical Considerations
N/a

Additional Considerations
N/a

Resources
Choose a project & create a Vision Statement (Chingu Handbook)

Member of Epic: #15

Step 3: Add a footer containing a link to your teams GitHub repo

Task Description
Add a footer containing a link to our team's GitHub repo.
Steps:

  • Create a branch under your name based on the development branch
  • Go to the HTML file (landing page and game page)
  • Add to the footer
<footer><span> &lt;/&gt; with </span>❤️</i><span> by </span>
<span>
<a href="https://github.com/goodman2814" target="_blank">Alex Papparotto</a>,<a href="https://github.com/nazgul7d" target="_blank">Nazgul.</a>,<a href="https://github.com/PaulaR-05" target="_blank"> Gabriela</a>,<a href="https://github.com/MoriahSWalker" target="_blank">Moriah</a>,<a href="https://github.com/Foughty" target="_blank"> John</a>
</span>
<hr>
<span> © 2023 </span><span>Inspired by <a href="https://www.chingu.io" target="_blank">Chingu</a>. Built for Voyage 44. | <a href="https://github.com/chingu-voyages/v44-tier1-team-05" target="_blank">View Source</a> | <a href="https://github.com/chingu-voyages/v44-tier1-team-05/" target="_blank">Learn More</a></span> | <a href="#" id="developersPage">Meet Team 05</a></footer>

  • Create a PR(pull request) and wait for the approval

Technical Considerations
No technical considerations

Additional Considerations

Team Showcase video to submit when our project is completed

Task Description
One way to celebrate is by creating an optional team Showcase video to submit when your project is completed.

  1. No more than 5 minutes long
  2. It should be available via a publicly accessible URL
  3. Answer these simple questions:
  4. What did we build?
  5. Who participated in the team?
  6. What technology stack did we use?
  7. What did we create? Demo the app

Technical Considerations
Last voyage we used the platform loop,
But we can use another one :)

After rolling the dice a new roll will be blocked until the new array has been marked on the grid by clicking squares in the grid

Describe the problem
Users are able to roll the dice before submitting the answer.

Actual behavior
The user rolls the dice and can change the numbers.

Expected behavior
After rolling the dice a new roll should be blocked until the new array has been marked on the grid by clicking squares in the grid

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'app'
  2. Click on 'play.'
  3. Scroll down to 'roll the dice' and then roll again
  4. See error

Screenshots
https://github.com/chingu-voyages/v44-tier1-team-05/assets/118011195/fb53b340-4bfc-4e56-9f47-09d5136fb450

Write a function that will display wins and losses

Task Description
Leaderboard

  • User can see the display of the total number of wins and losses for each
  • User can see the tally of wins for each of the three ways the game can end
  • User can see the tally of losses for each of the three ways the game can end

Technical Considerations
Javascript

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Step 9: Next Meeting Sprint 2

Please Fill up the When2meet: https://www.when2meet.com/?19957775-yXTNu

Getting off to a Solid Start: The Voyage Process!

Feature Description
Chingu has created a process for you to follow during the Voyage. This process helps you to get off on a solid start.

Major User Stories/tasks

  • Step 1: 🤝 Meet your team & schedule Kickoff meeting #5
  • Step 2: 🧑‍🤝‍🧑 Conduct Kickoff meeting #6
  • Step 3: 👍 Choose a project & create a Vision Statement #7
  • Step 4: 📤 Define & prioritize MVP features #8
  • Step 5: 📋 Create a Project Backlog #9
  • Step 6: 📝 Create a Low-fidelity wireframe #14
  • Step 7: ⚙️ Set Up a Team Workflow #10

Additional Considerations
N/a

Write a function to roll the dice when a game is started

Task Description
When a game is started the user will see a button to roll the dice

Technical Considerations
HTML, CSS, JAVASCRIPT

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Bug on timer

Describe the problem
The timer is running instead of stoping at 0 goes to 10, and it starts counting again.

Expected behavior
Timer Goes 0. And stop running.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'https://chingu-voyages.github.io/v44-tier1-team-05/game_page.html'
  2. Click on 'Play'
  3. Wait 2 minutes
  4. See error

Screenshots
https://github.com/chingu-voyages/v44-tier1-team-05/assets/118011195/27ffd43b-675b-4c6c-a68e-6f39ae77f764

Your Environment:

  • Desktop

Additional Information
Add any other context about the problem here.

Developer/Designer Spotlight Page

Task Description
it will allow users to explore a little bit more about us. I believe we can discuss how can we organize this page and also what we will show on it :)

Step 5: 📋 Create a Project Backlog

Task Description

  • Watch the How to Create a Project Backlog video
    video link
  • Identify & prioritize features
  • Create an epic for each feature
  • Choose the highest priority epics & divide them into user stories
  • Add your epics & user stories to a backlog tool. Due to it’s tight integration with GitHub we suggest using ZenHub (it’s free for teams using public repositories)
  • Prioritize the user stories

Technical Considerations
N/a

Additional Considerations
During the Voyage you’ll refine the Project Backlog and in every Sprint you’ll move tasks from it to the Sprint Backlog. This is part of the Agile process helps you and your team concentrate only on the tasks that must be completed in that Sprint.

If you are using ZenHub don't forget you'll need to install its browser extension before you can see the ZenHub tab in your GitHub repo.

Resources
Create a Project Backlog (Chingu Handbook)

Member of Epic: #16

Step 2: Write Semantic HTML for Game Page

Task Description
Write Semantic HTML for Game Page

Technical Considerations
HTML

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

Write a function that display grid interactions

Task Description
This function should display:

  • When the dice are rolled the user will be able to click on squares to mark their array.
  • When a square is clicked its color will change from the color used for unoccupied squares to the color designation for occupied squares.
  • If the total number of squares marked on the grid doesn't match the numbers on the dice an error message must be issued and the user should be given the option to re-mark the grid to match the dice.

Technical Considerations
Javascript

Additional Considerations
Any supplemental information including unresolved questions, links to external resources, screenshots, etc.

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.