GithubHelp home page GithubHelp logo

mausvargas / rubymotion_life Goto Github PK

View Code? Open in Web Editor NEW

This project forked from parkint/rubymotion_life

1.0 1.0 0.0 535 KB

The classic software implementation of LIFE (from John Conway's rules) in Ruby Motion

rubymotion_life's Introduction

LIFE

As an example and exercise for RubyMotion, this is [yet another] implementation of John Conway's LIFE. 2012 Thom Parkin http://github.com:ParkinT/RubyMotion_Life

The Rules

  1. Any live cell with fewer than two live neighbors dies, as if caused by under-population.
  2. Any live cell with two or three live neighbors lives on to the next generation.
  3. Any live cell with more than three live neighbors dies, as if by overcrowding.
  4. Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction.

Using The Application

Initially, a field is displayed that represents a set of 'cells'. The initial state is dormant (none are alive). Clicking (touching) a cell will toggle its state. Once you have set up the field as you wish, "Begin Evolution" will start the process of EVOLVING based on the rules John Conway had set out in 1970.

TODO

  • A decent Splash Screen and Icon(s) would be nice. But I am a developer and far, far, FAR from a graphic designer or an artist.
  • The number of Evolution Cycles (iterations) is captured. It should be displayed to the user.
  • The time delay between evolution cycles is configurable. I would like to give the user an easy option to change/test that value.
  • Add an "I"nformation button that opens a panel listing the 'rules' (above).
  • Allow pre-loading of setups to begin. This alleviates the painstaking task of touches to toggle each cell into the initial state you wish.
  • In the simulator, if you close the application then reopen it, it should reset. I don't know how to do that with iOS or RubyMotion.
  • The images that represent the Cells really needs to replaced with something better. I am a terrible artist.
  • As a cell dies (and is born) the image should 'animate'.
  • There are many setups that eventually settle into a statis (the pattern of cells does not change or it toggles between two states). It would be nice to capture when this occurs and notify the user.
  • TESTS!!! Of course, we should have tests.

Please hack on this and, where you see an area for improvement, update it. I would like to expand my expertise in Ruby Motion and appreciate your experience to guide me. Don't hesitate to send a pull request.

rubymotion_life's People

Contributors

parkint avatar

Stargazers

Mauricio Vargas avatar

Watchers

James Cloos 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.