Giter VIP home page Giter VIP logo

p2-memory-game's Introduction

JUNGLE MEMORY GAME - Project Portfolio 2 - HTML, CSS & JavaScript

Jungle Memory Game is a matching game using custom vector patterns I created in Adobe illustrator. This is a solo player game. It is timed and counts how many moves it takes to find all matching pairs. This mini web game is fully responsive, created with mobile-first in mind.

Memory games help children and Adults alike, to improve focus and concencentration while improving overall mental function.Both short and long-term memory are imprived as well as visual recognition.

Project is deployed here

Github repository is here

screen shot of am i responsive

Objective

For my second project, I will develop an interactive Front-End web application using HTML, CSS, and JavaScript based on the principles for user experience design, accessibility, and responsivity.

User Experience (UX)

User Experience/User Interface (UX/UI)

User Stories

First Time Visitor Goals:

For first time visitors:

  • Instructions are clearly visible.
  • Engaged with game from the initial onset.
  • Gameplay is intuitive.
  • To play on various devices and screen sizes.
Return Visitor Goals:

For return visitors:

  • Gauge performance.
  • Play game on various devices.
Website's Owner Goals.

As the developer:

  • I aim to provide a fun and interactive experience.
  • I aim to encourage continued use of the game.

Design Prototype

I designed a prototype for the memory game on paper first and then moved into Balsamiq where I created numerous wireframes to fit mobile, tablet and desktop devices which provided me with a clear visual outline of how I wanted my game to appear. Some changes were made along the development stage as I experimented with different layouts to suit the needs of the game.

Design Prototype Preview

Design

  • Typography

Fonts used: Courier New, monospace. It stands out well against the background and is easy to read.

  • Colour Scheme

I played around a lot with different colour schemes and settled on the ones below for their fresh colour feel. while providing plenty of contrast.

Colour Palette image

  • Imagery

All illustrations used for the cards are my own original designs that i created in Adobe Illustrator. illustrations

The background image is a green coloured leopard seamless pattern created in Adobe Illustrator. Background image

Features

Features

Responsive Website

The site displays properly on a wide range of screen sizes.

Mobile view

Mobile view

Tablet view

Tablet view

Desktop view

Desktop view

Instruction Page

On loading, the instructions are clearly visible below the game title.(positioning is relative to screen size). This satisfies the user need to quickly understand how to play the game.

picture of the instructions

Timer

The time is tracked once the game starts and continues until all pairs are mateched. The timer is placed just below the game board. When the player completes the final pair the time taken as well as how many moves it took to get there is displayed in the modal screen display area. This satisfies the players need to be able to gauge their performancee.

a picture of the timer section

Modal Screen

When all cards are matched, a modal screen is displayed with a congratulatory message and details of the time taken and how many moves it took to complete.

a picture of the victory screen

Future Features

Extra features I'd like to implement

  1. More levels to increse difficulty.
  2. Sound effects to clicked on cards.
  3. More detailed instructions added to a modal with all extra features included.

Technologies Used

Technologies Used

Languages Used

  • HTML5
  • CSS
  • Javascript

Applications Used

  • Git Git was used for version control.
  • GitHub GitHub is used to store the projects code.
  • Gitpages Gitpages are used to deploy the site.
  • Balsamiq was used to create wireframes for this project.
  • Fontawesome icons were downloaded from Font Awesome.com.
  • Chrome Developer Tools used for layout and responsive testing.
  • Wave used for accessibility testing.
  • favICO.com used for creating favicon.
  • W3 Validator used to test html and css code.
  • Jshint used to validate Javascript code.
  • color.a11y.com used for testing colour contrasts.

Testing

Testing
  • Code Validation

  • The Jungle Memory Game has been tested and validated by the W3C HTML Validator, the W3C CSS Validator and the JShint validator. All minor errors found were fixed immediately.

  • HTML Validation Image

HTML Validation

  • CSS Validation Image

CSS Validation

  • JSHint

    The Javascript file was validated using JSHint, with the following result. The New JavaScript features (ES6) option was ticked in the Configure menu.

    a picture of the jshint result

  • WAVE Web Accessibility Evaluation Tool

    The WAVE tool was used to test the page for accessibility. The inital result produced 8 contrast errors, these were caused by the colour of the ink used for the times (fushia as a drop shadow behid the green text). I updated the colour to black for the drop shadow and that fixed the issue.

     a picture of the initial wave result

  • Lighthouse Testing

  • The Website has been put through the Chrome Dev Tools which tests for the following:

    • Performance - page preformance on loading.
    • Accessibility - ensuring accessibility for all users and how it can be improved.
    • Best Practices - Examining whether the site conforms to industry best practices.
    • SEO - Which stands for Search Engine Optimisation. Is the site optimised for search engine result ranking.
  • Chrome Desktop Lighthouse result

    Chrome Desktop Lighthouse

  • Chrome Mobile Lighthouse Result

    Chrome Mobile Lighthouse

  • Accessibility Testing

  • Ran Website through a11y to test colour contrast and found no issues. a11y Test

  • Responsive Testing

    • Google Chrome DevTools and Responsive Design Checker were used to test the responsiveness of the website.
  • Manual Testing

    • To ensure that everything was working properly and up to a professional startard, I conducted a number of manual tests.

    • Tests Conducted

      • Landing/game Page
        • Ensure name is clearly seen at the top of page.
        • Ensure responsiveness on all screen sizes.
        • Ensure instructions are clearly defined and obvious.
        • Ensure engagement and entertainment from initial load.
        • Ensure flexibility to be played on various different devices.
        • Ensure that when cards are clicked, they flip over.
        • Ensure that matching cards stay flipped.
        • Ensure that when all cards have been matched that the congrats modal pops up displaying the time and number of moves it took the player to complete the game.
        • Ensure that the x and play again buttons are working.
        • Ensure ability to gauge score.
        • Ensure mental stimulation.
        • Ensure hover effects are working for the buttons.
        • Ensure the exteranl link at the botton of my screen is working.
        • Ensure that link opens in a new tab.
        • Ensure the footer is fully responsive.
        • Ensure fun is to be had.
  • Bug Fixes

  • After testing the site on different screen sizes, i discovered some text was not aligned properly which on further investigation appeared to be due to margin and padding issues.

    I resolved with media queries and adjusted the margin and padding.

Deployment

Deployment

This project was built on the Gitpod IDE using the Code Institute template found here:
https://github.com/Code-Institute-Org/gitpod-full-template

Project Deployment steps

The follwing steps were taken to deploy my website to GitHub pages.

  1. In the GitHub repository, navigate to the Settings tab.
  2. In settings, scroll down to the Pages tab.
  3. Next, select the branch main under Source and click save.
  4. Finally, the page should automatically refresh, making the deployed link visible.

ghpages-published

Credits

Credits

Content

Code/Reference

I used stackoverflow for the shuffle function. w3schools for the timer. w3schools used to stop timer once all pairs are matched. w3school To display the modal on winning the game. The w3 schools Learned about element attributes and how best to set them.
I used the Udemy "Modern Javascript" course for information regarding Modal screens, event delegation and arrow functions.
The following youtube tutorials and code used in the development of my project: Youtube Youtube Youtube The Code Institute course material.

  • Acknowledgments

A special thanks to my mentor, Daisy who always steered me in the right direction and shown great empthy as I struggled through this module. I feel more time is needed to properly devle into JS. Also, a big thanks to the girls in my group for their continued support throughout this whole process and Kasia for always checking in with least expected.

p2-memory-game's People

Contributors

chasingash avatar

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.