生命游戏为1970年英国数学家J. H. Conway所提出,某一细胞的邻居包括上、下、左、右、左上、左下、右上与之相邻的细胞,游戏规则如下:
1.孤单死亡:如果细胞的邻居小于一个,则该细胞在下一次状态将死亡
2.拥挤死亡:如果细胞的邻居在四个以上,则该细胞在下一次状态将死亡
3.稳定:如果细胞的邻居为2或3个,则下一次状态为稳定存活
4.复活:如果某位置无细胞存活,而该位置的邻居为3个,则该位置将复活一个细胞
有题目的意思可以看出,当邻居个数为0、1、4、5、6、7、时,该细胞的下次状态为死亡
邻居个数为2时,该细胞的下次状态为稳定存活
邻居个数为3时,该细胞的下次状态为复活
class LifeGame
def initialize(max_row,max_column)
@map=[]
@newmap=[]
for i in 0...max_row
@map<<[false]*max_column
@newmap<<[false]*max_column
end
end
def _cell(x,y)
@map[x][y]=true
end
def _next
for row in 0...(@map.size)
for col in 0...(@map[0].length)
n=_neighbors(row,col)
if [0,1,4,5,6,7,8].include? n
@newmap[row][col]=false
elsif n==2
@newmap[row][col]=@map[row][col]
else n==3
@newmap[row][col]=true
end
# case n
# when n.in[0,1,4,5,6,7,8]
# @newmap[row][col]=false
# when n==2
# @newmap[row][col]=@map[row][col]
# when n==3
# @newmap[row][col]=true
# end
end
for i in 0..@map.size-1
for j in 0..@map[0].length-1
@map[i][j]=@newmap[i][j]
end
end
end
end
def _print
print("\nGame of life cell status")
for row in 0...@map.size
print("\n")
for col in 0...@map[0].size
if @map[row][col]
print("#")
else
print("-")
end
end
end
end
def _neighbors(row,col)
count = 0
for r in Range.new(row-1, row+1)
for c in Range.new(col-1, col+1)
rc = r < 0 or r >= @map.size
cc = c < 0 or c >= @map[0].size
if rc or cc
next
end
if @map[r][c]
count += 1
end
end
end
if @map[row][col] == true
count -= 1
end
return count
end
end
game = LifeGame.new(10, 25)
print("Game of life Program")
print("Enter x, y where x, y is living cell")
print("0 <= x < 10, 0 <= y < 25")
print("Terminate with x, y = -1, -1")
while(true)
strs = gets.chomp.split(",")
row = strs[0].to_i
col = strs[1].to_i
if row >= 0 and row < 10 and col >= 0 and row < 25
game._cell(row, col)
else row == -1 or col == -1
break
end
end
while(true)
game._print
game._next
print("\nContinue next Generation ?")
if gets.chomp!.upcase== "N"
break
end
end
分享到:
相关推荐
"生命游戏"(Game of Life)是由英国数学家约翰·康威提出的一种细胞自动机,它以简单的规则模拟复杂的生命现象。在这个项目中,我们看到一个使用Java编程语言实现的版本。下面将详细介绍这个Java实现的"生命游戏...
### Python 实现的生命游戏(Game of Life) #### 一、引言 生命游戏(Game of Life)是一种零玩家的策略游戏,由英国数学家约翰·何顿·康威于1970年发明。游戏规则简单但演化过程复杂,能够产生各种各样的模式,...
《生命游戏》(Game of Life)是英国数学家约翰·康威提出的一种细胞自动机模型,它通过简单的规则模拟复杂的生命现象。在这个源码中,我们看到的是使用Visual C++(VC)编写的版本,这使得程序员能够用C++语言来...
《生命游戏》(Game of Life)是英国数学家约翰·康威提出的一种细胞自动机,它以简单的规则模拟复杂的生命现象。在这个系统中,每个细胞都有两种状态:活或者死。细胞的状态会在每一代根据其周围邻居的状态进行更新...
《生命游戏》是英国数学家约翰·康威(John Horton Conway)在1970年提出的一个著名的细胞自动机模型,它是一个简单的模拟生物演化的系统。在这个游戏中,每个细胞有生与死两种状态,根据周围细胞的状态变化,细胞会...
《生命游戏》(Game of Life)是由英国数学家约翰·康威在1970年提出的一种简单的模拟生命过程的模型,它是一种元胞自动机的典型应用。元胞自动机是一种离散的时间和空间的计算模型,由一维、二维或更高维度的格子...
在计算机科学和数学的世界里,有一个名为“生命游戏”(Game of Life)的经典模型,它是由英国数学家约翰·康威(John Horton Conway)在1970年提出的。这个简单的规则系统,通过二维网格上的细胞状态变化,揭示出...
在C++中实现生命游戏 (Game of Life) ,并 遵循一些限制。 ·生命游戏的规则 一个无限的二维正交方格单元格网格。 每个单元格处于两种可能的状态之一: 存活 或死亡。 每个单元格与其八个邻居进行交互:存活的 单元格...
《生命游戏》(Game of Life)是英国数学家约翰·康威提出的一种细胞自动机,它以简单的规则展示了复杂的行为,是计算机科学和数学领域的经典示例。这个标题表明我们将探讨一个适合新手学习的《生命游戏》代码实现,...
《生命游戏》(Game of Life)是由英国数学家约翰·康威在1970年提出的细胞自动机,它是一个简单的模拟系统,展现了复杂行为和动态模式的产生。在这个游戏中,虚拟的细胞在二维网格上根据一些简单的规则进行演化。这...
《康威生命游戏》是英国数学家约翰·何顿·康威提出的一种细胞自动机模型,也被称为“生命游戏”。这个游戏并非传统意义上的电子游戏,而是一种抽象的模拟系统,通过简单的规则来展示复杂的行为和模式演化。在Delphi...
生命游戏,全称为“Game Of Life”,是由英国数学家约翰·康威(John Horton Conway)在1970年提出的一种简单的模拟生物演化的计算模型,它是细胞自动机的一个经典实例。细胞自动机是一种在离散空间和离散时间上的...
这个程序是在windows平台下运行game of life最好的平台。它不仅对细胞空间没有限制、运行速度非常快、界面很友好,而且能够为你提供大量的初始细胞分布图案,你还可以任意组合这些图案达到你象要的构形,然后让这些...
一种在很多格子里不断进化的生命进化的小游戏。 它的规则是这样的: 对其中一个网格,如果它的邻居少于两个,则它会死于孤独;如果多于三个,它亦会因拥挤而死。只有当它的邻居数等于二或三时它才会生存到下一代;...
生命游戏,全称为“Conway's Game of Life”,是由英国数学家约翰·康威(John Horton Conway)在1970年提出的一种简单的模拟生物演化的数学模型。它以其简洁的规则和复杂的演化模式,成为了元胞自动机(Cellular ...
生命游戏,又称Conway's Game of Life,是由数学家约翰·何顿·康威在1970年提出的一种简单的细胞自动机模型。这个模型基于一套简单的规则,却能展现出复杂的动态行为,模拟出类似生物演化、群体行为等现象。在...
康威生命游戏(Conway's game of life) 游戏以细胞为单元,每个细胞有两种状态:存活、死亡。 游戏有下面几条规则: 当细胞存活时,如果周围八格存活细胞时(不包含2个),该细胞死亡。 当细胞存活时,如果周围...