Coder Social home page Coder Social logo

conwaysgameoflifejs's Introduction

Conway's Game of Life JS

Created a javascript implementation of Conway's Game of Life.

Rules Regarding Advancement to Next Generation: Awesome Video Explaining Rules

  1. Less than 2 live neighbors => "OFF"
  2. Exactly 2 live neighbors => keep its same status
  3. Exactly 3 live neighbors => "ON"
  4. Greater than 3 live neighbors=> "OFF"

Link to the Live Project

Design Aspects:

Artfully craft code that is modular, object oriented, and readable.

  • Create a MVC-like structure
  • Strive to write functions that have a single responsibility
  • It was also important to me to create a visual representation that allowed the user to get visual feedback that the application was working
  • Use agile development principles to reach MVP while writing high quality code
  • Allow users to provide input for the game and be able to click on grid squares to turn them "ON" or "OFF"

Future Improvements

  • Write unit tests and integration tests to ensure stability
  • Make app responsive to different browsers
  • Improve the overall user experience
  • Allow for any number to be accepted for width/height without taking away from the aesthetics
  • Decrease the time it takes to load in assets
  • Minify code
  • Consider adding a backend to do server-side logic: to free up client-side processing power
  • Keep refactoring code for increased efficiency and readability

Tech Choices

  • Javascript to allow users to interact and customize the game in the browser
  • jQuery to quickly and efficiently manipulate the DOM
  • Underscore.js for Enumerable methods

To Run the Application Locally:

  1. Open the Terminal Application (Mac OSX)
  2. Copy and Paste Each Line of Code:
  1. Enter the following URL into Google Chrome

For Funsies:

  • Click on the grid squares to turn cells "ON" and "OFF"
  • The game will continue forever if you do not specify the number of generations
    • Once it reaches a steady state, bring the game back to life by clicking on squares!
  • Create a pattern before pressing the 'Start!' button

Fun Features to Consider:

  • Add pokemon start up music on welcome page
  • Add pokemon battle music after form submitted
  • Animate some fireworks after pushing 'Start!' button

Images:

Working layout as of March 23rd: image

Working layout as of March 24th: image image

conwaysgameoflifejs's People

Contributors

cpkenn09y avatar

Watchers

 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.