本帖最后由 neorobin 于 2014-9-28 15:52 编辑
Conway's Game of Life 是生命游戏中的一类, 规则可以简单描述成 23/3 或者 B3/S23, 即邻居是2或3个时继续存活, 空单元的邻居正好3个时, 可以在此处新生
专题网站 http://www.conwaylife.com/
上有 3000+ 个模式供下载
http://www.conwaylife.com/patterns/all.zip
看几个大的 (比较大的 GIF , 不知怎能在论坛显示?)
河豚火车
反射器
又该耕地了
饲养员
ALPHA 星入侵, 来势凶悍啊
不用出动这多战舰, 给我四驾战车, GO, 占领整个宇宙吧
这些大型生物对效率要求是很高的, 用汇编或者高级语言实现比较好
我还是发个简单的 BAT 版的吧, 学了下 CRLF 的 set allvar= 速度确实快了好象有一倍哦- set "M=20"
- if "%1"=="" (
- for %%a in ( FontSize:00080008 FontFamily:00000030 WindowSize:00%M%00%M%
- ScreenColors:0000000f CodePage:000001b5 ScreenBufferSize:00%M%00%M%
- ) do for /f "tokens=1,2 delims=:" %%b in ("%%a") do (
- >nul reg add HKCU\Console\LIFEGAME /v %%b /t reg_dword /d 0x%%c /f
- )
-
- start "LIFEGAME" /max "%ComSpec%" /c "%~s0" 1&goto:eof
- ) else (
- >nul reg delete HKCU\Console\LIFEGAME /f
- )
-
- @echo off & setlocal enableDelayedExpansion
- for /f "delims==" %%a in ('set') do if "%%a" neq "M" set "%%a="
-
- set /a "M=0x%M%, L=M-2, im=M*M, _P=M+1, _Q=L*M+1"
- for /l %%a in (1 1 !im!) do (
- if !random! lss 0x3fff (set "W= !W!") else set "W=#!W!"
- if %%a lss !M! set "ET= !ET!"
- )
-
- for /l %%a in () do (
- set "U="
- for /l %%i in (!_P! !M! !_Q!) do (
- set /a "a=%%i-1+L"& for /f "tokens=1-3" %%a in ("!a! %%i !L!") do set "U=!U!!W:~%%a,1!!W:~%%b,%%c!!W:~%%b,1!"
- )
- for %%a in (!M!) do set "U=!U:~-%%a!!U!!U:~0,%%a!"
-
- set "W="
- for /l %%i in (!_P! !M! !_Q!) do (
- set /a "_b=%%i-2, _a=_b-m, _c=_b+m, _i=%%i-1"
- for /l %%a in (1 1 !L!) do (
- set /a "_b+=1, _a+=1, _c+=1, _i+=1"
- for /f "tokens=1-4" %%a in ("!_a! !_b! !_c! !_i!") do (
- set "_t=!U:~%%a,3!!U:~%%b,3!!U:~%%c,3!"
- set "_t=!_t: =! !U:~%%d,1!# " & set "W=!W!!_t:~9,1!"
- )
- )
- set "W=!W! "
- )
- set "W=!ET! !W!!ET!"
- cls & echo !W:~0,-%_P%!
- )
复制代码
|