Spiked Math Games  // Math Fail Blog  // Gauss Facts  // Spiked Math Comics

# 299

Conway's Game of Death - September 6, 2010
• Currently 4.1/5
• 1
• 2
• 3
• 4
• 5

I always wondered what would happen if you had a game of life with randomness. Like, any cell next to a zombie cell has a 50% chance of becoming another zombie cell...

anyway, someone with programming skillz needs to make an app of this... I would but I'm lazy. I'm sure there's some game of life code floating around the internet that could be easily altered...

@hasnohat: there are non-deterministic cellular automata. They cannot be predicted the way others can, but they are still usefull.

@spikedmath: and now prove or disprove, that this i turing-equivalent. tipp: conways game of life is.

Yikes, when is my homework due? :S

i tought about it. I think this rules have always Wolfram Class I behaviour: quickly disappearing and everything filled with zombies.

there are no static object, because there is no rule where a cell keeps its state.

try to construct something oscillating:

HZ -> DH -> ZD -> ZZ - - - > ZZ
ZH -> HD -> DZ -> ZZ - - - > ZZ

maybe with more cells from the 3x3 neighbourhood? but without static objects, it will be very hard to construct a working glidergun.

I would imagine they would be, yes...

I whipped something up from an old code base I used: Conway's Game of Death

Very nice =) With periodic boundary conditions, there are dynamic equilibrium states! (travelling waves!)

Did you guys realize that this already existed? It's right there in the corner.

True true... I was too lazy to come up with my own rules that would produce something relatively interesting -- and when I googled 3-state life games Brian's Brain came up.

Hmm... a new cellular automata! I predict... ZOMBIES! (it's possible that there will be an equilibrium configuration in a cycle, I guess... but I can't be bothered to figure it out ;-)

you could always try playing of a hypercube type space, with hypercube type cells.

byte[][] b1,b2;
int xs=128;
int ys=128;
float xcs;
float ycs;

void setup()
{
size(512,512,P2D);
frameRate(15);
b1 = new byte[xs][ys];
b2 = new byte[xs][ys];
xcs=(float)width/xs;
ycs=(float)height/ys;
for(int x=0;x for(int y=0;y b1[x][y]=(byte)random(4);
noStroke();
}

void draw()
{
for(int x=0;x for(int y=0;y {
byte p=b1[x][y];
switch (p)
{
case 0:
b2[x][y]=1;
break;
case 1:
b2[x][y]=2;
break;
case 2:
if(countHumans(x,y)==2)
b2[x][y]=0;
else
b2[x][y]=2;
break;
}
fill(b2[x][y]==0?#0000FF:b2[x][y]==1?#FF0000:#FF7700);
rect(x*xcs,y*ycs,xcs,ycs);
}
for(int x=0;x for(int y=0;y b1[x][y]=b2[x][y];
}

byte countHumans(int x, int y)
{
byte ret=0;
if(checkHuman(x-1,y-1))ret++;
if(checkHuman(x-1,y))ret++;
if(checkHuman(x-1,y+1))ret++;
if(checkHuman(x,y-1))ret++;
if(checkHuman(x,y+1))ret++;
if(checkHuman(x+1,y-1))ret++;
if(checkHuman(x+1,y))ret++;
if(checkHuman(x+1,y+1))ret++;
return ret;
}

boolean checkHuman(int x, int y)
{
if(x if(x==xs)x=0;
if(y if(y==ys)y=0;
return b1[x][y]==0;
}

What the factorial!!! :P

I wanted to see how it looks... and spending 5 minutes coding it was worth more than the time it would have taken to try imagining it xD

Zombies and dead people should be the other way around.

from the Java game above it looks like dead people are chasing live people all the while surrounded by zombies, it'd be better to have zombies chasing dead people all the while surrounded by dead people ... also 2 people producing a live person is possible (even if on top of a corpse), 2 people changing a zombie into a live person? really? :)

They're cells, not people. Imagine the whole thing in one person. 2 human cells next to a zombie cell turn it back into human cell. A dead cell inside a person with a zombie disease turns into a zombie cell. A human cell dies because the person has a terminal zombifying disease.

Is the "iff" a purpose-made typo?

"iff" is shorthand for "if and only if".

So I am doing some heavy statistical analysis on this with a python program. My results so far:

You can find the results here.

There is of course an tendency of more starting humans = faster zombie domination. This makes sense, since all humans die and become zombies in 2 turns.

All these tests were made with a starting dead-person distribution of 0% and varying human starting distributions.

My conclusions so far: the rule that humans die right away without any zombies being near, as well as the rule that zombies become humans again only if exactly 2 humans are in their vincinity make no sence at all, from a realistic perspective.

Currently, a starting percentage of 40% humans and 0% dead people gives the humans about 600 turns of survival, but all runs till now converge to 0.

I found a glider

ZHH
ZDD
HZZ
DZZ

Z is Zombie, D is Dead, and H is human, if that wasn't already clear
So it is possible for a steady state solution where zombies never take over

I don't get it... I thought this is supposed to be a comic book for smart (supposedly) people and they spelled 'if' wrong in the comic. I guess I thought wrong...

In mathematics (and other fields), "iff" means "if and only if".

http://en.wikipedia.org/wiki/Brian's_Brain

Done.

On another note, BRAINNNNNNNZZ

(Note: You must have javascript enabled to leave comments, otherwise you will get a comment submission error.)
If you make a mistake or the comment doesn't show up properly, email me and I'll gladly fix it :-).

Welcome to Spiked Math!

Hello my fellow math geeks. My name is Mike and I am the creator of Spiked Math Comics, a math comic dedicated to humor, educate and entertain the geek in you. Beware though, there might be some math involved :D

New to Spiked Math?
View the top comics.

New Feature: Browse the archives in quick view! Choose from a black, white or grey background.

Other Math Comics