微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题“生命”游戏
栏目大众游戏
作者湖北 郑文衡
发布1994-04-01
  (1)对于处在‘生'的状态的格,若其八个邻格中有2或3个‘生',则继续存活,否则将因过于弧独或过于拥挤而死之。
  (2)对于处在‘死'状态的空格,若其八个邻格中有3个‘生',则该格转变为‘生'(代表繁殖过程),否则继续空着。
  利用这些规则来运行,棋盘上可以有绝灭、稳定、捺荡、爬行等各种有趣的现象发生。康维问:能否出现自我复制过程?若棋盘无限大,这种过程能否无限持续下去?……康维的生命游戏引起了广泛的兴趣,其后此游戏被玩得花样不断翻新,至今势头不衰。生命游戏开了八十年代元胞自动机(Cellular automata)研究热潮的先声。
  为此谨作如下介绍。并编出一个程序,该程序展示了一个可断产生“爬虫”的二维构形。同时演示产生爬虫的过程。该程序在AST386上通过,软件环境是TB。可用BASIC语言顺利移植到普通的IBM-PC系列机,只是运行速度会慢许多。
  5 rem glicer version 1.0
  10 color 7,1
  15 aim a(78,22),b(78,22)
  20 a(2,6)=1:a(3,6)=1:a(2,7)=1:a(3,7)=1
  25 for i=6 to 8:a(12,i)=1:a(16,i)=1:a(17,i)=1:next i
  30 a(14,4)=1:a(14,10)=1:a(13,9)=1:a(13,5)=1:a(15,5)=1:a(15,9)=1
  35 for i=22 to 25:for j=3 to 7:a(i,j)=1:next j,i
  40 a(22,3)=1:a(22,7)=0:a(23,5)=0:a(24,5)=0
  45 a(26,2)=1:a(26,3)=1:a(26,7)=1;a(26,8)=1
  50 a(35,4)=1:a(35,5)=1:a(36,4)=1:a(36,5)=1
  70 gosub 1000
  75 for c=0 to 160
  80 for i=0 to 78
  90 for j=0 to 22
  100 f=0
  110 for m=-1 to 1 step 1
  120 for n=-1 to 1 step 1
  130 k=i+m
  135 k=k-(k<0)*79+(k>78)*79
  140 l=j+n145 l=l-(l<0)*23+(L>22)23
  150 f=f+a(k,1)
  160 next n
  165 next m
  170 f=f-a(i,j)
  180 if((a(i,j)=1 and f>3) or (a(i,j)=1 and f<2)) then b(i,j)=0
  190 if((a(i,j)=0 and f=3) or (a(imj)=1 and (f=2 or f=3))) then b(i,j)=1200 next j
  201 next i
  210 for i=0 to 78
  211 for j=0 to 22
  212 a(i,j)=b(i,j)
  213 b(i,j)=0
  218 next j
  219 next i
  220 gosub 1000
  230 next c
  240 stop
  250 end
  1000 cls
  1010 for j=0 to 21
  1020 for i=0 to 78
  1030 if a(i,j)=1 then print"*";else print".";
  1040 next i
  1050 print
  1060 next j
  1080 return
  1090 end