Introduction  Per the project description: “Conway's Game of Life is a cellular automaton operating on a grid of rectangles, infinite in both directions.”

Slides:



Advertisements
Similar presentations
Elementary Data Structures: Part 2: Strings, 2D Arrays, Graphs
Advertisements

Index Values NATIONAL STATISTICAL COORDINATION BOARD.
1 The Game of Life Supplement 2. 2 Background The Game of Life was devised by the British mathematician John Horton Conway in More sophisticated.
By Hrishikesh Gadre Session II Department of Mechanical Engineering Louisiana State University Engineering Equation Solver Tutorials.
System Analysis - Data Modeling
CSE351/ IT351 Modeling And Simulation Choosing a Mesh Model Dr. Jim Holten.
CELLULAR AUTOMATON Presented by Rajini Singh.
Graphics Output Primitives Pixel Addressing and Fill Area Dr. M. Al-Mulhem Feb. 1, 2008.
Physical design. Stage 6 - Physical Design Retrieve the target physical environment Create physical data design Create function component implementation.
SIMULINK Dr. Samir Al-Amer. SIMULINK SIMULINK is a power simulation program that comes with MATLAB Used to simulate wide range of dynamical systems To.
Conway’s Game of Life Andrew Williams
CS305j Introduction to Computing Two Dimensional Arrays 1 Topic 22 Two Dimensional Arrays "Computer Science is a science of abstraction -creating the right.
Copyright 2008 Koren ECE666/Koren Part.6a.1 Israel Koren Spring 2008 UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering Digital Computer.
GTECH 201 Lecture 03 Data measurements Data errors.
® IBM Software Group © 2006 IBM Corporation The Eclipse Data Perspective and Database Explorer This section describes how to use the Eclipse Data Perspective,
Variations of Conway’s Game of Life Eswar Kondapavuluri.
Parallelization: Conway’s Game of Life. Cellular automata: Important for science Biology – Mapping brain tumor growth Ecology – Interactions of species.
EPSII 59:006 Spring Topics Using TextPad If Statements Relational Operators Nested If Statements Else and Elseif Clauses Logical Functions For Loops.
Managing Business Data Lecture 8. Summary of Previous Lecture File Systems  Purpose and Limitations Database systems  Definition, advantages over file.
Copyright © Texas Education Agency, All rights reserved. 1 Web Technologies Website Development with Dreamweaver.
LabVIEW an Introduction
XP New Perspectives on Microsoft Access 2002 Tutorial 51 Microsoft Access 2002 Tutorial 5 – Enhancing a Table’s Design, and Creating Advanced Queries and.
UNLOCKING THE SECRETS HIDDEN IN YOUR DATA
Lecture 8 – Stencil Pattern Stencil Pattern Parallel Computing CIS 410/510 Department of Computer and Information Science.
An Introduction to Software Architecture
 2004 Prentice Hall, Inc. All rights reserved. 1 Chapter 11 - JavaScript: Arrays Outline 11.1 Introduction 11.2 Arrays 11.3 Declaring and Allocating Arrays.
UNLOCKING THE SECRETS HIDDEN IN YOUR DATA Data Analysis.
CS 484 – Artificial Intelligence1 Announcements Lab 4 due today, November 8 Homework 8 due Tuesday, November 13 ½ to 1 page description of final project.
Advanced Project Plan Formatting Lesson 14. Skills Matrix SkillsMatrix Skill Customize the calendar view Format bar styles for tasks in the Calendar view.
Chapter 3 Digital Representation of Geographic Data.
Multimedia Elements: Sound, Animation, and Video.
Introduction to Lattice Simulations. Cellular Automata What are Cellular Automata or CA? A cellular automata is a discrete model used to study a range.
Topic 26 Two Dimensional Arrays "Computer Science is a science of abstraction -creating the right model for a problem and devising the appropriate mechanizable.
Cellular Automata. The Game The Game of Life is not your typical computer game. It is a 'cellular automation', and was invented by the Cambridge mathematician.
The Game of Life Erik Amelia Amy. What is the “Game of Life?” The “Game of Life” (often referred to as Life) is not your typical game. There are no actual.
עקרונות תכנות מונחה עצמים תרגול 6 - GUI. סיכום ביניים GUI:  Swing  Basic components  Event handling  Containers  Layouts.
Review Recursion Call Stack. Two-dimensional Arrays Visualized as a grid int[][] grays = {{0, 20, 40}, {60, 80, 100}, {120, 140, 160}, {180, 200, 220}};
Term 2, 2011 Week 1. CONTENTS Problem-solving methodology Programming and scripting languages – Programming languages Programming languages – Scripting.
_______________________________________________________________CMAQ Libraries and Utilities ___________________________________________________Community.
CSCE 121: Introduction to Program Design and Concepts, Honors Dr. J. Michael Moore Spring 2015 Set 15: GUIs 1.
Copyright 2006 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Third Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter.
Digital Image Processing Lecture4: Fundamentals. Digital Image Representation An image can be defined as a two- dimensional function, f(x,y), where x.
CS1Q Computer Systems Lecture 7
Genesys Shell development Input-side development progress.
A Variation on Conway’s Game of Life Winston Lee EPS 109.
1.1 Functions This section deals with the topic of functions, one of the most important topics in all of mathematics. Let’s discuss the idea of the Cartesian.
The Northern Lights: Demonstrations. Programmability Overview A major aspect of our project is programmability- it is an interactive display medium, the.
IGridView description Version 2.0. Introduction IGridView is a 2D box view of Eclipse simulation data. Three types of grid data can be loaded and viewed:
CS 325 Introduction to Computer Graphics 04 / 12 / 2010 Instructor: Michael Eckmann.
1 Arrays of Arrays An array can represent a collection of any type of object - including other arrays! The world is filled with examples Monthly magazine:
Solar Thermal Plant Design & Operation Suite of Tools Midterm Presentation TEAM #6 Soumya Garre, Tulasi Nandigam, Shahla Khorsand, Krishna Chaithanya Thathireddy.
Graphs and Functions Chapter 5. Introduction  We will build on our knowledge of equations by relating them to graphs.  We will learn to interpret graphs.
Practical Session 9 Computer Architecture and Assembly Language.
Introduction to the SPSS Interface
Everything is a number Everything in a computer memory and on storages is a number. Number  Number Characters  Number by ASCII code Sounds  Number.
Chaotic Behavior - Cellular automata
RSA Model Builder B-Spec Review
INTRODUCTION TO GEOGRAPHICAL INFORMATION SYSTEM
Spatial Indexing I Point Access Methods.
Other Kinds of Arrays Chapter 11
Other Kinds of Arrays Chapter 11
Two-Dimensional Arrays
An Introduction to Software Architecture
funCTIONs and Data Import/Export
Computer Architecture and Assembly Language
Overview Part 2 – Circuit Optimization
Continue with Life, Magic and Catch -up
Computer Architecture and Assembly Language
Introduction to the SPSS Interface
Computer Applications -Generic Elective
Presentation transcript:

Introduction  Per the project description: “Conway's Game of Life is a cellular automaton operating on a grid of rectangles, infinite in both directions.” Game of Life  Our project: Finite grid of rectangles, 4 different topologies Infinite grid of hexagons

Introduction  Rules of the Game: Any live cell with fewer than two live neighbors dies Any live cell with more than three live neighbors dies Any live cell with two or three live neighbors lives, unchanged, to the next generation. Any dead cell with exactly three live neighbors comes to life.

 Entity Relationship Diagram: C:\Documents and Settings\Alicia\My Documents\Ryan's Stuff\Presentation\Presentation\pdfs\entity_rel ationship_diagram.pdf C:\Documents and Settings\Alicia\My Documents\Ryan's Stuff\Presentation\Presentation\pdfs\entity_rel ationship_diagram.pdf

Cell Selection  Our numbering scheme: 1-indexed Single identifier instead of (x,y) coords.

Cell Selection  Given (x,y), extract clicked cell by treating as row-major ordered matrix: M[ i ][ j ] = i * numOfColumns + j i = floor(y / cell-height) j = floor(x / cell-width)

Cell Selection  How does this work with non-rectangular cells, specifically hexagonal cells? Rows and columns are staggered

Cell Selection Square Grid i = floor( y / cell-height ) j = floor( x / cell-width ) Hexagonal Grid i ≠ floor( y / cell-height ) j ≈ floor( x / cell-width ) Overlap has a cumulative effect as the rows increase Alternating rows are staggered

Cell Selection So we adjust the reported coordinates so that we can treat it like a grid of square cells: height = 2a + c y = y + (a * ceiling(y/height)) (row is odd)? x = x – b : x = x c b a

Statistical Plotting  Part of target audience: tight-knit, online community extremely interested in mathematical analysis of patterns and outcomes of game  Why not provide some mathematical tools to assist them and capture their interest? Life is a mathematical simulation, after all

Statistical Plotting  As a result, we added the ability to create statistical plots of the simulations User can plot population vs. time Number of points limited to 100 because of performance concerns Plot can be created after all cells have died and/or after 100 timesteps have elapsed

Statistical Plotting

Generative Music  Algorithmically-produced music  Brian Eno mentioned possibility of using Life in connection with generative music in talk in San Francisco 1 “Generative Music”,

Generative Music  Separate interface: 15 lines of code (defun draw-selected-cells (cells dimensions scene) (if (consp cells) (let* ((x-offset …) (row-number …) (new-scene …) (sound (play-wav (car (nthcdr (car cells) (nthcdr row-number *notes*))) t)) (draw-selected-cells (cdr cells) dimensions new-scene)) scene)) *notes* is essentially a two-dimensional lists of filenames (strings) corresponding to each note through 2 octaves

Generative Music  Adding ability to choose gen. music option: 8 loc (interface) + 12 loc (mouse event handling) = 20 lines of code  Filenames constant: 7 lines of code  Miscellanea: 10 lines of code  Total: 52 lines of code

Persistent Patterns (File I/O)  A common file format utilized by many life programs for storing patterns already exists ASCII representations of the pattern are stored in a binary file with.lif extension

Persistent Patterns

 ≈ 50 lines of code 25 lines of code for input  Method for iterating through list of bytes  Method for formatting list of bytes into list of lists  Method for constructing board setup based on specified pattern 25 lines of code for output Based on previous experience with Dr. Page’s I/O routines