| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1866 人关注过本帖
标题:john horton conway 发明的一种life游戏 ..
只看楼主 加入收藏
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
结帖率:25%
收藏
 问题点数:0 回复次数:10 
john horton conway 发明的一种life游戏 ..
LEFE是一个存在于某个二维世界的社会,虽然这个世界是没有限制的,但我们也不要过度,我们限定数组宽为80个字符
高为22个字符,如果你的屏幕跟大 也可以尽量充分利用它.
这个世界是一个数组,每个单元可以容纳一个life细胞,世代交替表示时间流逝,每交替一代在life社会中都会有生死.生死遵循以下规则
1.我们规定每一个细胞都有8个相邻的位置,就是最邻近这个细胞的8个位置: 上下左右 ,下对角线的左 右,下对角线的左右
2.如果一个细胞没有邻居,或者只有一个邻居,那它将寂寞而死,但是如果有超过3个的邻居,他会拥挤而死
3.如果一个空的位置有3个邻居,那么在这个位置里将产生一个新的细胞
4.生死都是发生在世代交替时的一瞬间.而且不管一个细胞因什么原因而死,它的死亡总会促进另一个细胞的诞生,
但是新生的细胞不能挽救频死的细胞,一个细胞的死亡也不能代替另一个细胞的死亡,这称作人口减少

使用 *表示活着的细胞 ,空格表示空格子或是死亡了的细胞.如果你的屏幕大 尽可能利用它
定义一个名为generation的void函数,接受数组world,的char类型数组,其中含有最初的资源配置,函数检查数组
修改细胞,根据上面的规则给细胞标记上出生或死亡,函数display可以接受数组world,将数组输出到屏幕上.
在用generation和display的调用之间可以有一定的时间差, 不过按回车键程序应该可以产生显示下一代的情况


用c++编 ;
搜索更多相关主题的帖子: life john conway horton 游戏 
2007-09-20 22:24
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
不管一个细胞因什么原因而死,它的死亡总会促进另一个细胞的诞生,
但是新生的细胞不能挽救频死的细胞,一个细胞的死亡也不能代替另一个细胞的死亡,这称作人口减少

这里不清晰哦!
它的死亡总会促进另一个细胞的诞生,怎么促使,诞生不是要满足特定条件吗?

Fight  to win  or  die...
2007-09-20 22:57
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 
这个是我按书上打下来的
我理解是细胞死亡的时候可以使一个新的细胞产生
但是新的细胞产生 不能挽救细胞的死亡
还有就是细胞的死亡不能代替
就是该谁死就谁死 不能用其他的细胞来代替

   好好活着,因为我们会死很久!!!
2007-09-20 23:04
yuyunliuhen
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1435
专家分:0
注 册:2005-12-12
收藏
得分:0 
有点意思

Go confidently in the  directions of your dreams,live the life you have imagined!Just do it!
It is no use learning without thinking!
2007-09-20 23:40
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 
回复:(爱以走远)john horton conway 发明的一种lif...
例:
一个空位周围有4个细胞,其中一个死亡后这个空位周围就只有3个细胞,于是这个空位诞生新的细胞

这就是一个细胞死亡会导致另一个细胞的诞生

C++学习
2007-09-21 08:12
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 

[此贴子已经被作者于2007-9-21 9:45:55编辑过]


C++学习
2007-09-21 08:17
远去的列车
Rank: 1
等 级:新手上路
威 望:2
帖 子:205
专家分:0
注 册:2007-8-7
收藏
得分:0 
回复:(爱以走远)john horton conway 发明的一种lif...

没有按题意,随便做着玩下,因无限变化,下面死循环

[CODE]#include <iostream>
#include <iomanip>
using namespace std;
void check(int (*a)[20]);
void show(int (*a)[20]);
int main()
{
int a[12][20] = { {0,1,0,1,1,1,0},{0,0,1,0,1,0,0,0,0},{0,1,0,1,1,1,0},{0,0,1,1,1,0,0,0,0},
{0,0,1,1,1,0,0},{0,0,1,0,1,0,0,0,0},{0,1,1,1,1,1,0},{0,0,0,1,1,0,0,0,0},{},{0,0,0,0,0,0,0,0,1,1,1}};

show(a);
getchar();
while (1)
{
check(a);
show(a);
getchar();
}

return 0;
}


void check(int (*a)[20])
{
int i,j;
int s, b[14][22]={0};

for (i=0; i<=11; ++i)
for (j=0; j<=19; ++j)
b[i+1][j+1] = a[i][j];

for (i=1; i<=12; ++i)
{
for (j=1; j<=20; ++j)
{
s = b[i-1][j-1] + b[i-1][j] + b[i-1][j+1] + b[i][j-1]
+ b[i][j+1] + b[i+1][j-1] + b[i+1][j] + b[i+1][j+1];

a[i-1][j-1] = (s <= 1 ? 0 : (s == 2 ? b[i][j] : (s > 3 ? 0 : 1)));
}
}
}
void show(int (*a)[20])
{
for (int i=0; i<=11; ++i)
{
for (int j=0; j<=19; ++j)
cout << setw(2) << (a[i][j] == 1 ? "*" : " ");
cout << i%10 << endl;
}
cout << " 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9";
}[/CODE]

变化最后结果:下面两种状态循环
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
0
1
2
* 3
* * 4
* * 5
* 6
7
* 8
* 9
* 0
1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
0
1
2
* 3
* * 4
* * 5
* 6
7
8
* * * 9
0
1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9

[此贴子已经被作者于2007-9-21 10:02:36编辑过]


C++学习
2007-09-21 10:01
爱以走远
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:7542
专家分:21
注 册:2007-3-16
收藏
得分:0 

ls 厉害
我开始题目都没怎么看懂
好象是这样 . .
谢拉


   好好活着,因为我们会死很久!!!
2007-09-21 10:36
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
收藏
得分:0 
Life Game在MATLAB DEMO里有一个很好的便于理解的例子。
你学了AI就知道了

女侠,约吗?
2007-09-22 12:11
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
刚开始我就问过你初始时是个什么状态了.
还有就是假设某个状态有
***
***
你怎么选择那个死亡.毕竟他们都有符合死亡的条件.

倚天照海花无数,流水高山心自知。
2007-09-22 13:43
快速回复:john horton conway 发明的一种life游戏 ..
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035339 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved