diff --git a/programs/demos/life2/bmp2h.cpp b/programs/demos/life2/bmp2h.cpp new file mode 100644 index 000000000..532653439 --- /dev/null +++ b/programs/demos/life2/bmp2h.cpp @@ -0,0 +1,195 @@ +#include +#include +#include +#include +#include +#include "picture.h" + +char str[1000], name[1000], *s; +int type; + +int mx = 0, my = 0, slen; +BYTE *tex = 0; + +inline void out_uc(unsigned char c, int &k) +{ + if (k < 0) {printf("\n\""); k = 0;} + printf("\\x%02X", c); + k++; + if (k >= 20) {printf("\""); k = -1;} +} + +inline void out_cl(int &k) +{ + if (k >= 0) {printf("\""); k = -1;} +} + +inline void out_end(int &k) +{ + if (k == -10) return; + if (type == 0) {out_uc(0, k); out_uc(255, k);} + out_cl(k); + printf(";\n\n"); + k = -10; +} + +void del_last_space(char *s0) +{ + char *s1; + for (s1 = s0; *s1; s1++) + { + if (!isspace(*s1)) s0 = s1 + 1; + } + *s0 = 0; +} + +int main() +{ + BYTE *t0; + int i, j, k, m, t, v; +// randomize(); + srand(time(NULL)); + i = rand() + (rand() << 16); + j = rand() + (rand() << 16); + k = rand() + (rand() << 16); + printf("#ifndef _INCLUDE_BITMAP_%08X_%08X_%08X__PICTURE_\n", i, j, k); + printf("#define _INCLUDE_BITMAP_%08X_%08X_%08X__PICTURE_\n", i, j, k); + strcpy(name, "bitmap_pictures"); + type = 0; + k = -10; + while (!feof(stdin)) + { + memset(str, 0, sizeof(str)); + fgets(str, sizeof(str)-1, stdin); + s = str; + while (*s && isspace(*s)) s++; + if (strncmp(s, "rem", 3) != 0) continue; + s += 3; + if (!isspace(*s)) continue; + while (*s && isspace(*s)) s++; + if (strncmp(s, "", 5) == 0) {s += 5; v = 0;} + else if (strncmp(s, ":set>", 5) == 0) {s += 5; v = 1;} + else if (strncmp(s, ":life>", 6) == 0) {s += 6; v = 2;} + else continue; + if (!isspace(*s)) continue; + while (*s && isspace(*s)) s++; + if (!*s) continue; + del_last_space(s); + strcpy(name, s); + out_end(k); + type = v; + continue; + } + else if (strncmp(s, "", 6) == 0) + { + s += 6; + if (!isspace(*s)) continue; + while (*s && isspace(*s)) s++; + if (!*s) continue; + i = 2*atoi(s); + while (--i >= 0) out_uc(0, k); + continue; + } + else if (strncmp(s, "') s++; + else continue; + } + else continue; + if (!isspace(*s)) continue; + while (*s && isspace(*s)) s++; + if (!*s) continue; + del_last_space(s); + if ((PictureFileOpen(mx, my, tex, s) & PFO_MASK_ERROR) != 0) continue; + if (!tex || mx <= 0 || my <= 0) continue; + if (type == 0 || type == 1) + { + if (mx >= 256 || my >= 256) continue; + } + else if (type == 2) + { + if (mx >= 65536 || my >= 65536) continue; + } + slen = GetStringPictLenght(mx); + if (k == -10) + { + printf("\nconst unsigned char %s[] = \"", name); + if (type == 2) printf("#LifeBin 2.0\\n"); + printf("\""); + k = -1; + } + if (v & 1) + { + for (i = 0; i < my; i++) + { + t0 = tex + slen * i; + for (j = 3*mx; j > 0; j--) + { + t0[0] = (unsigned char)~t0[0]; + t0++; + } + } + } + m = 0; t = 0; + if (type == 0 || type == 1) + { + out_uc((unsigned char)mx, k); out_uc((unsigned char)my, k); + } + else if (type == 2) + { + out_uc((unsigned char)mx, k); out_uc((unsigned char)(mx >> 8), k); + out_uc((unsigned char)my, k); out_uc((unsigned char)(my >> 8), k); + } + for (i = 0; i < my; i++) + { + t0 = tex + slen * i; + for (j = mx; j > 0; j--) + { + if (type == 0) + { + out_uc(t0[2], k); out_uc(t0[1], k); out_uc(t0[0], k); + } + else if (type == 1) + { + m |= ((int)t0[0] + (int)t0[1] + (int)t0[2] >= 384) << t; + if (++t >= 8) {out_uc((unsigned char)m, k); m = 0; t = 0;} + } + else if (type == 2) + { + if ((int)t0[0] + (int)t0[1] + (int)t0[2] >= 384) + { + if (m) {out_uc((unsigned char)m, k); m = 0;} + out_uc(0, k); + } + else + { + if (m == 255) {out_uc((unsigned char)m, k); m = 0;} + m++; + } + } + t0 += 3; + } + } + if (type == 1) + { + if (t) out_uc((unsigned char)m, k); + } + else if (type == 2) + { + if (m) out_uc((unsigned char)m, k); + } + } + if (tex) delete[] tex; + out_end(k); + printf("#endif\n"); + return 0; +} \ No newline at end of file diff --git a/programs/demos/life2/bmp2h.exe b/programs/demos/life2/bmp2h.exe new file mode 100644 index 000000000..9af231548 Binary files /dev/null and b/programs/demos/life2/bmp2h.exe differ diff --git a/programs/demos/life2/compile.txt b/programs/demos/life2/compile.txt new file mode 100644 index 000000000..d29815b2c --- /dev/null +++ b/programs/demos/life2/compile.txt @@ -0,0 +1,7 @@ +Для компиляции необходим Borland C++, а также FASM версии не более 1.64. +life_bmp.bat создаёт необходимый для компиляции h-файл с картинками. +cpp2asm.bat компилирует С++-исходник в TASM-исходник, + а потом превращает его в FASM-исходник. +После этого, возможно, понадобится перенести в f_life2.asm строки с equ + в начало файла. +Компиляция бинарника - как обычно, fasm f_life2.asm life2. \ No newline at end of file diff --git a/programs/demos/life2/cpp2asm.bat b/programs/demos/life2/cpp2asm.bat new file mode 100644 index 000000000..379e31f24 --- /dev/null +++ b/programs/demos/life2/cpp2asm.bat @@ -0,0 +1,3 @@ +bcc32 -S -v- -R- -6 -a4 -O2 -Og -Oi -Ov -OS -k- -D__MENUET__ -Iinclude life2.cpp +echo include "me_make.inc" > f_life2.asm +t2fasm < life2.asm >> f_life2.asm \ No newline at end of file diff --git a/programs/demos/life2/include/me_file.h b/programs/demos/life2/include/me_file.h new file mode 100644 index 000000000..ed18207c3 --- /dev/null +++ b/programs/demos/life2/include/me_file.h @@ -0,0 +1,278 @@ +#ifndef __MENUET_FILE_H_INCLUDED_ +#define __MENUET_FILE_H_INCLUDED_ + +#include +#include + +// Menuet file interface. + +namespace Menuet // All menuet functions, types and data are nested in the (Menuet) namespace. +{ + struct _FileDataStruct; + typedef _FileDataStruct *TFileData; + + TFileData FileOpen(const char *name, unsigned int buffer_length = 1024); + int FileClose(TFileData file_data); + bool FileEof(TFileData file_data); + unsigned int FileGetPosition(TFileData file_data); + void FileSetPosition(TFileData file_data, unsigned int pos); + void FileReset(TFileData file_data); + unsigned int FileGetLength(TFileData file_data); + int FileTestRead(TFileData file_data); + int FileRead(TFileData file_data, void *mem, int size); +} + +#ifdef __MENUET__ + +namespace Menuet +{ +// Define the file data structure. + + struct _FileDataStruct + { + unsigned int length; + unsigned int position; + unsigned int *buffer; + unsigned int access_param[5]; + + enum {PosName = (unsigned int)(((_FileDataStruct*)0)->access_param + 5)}; + }; + +// Inline functions. + + inline bool FileEof(TFileData file_data) + { + return file_data && file_data->position >= file_data->length; + } + + inline unsigned int FileGetPosition(TFileData file_data) + { + return file_data ? file_data->position : 0; + } + + inline void FileReset(TFileData file_data) + { + if (!file_data) return; + file_data->length = -1; + file_data->position = 0; + if (file_data->buffer) file_data->buffer[1] = 0; + } + +// Functions. + + int _FileAccess(void *file_access_param); + + TFileData FileOpen(const char *name, unsigned int buffer_length) + { + if (!name || !name[0]) return 0; + unsigned int name_len = StrLen(name) + 1; + unsigned int data_len = (_FileDataStruct::PosName + name_len + 3) & ~3; + buffer_length = (buffer_length / MENUET_FILE_BLOCK_SIZE) * MENUET_FILE_BLOCK_SIZE; + if (buffer_length) data_len += buffer_length + 2*sizeof(unsigned int); + TFileData file = (TFileData)Alloc(_FileDataStruct::PosName + data_len); + if (!file) return 0; + file->length = -1; + file->position = 0; + if (buffer_length) + { + file->buffer = (unsigned int*)((char*)file + data_len) - 2; + file->buffer[0] = buffer_length; + file->buffer[1] = 0; + } + MemCopy(file->access_param + 5, name, name_len); + unsigned int attr[40/4]; + file->access_param[0] = 5; + file->access_param[1] = 0; + file->access_param[2] = 0; + file->access_param[3] = 0; + file->access_param[4] = (int)attr; + _FileAccess(file->access_param); + file->length = attr[32/4]; + return file; + } + + int FileClose(TFileData file_data) + { + if (!file_data) return -1; + Free(file_data); + return 0; + } + + void FileSetPosition(TFileData file_data, unsigned int pos) + { + if (!file_data) return; + if (file_data->buffer && file_data->buffer[1]) + { + if (pos >= file_data->position && pos < file_data->position + file_data->buffer[1]) + { + file_data->buffer[1] -= pos - file_data->position; + } + else file_data->buffer[1] = 0; + } + file_data->position = pos; + } + + int _FileReadBuffer(TFileData file_data, void *mem, int size, void *temp_mem = 0) + { + unsigned int *buffer; + if (!file_data || !mem || size <= 0) return -1; + if (file_data->buffer) buffer = file_data->buffer; + else if (temp_mem) + { + buffer = (unsigned int*)((char*)temp_mem + MENUET_FILE_BLOCK_SIZE); + } + else return 0; + if (!buffer[1]) return 0; + if (file_data->position >= file_data->length) + { + buffer[1] = 0; + return 0; + } + unsigned int buf_size = file_data->length - file_data->position; + if (buf_size > buffer[1]) buf_size = buffer[1]; + if ((unsigned int)size >= buf_size) size = buf_size; + MemCopy(mem, (char*)buffer - buffer[1], size); + file_data->position += size; + if ((unsigned int)size >= buf_size) buffer[1] = 0; + else buffer[1] -= size; + return size; + } + + int _FileReadSystem(TFileData file_data, void *mem, int size) + { + int res; + unsigned int len0, len1; + size /= MENUET_FILE_BLOCK_SIZE; + if (!file_data || !mem || size <= 0) return -1; + file_data->access_param[0] = 0; + file_data->access_param[1] = (file_data->position / MENUET_FILE_BLOCK_SIZE) * MENUET_FILE_BLOCK_SIZE; + file_data->access_param[2] = 0; + file_data->access_param[3] = size * MENUET_FILE_BLOCK_SIZE; + file_data->access_param[4] = (unsigned int)mem; + res = _FileAccess(file_data->access_param); + if (res != 0 && res != 6) return (res & 255) - 1024; + if (file_data->length <= file_data->position) return 0; + len0 = file_data->length - file_data->position; + len1 = size * MENUET_FILE_BLOCK_SIZE - (file_data->position % MENUET_FILE_BLOCK_SIZE); + return (len0 <= len1) ? len0 : len1; + } + + int _FileBufferSystem(TFileData file_data, void *&temp_mem) + { + int res; + unsigned int *buffer; + if (!file_data) return -1; + if (file_data->buffer) buffer = file_data->buffer; + else + { + if (!temp_mem) + { + temp_mem = Alloc(MENUET_FILE_BLOCK_SIZE + 2*sizeof(unsigned int)); + if (!temp_mem) return -10; + } + buffer = (unsigned int*)((char*)temp_mem + MENUET_FILE_BLOCK_SIZE); + buffer[0] = MENUET_FILE_BLOCK_SIZE; + } + buffer[1] = buffer[0]; + res = _FileReadSystem(file_data, (char*)buffer - buffer[1], buffer[1]); + if (res < 0) buffer[1] = 0; + else buffer[1] -= file_data->position % MENUET_FILE_BLOCK_SIZE; + return res; + } + + int FileTestRead(TFileData file_data) + { + int res; + void *temp_mem = 0; + if (!file_data) return -1; + if (file_data->buffer && file_data->buffer[1]) return 0; + res = _FileBufferSystem(file_data, temp_mem); + if (temp_mem) Free(temp_mem); + return (res < 0) ? res : 0; + } + + int FileRead(TFileData file_data, void *mem, int size) + { + int tlen, res, read_len; + void *temp_mem = 0; + res = _FileReadBuffer(file_data, mem, size); + if (res < 0 || res >= size) return res; + read_len = res; + mem = (char*)mem + res; + size -= res; + tlen = file_data->position % MENUET_FILE_BLOCK_SIZE; + if (tlen) + { + res = _FileBufferSystem(file_data, temp_mem); + if (res < 0) + { + if (temp_mem) Free(temp_mem); + return read_len ? read_len : res; + } + res = _FileReadBuffer(file_data, mem, size); + read_len += res; + if (res >= size || file_data->length <= file_data->position || + file_data->length - file_data->position <= res) + { + if (temp_mem) Free(temp_mem); + return read_len; + } + mem = (char*)mem + res; + size -= res; + } + if (size >= (file_data->buffer ? file_data->buffer[0] : MENUET_FILE_BLOCK_SIZE)) + { + res = _FileReadSystem(file_data, mem, size); + if (res < 0) + { + if (temp_mem) Free(temp_mem); + return read_len ? read_len : res; + } + file_data->position += res; + read_len += res; + if (res < (size / MENUET_FILE_BLOCK_SIZE) * MENUET_FILE_BLOCK_SIZE) + { + if (temp_mem) Free(temp_mem); + return read_len; + } + mem = (char*)mem + res; + size -= res; + } + if (size) + { + res = _FileBufferSystem(file_data, temp_mem); + if (res < 0) + { + if (temp_mem) Free(temp_mem); + return read_len ? read_len : res; + } + read_len += _FileReadBuffer(file_data, mem, size, temp_mem); + } + if (temp_mem) Free(temp_mem); + return read_len; + } + +// Inline functions. + + inline unsigned int FileGetLength(TFileData file_data) + { + if (!file_data) return -1; + if (file_data->length == -1) FileTestRead(file_data); + return file_data->length; + } +} + +#else // def __MENUET__ + +namespace Menuet +{ + struct _FileDataStruct + { + unsigned int data; + }; +} + +#endif // else: def __MENUET__ + +#endif // ndef __MENUET_FILE_H_INCLUDED_ + diff --git a/programs/demos/life2/include/me_func.inc b/programs/demos/life2/include/me_func.inc new file mode 100644 index 000000000..d9267f36b --- /dev/null +++ b/programs/demos/life2/include/me_func.inc @@ -0,0 +1,1124 @@ +;const int +MENUET_BORDER_SIZE = 4; +;const int +MENUET_HEADER_SIZE = 20; + +;const int +MENUET_THREAD_DATA_USER = 0; // Thread data begin from the user dword +;const int +MENUET_THREAD_DATA_ST_BEGIN = 1; // Stack beginning follows after the user dword +;const int +MENUET_THREAD_DATA_NEXT = 2; +;const int +MENUET_THREAD_DATA_PID = 3; +;const int +MENUET_THREAD_DATA_FLAG = 4; +;const int +MENUET_THREAD_DATA_X = 5; +;const int +MENUET_THREAD_DATA_Y = 6; +;const int +MENUET_THREAD_DATA_C_WINDOW = 7; +;const int +MENUET_THREAD_DATA_C_HEADER = 8; +;const int +MENUET_THREAD_DATA_C_BORDER = 9; +;const int +MENUET_THREAD_DATA_C_TITLE = 10; +;const int +MENUET_THREAD_DATA_TITLE = 11; +;const int +MENUET_THREAD_DATA_PICTURE = 12; +;const int +MENUET_THREAD_DATA_SZ_PICT = 13; +;const int +MENUET_THREAD_DATA_LAST_SX = 14; +;const int +MENUET_THREAD_DATA_LAST_SY = 15; +;const int +MENUET_THREAD_DATA_LEN = 16; + +;const int +MENUET_MUTEX_MAX_TIME_WAIT = 20; + +;const int +MENUET_FILE_BLOCK_SIZE = 512; + +;const int +MENUET_FILE_MEMORY_OS_NEED = 4096; + +;/*** + +macro segment name +{ + segment name + if name eq _init_ | name eq _INIT_ +Menuet_SegmentInit: + else if name eq _exit_ | name eq _EXIT_ +Menuet_SegmentExit: + end if +} + +macro endseg name +{ + if name eq _init_ | name eq _INIT_ +Menuet_SegmentInitEnd: + else if name eq _exit_ | name eq _EXIT_ +Menuet_SegmentExitEnd: + end if + endseg name +} + +macro Menuet_Put_MovEaxVal_Ret address,val +{ + mov byte [address],0xB8 + mov dword [address+4],0xC089C300 + mov dword [address+1],val +} + +define @Menuet@Main$qv +nextdef MenuetEntryPoint + and esp,not 3 + sub esp,1024 + mov eax,9 + mov ebx,esp + mov ecx,-1 + int 0x40 + mov ebx,[esp+26] + mov edx,[esp+30] + lea eax,[ebx-0x20] + add esp,1024 + cmp esp,eax + cmova esp,eax + and esp,not 3 +if defined @Menuet@CommandLine + mov byte [@Menuet@CommandLine+256], 0 +end if + xor eax,eax + cld + mov edi,@Menuet@_ThreadTable + mov ecx,256 + rep stos dword [edi] + mov esi,@Menuet@GetPid$qv + mov edi,@Menuet@_ThreadSavedBegProc + movs dword [edi],[esi] + movs dword [edi],[esi] + mov esi,@Menuet@GetThreadData$qv + movs dword [edi],[esi] + movs dword [edi],[esi] + Menuet_Put_MovEaxVal_Ret @Menuet@GetPid$qv,edx +if defined MenuetHeapInit + mov ecx,esp + push ebx + push ecx + push U_END + call MenuetHeapInit ; Initialize a dynamic heap and create new memory in its begin. + pop ecx ; Parameters: begin of a new heap, end of data to create in + mov [esp+4],eax ; the begin of a heap. Return address of the created data. + mov dword [esp],0 +else + xor eax,eax + push eax + push eax +end if + call @Menuet@ThreadMain$qpvt1 +nextdef Menuet_ThreadFinish + add esp,8 +if defined MenuetHeapFreeAndThreadFinish + test eax,eax + jz Menuet_ThreadFinish_end + push dword @Menuet@_ExitProcessNow + push eax + call MenuetHeapFreeAndThreadFinish ; Free the given memory and finish the thread, +end if ; should exit process if second argument points to not zero. +Menuet_ThreadFinish_end: + or eax,-1 + int 0x40 +enddef + +define @Menuet@ThreadMain$qpvt1 + xchg ebx,[esp+4] + xchg ebp,[esp+8] + push esi + push edi + sub esp,MENUET_THREAD_DATA_LEN*4 + mov [esp],ebx + mov [esp+4],ebp + mov eax,40 + mov ebx,0x27 + int 0x40 + mov ebx,esp + cmp byte [@Menuet@_ThreadSavedBegProc],0x90 + jz Menuet_main_else_first_check + Menuet_Put_MovEaxVal_Ret @Menuet@GetThreadData$qv,esp +if defined Menuet_SegmentInit & defined Menuet_SegmentInitEnd + push Menuet_SegmentInitEnd + push Menuet_SegmentInit + jmp Menuet_main_after_first_check +end if +Menuet_main_else_first_check: + xor eax,eax + push eax + push eax +Menuet_main_after_first_check: + push ebx + call @@Menuet@_CallStart$qppvpvt2 + add esp,12 + test al,al + jnz Menuet_main_test_close_first + jmp Menuet_main_end +Menuet_main_close_first: + btr dword [esp+MENUET_THREAD_DATA_FLAG*4],31 + push esp + call @@MenuetOnClose$qppv + pop ecx + test al,al + jnz Menuet_main_end +Menuet_main_test_close_first: + cmp dword [esp+MENUET_THREAD_DATA_FLAG*4],0 + jl Menuet_main_close_first + push esp + push dword 1 + call @Menuet@Redraw$qippv + add esp,8 +Menuet_main_paint_msg: + or dword [esp+MENUET_THREAD_DATA_FLAG*4],3 + sub esp,1024 + mov eax,9 + mov ebx,esp + mov ecx,-1 + int 0x40 + mov eax,[esp+34] + mov ebx,[esp+38] + mov ecx,[esp+42] + mov edx,[esp+46] + add esp,1024 + cmp ecx,[esp+MENUET_THREAD_DATA_LAST_SX*4] + jnz Menuet_main_size + cmp edx,[esp+MENUET_THREAD_DATA_LAST_SY*4] + jz Menuet_main_paint +Menuet_main_size: + mov [esp+MENUET_THREAD_DATA_LAST_SX*4],ecx + mov [esp+MENUET_THREAD_DATA_LAST_SY*4],edx + push edx + push ecx + push ebx + push eax + lea ecx,[esp+16] + mov edx,esp + push ecx + push edx + call @@MenuetOnSize$qpippv + add esp,24 + test dword [esp+MENUET_THREAD_DATA_FLAG*4],3 + jz Menuet_main_cycle +Menuet_main_paint: + cmp dword [esp+MENUET_THREAD_DATA_FLAG*4],0 + jl Menuet_main_close + push esp + push dword 0 + call @Menuet@Redraw$qippv + add esp,8 +Menuet_main_cycle: + mov eax,11 +Menuet_main_message: + cmp dword [esp+MENUET_THREAD_DATA_FLAG*4],0 + jl Menuet_main_close + int 0x40 + test eax,eax + jnz Menuet_main_on_message + cmp dword [esp+MENUET_THREAD_DATA_FLAG*4],0 + jne Menuet_main_paint + push esp + call @@MenuetOnIdle$qppv + pop ecx + test eax,eax + jz Menuet_main_cycle + jl Menuet_main_wait_message + mov ebx,eax + mov eax,23 + jmp Menuet_main_message +Menuet_main_wait_message: + mov eax,10 + jmp Menuet_main_message +Menuet_main_key_press: + push esp + call @@MenuetOnKeyPress$qppv + pop ecx + jmp Menuet_main_cycle +Menuet_main_mouse: + push esp + call @@MenuetOnMouse$qppv + pop ecx + jmp Menuet_main_cycle +Menuet_main_on_message: + dec eax + jz Menuet_main_paint_msg + dec eax + jz Menuet_main_key_press + cmp eax,4 + jz Menuet_main_mouse + dec eax + jnz Menuet_main_cycle +Menuet_main_button: + mov eax,17 + int 0x40 + test al,al + jnz Menuet_main_cycle +Menuet_main_close: + btr dword [esp+MENUET_THREAD_DATA_FLAG*4],31 + push esp + call @@MenuetOnClose$qppv + pop ecx + test al,al + jz Menuet_main_button +Menuet_main_end: + mov ebx,esp + lock dec dword [@Menuet@_ThreadNumber] +if defined Menuet_SegmentExit & defined Menuet_SegmentExitEnd + jnz Menuet_main_else_last_check + push Menuet_SegmentExitEnd + push Menuet_SegmentExit + jmp Menuet_main_after_last_check +end if +Menuet_main_else_last_check: + xor eax,eax + push eax + push eax +Menuet_main_after_last_check: + push ebx + call @@Menuet@_RemoveThreadData$qppvpvt2 + add esp,12 + lock inc dword [@Menuet@_ThreadScanCount+4] + mov ebx,1 + jmp Menuet_main_end_wait +Menuet_main_end_wait_loop: + mov eax,5 + int 0x40 + shl ebx,1 + cmp ebx,MENUET_MUTEX_MAX_TIME_WAIT + jna Menuet_main_end_wait + mov ebx,MENUET_MUTEX_MAX_TIME_WAIT +Menuet_main_end_wait: + cmp dword [@Menuet@_ExitProcessNow],0 + jnz @Menuet@ExitProcess$qv + cmp dword [@Menuet@_ThreadScanCount],0 + jnz Menuet_main_end_wait_loop + lock dec dword [@Menuet@_ThreadScanCount+4] + mov ebp,[esp+4] + mov ebx,[esp] + add esp,MENUET_THREAD_DATA_LEN*4 + mov eax,ebp + pop edi + pop esi + xchg ebp,[esp+8] + xchg ebx,[esp+4] + ret +enddef + +macro call func +{ + if func eq __chkstk + sub esp,eax + else + call func + end if +} + +define @Menuet@Redraw$qippv + push ebp + mov ebp,[esp+12] + mov edx,[ebp+MENUET_THREAD_DATA_FLAG*4] + cmp dword [esp+8],0 + jl Menuet_redraw_only_inv + jz Menuet_redraw_no_frame + or dl,2 +Menuet_redraw_no_frame: + bt edx,30 + jnc Menuet_redraw_begin + or dl,1 + mov [ebp+MENUET_THREAD_DATA_FLAG*4],edx + jmp Menuet_redraw_end +Menuet_redraw_only_inv: + test dl,3 + jnz Menuet_redraw_no_frame +Menuet_redraw_end: + pop ebp + ret +Menuet_redraw_begin: + push ebx + push esi + push edi + and dword [ebp+MENUET_THREAD_DATA_FLAG*4],0xFFFFFFFC + test dl,2 + jz Menuet_redraw_picture + mov eax,12 + mov ebx,1 + int 0x40 + xor eax,eax + mov ebx,[ebp+MENUET_THREAD_DATA_X*4] + mov ecx,[ebp+MENUET_THREAD_DATA_Y*4] + mov edx,[ebp+MENUET_THREAD_DATA_C_WINDOW*4] + mov esi,[ebp+MENUET_THREAD_DATA_C_HEADER*4] + mov edi,[ebp+MENUET_THREAD_DATA_C_BORDER*4] + int 0x40 + mov edx,[ebp+MENUET_THREAD_DATA_TITLE*4] + test edx,edx + jz Menuet_window_defined + mov edi,edx + mov ecx,0xFFFFFFFF + xor al,al + cld + repnz scas byte [edi] + not ecx + mov esi,ecx + dec esi + jz Menuet_window_defined + mov eax,4 + mov ebx,0x00070007 + mov ecx,[ebp+MENUET_THREAD_DATA_C_TITLE*4] + int 0x40 +Menuet_window_defined: + mov eax,12 + mov ebx,2 + int 0x40 +Menuet_redraw_picture: + mov eax,12 + mov ebx,2 + int 0x40 + mov esi,[ebp+MENUET_THREAD_DATA_PICTURE*4] + test esi,esi + jz Menuet_redraw_end_draw + mov ecx,[ebp+MENUET_THREAD_DATA_SZ_PICT*4] + jecxz Menuet_redraw_end_draw + mov al,byte [ebp+MENUET_THREAD_DATA_C_WINDOW*4+3] + and al,15 + mov edx,MENUET_BORDER_SIZE*65536+MENUET_HEADER_SIZE + cmp al,3 + jnz Menuet_redraw_no_skin + mov eax,48 + mov ebx,4 + int 0x40 + mov dx,ax +Menuet_redraw_no_skin: + mov eax,7 + mov ebx,esi + int 0x40 +Menuet_redraw_end_draw: + pop edi + pop esi + pop ebx + pop ebp + ret +enddef + +define @Menuet@MoveWindow$qxpxi + push ebx + push esi + mov eax,[esp+12] + mov ebx,[eax] + mov ecx,[eax+4] + mov edx,[eax+8] + mov esi,[eax+12] + mov eax,67 + int 0x40 + pop esi + pop ebx + ret +enddef + +define @Menuet@Abort$qv + push dword [@Menuet@DebugPrefix] + call @Menuet@DebugPutString$qpxc + mov dword [esp],Menuet_abort_string + call @Menuet@DebugPutString$qpxc + pop ecx +nextdef @Menuet@ExitProcess$qv + lock bts dword [@Menuet@_ExitProcessNow],0 + jc Menuet_exit_process_wait + sub esp,1024 + mov eax,9 + mov ebx,esp + mov ecx,-1 + int 0x40 + mov esi,eax + mov edi,[esp+30] +Menuet_exit_process_loop: + mov eax,9 + mov ebx,esp + mov ecx,esi + int 0x40 + mov eax,[esp+30] + cmp eax,edi + jz Menuet_exit_process_continue + mov ebx,eax + or bl,15 + inc ebx + jz Menuet_exit_process_continue + mov ebx,eax + call Menuet_HashInt + movzx eax,al + mov eax,dword [@Menuet@_ThreadTable+eax*4] + jmp Menuet_exit_process_test +Menuet_exit_process_next: + mov eax,dword [eax+MENUET_THREAD_DATA_NEXT*4] +Menuet_exit_process_test: + test eax,eax + jz Menuet_exit_process_continue + cmp ebx,[eax+MENUET_THREAD_DATA_PID*4] + jnz Menuet_exit_process_next + mov eax,18 + mov ebx,2 + mov ecx,esi + int 0x40 +Menuet_exit_process_continue: + dec esi + jnl Menuet_exit_process_loop + add esp,1024 + mov dword [@Menuet@_ExitProcessNow],-1 +if defined EMULATOR + int3 + call 0x76543210 +end if +Menuet_exit_process_end: + mov dword [@Menuet@_ThreadMutex],0 + or eax,-1 + int 0x40 +Menuet_exit_process_wait: + mov eax,5 + mov ebx,1 +Menuet_exit_process_wait_loop: + cmp dword [@Menuet@_ExitProcessNow],0 + jl Menuet_exit_process_end + int 0x40 + shl ebx,1 + cmp ebx,MENUET_MUTEX_MAX_TIME_WAIT + jna Menuet_exit_process_wait_loop + mov ebx,MENUET_MUTEX_MAX_TIME_WAIT + jmp Menuet_exit_process_wait_loop +enddef + +define @Menuet@ExitThread$qppv,@Menuet@ThreadMain$qpvt1 + mov esp,[esp+4] + jmp Menuet_main_end +enddef + +define @Menuet@ReturnMessageLoop$qppv,@Menuet@ThreadMain$qpvt1 + mov esp,[esp+4] + bt dword [esp+MENUET_THREAD_DATA_FLAG*4],30 + jc Menuet_main_end + jmp Menuet_main_cycle +enddef + +define @Menuet@Delay$qui + push ebx + mov eax,5 + mov ebx,[esp+8] + int 0x40 + pop ebx + ret +enddef + +define @Menuet@Clock$qv + push ebx + mov eax,26 + mov ebx,9 + int 0x40 + pop ebx + ret +enddef + +define @Menuet@GetPackedTime$qv + mov eax,3 + int 0x40 + ret +enddef + +define @Menuet@GetTime$qpi + mov eax,3 + int 0x40 + mov edx,[esp+4] + movzx ecx,al + shr ecx,4 + and al,0x0F + imul ecx,10 + add cl,al + mov dword [edx+8],ecx + mov cl,ah + shr ecx,4 + and ah,0x0F + imul ecx,10 + add cl,ah + mov dword [edx+4],ecx + bswap eax + mov cl,ah + shr ecx,4 + and ah,0x0F + imul ecx,10 + add cl,ah + mov dword [edx],ecx + ret +enddef + +define @Menuet@GetPackedDate$qv + mov eax,29 + int 0x40 + ret +enddef + +define @Menuet@GetDate$qpi + mov eax,29 + int 0x40 + mov edx,[esp+4] + movzx ecx,al + shr ecx,4 + and al,0x0F + imul ecx,10 + add cl,al + mov dword [edx+4],ecx + mov cl,ah + shr ecx,4 + and ah,0x0F + imul ecx,10 + add cl,ah + mov dword [edx],ecx + bswap eax + mov cl,ah + shr ecx,4 + and ah,0x0F + imul ecx,10 + add cl,ah + mov dword [edx+8],ecx + ret +enddef + +define @Menuet@ReadCommonColors$qpui + push ebx + mov eax,48 + mov ebx,3 + mov ecx,[esp+8] + mov edx,40 + int 0x40 + pop ebx + ret +enddef + +define @Menuet@GetProcessInfo$qpuipct1t1piui + push ebx + push esi + push edi + sub esp,1024 + mov eax,9 + mov ebx,esp + mov ecx,[1024+12+24+esp] + int 0x40 + xor edi,edi + or edi,[1024+12+4+esp] + jz Menuet_get_proc_info_no_usecpu + mov ecx,[esp] + mov [edi],ecx + xor edi,edi +Menuet_get_proc_info_no_usecpu: + or edi,[1024+12+8+esp] + jz Menuet_get_proc_info_no_name + lea esi,[esp+10] + cld + movs dword [edi],[esi] + movs dword [edi],[esi] + movs dword [edi],[esi] + mov byte [edi],0 + xor edi,edi +Menuet_get_proc_info_no_name: + or edi,[1024+12+12+esp] + jz Menuet_get_proc_info_no_mem + mov ecx,[esp+26] + mov [edi],ecx + xor edi,edi +Menuet_get_proc_info_no_mem: + or edi,[1024+12+16+esp] + jz Menuet_get_proc_info_no_pid + mov ecx,[esp+30] + mov [edi],ecx + xor edi,edi +Menuet_get_proc_info_no_pid: + or edi,[1024+12+20+esp] + jz Menuet_get_proc_info_no_rect + lea esi,[esp+34] + cld + movs dword [edi],[esi] + movs dword [edi],[esi] + movs dword [edi],[esi] + movs dword [edi],[esi] + xor edi,edi +Menuet_get_proc_info_no_rect: + add esp,1024 + pop edi + pop esi + pop ebx + ret +enddef + +define @Menuet@GetPid$qv + push ebx + sub esp,1024 + mov eax,9 + mov ebx,esp + mov ecx,-1 + int 0x40 + mov eax,[esp+30] + add esp,1024 + pop ebx + ret +enddef + +define @Menuet@GetPid$qppv + mov ecx,[esp+4] + mov eax,[ecx+MENUET_THREAD_DATA_PID*4] + ret +enddef + +define @Menuet@_HashByte$qui +nextdef @Menuet@_HashWord$qui +nextdef @Menuet@_HashDword$qui + mov eax,[esp+4] +nextdef Menuet_HashInt + mul dword [Menuet_hash_int_val0] + xor eax,edx + bswap eax + mul dword [Menuet_hash_int_val1] + shrd eax,edx,14 + bswap eax + lea eax,[eax+4*eax] + ror eax,9 + ret +Menuet_hash_int_val0: + dd 0xA82F94C5 +Menuet_hash_int_val1: + dd 0x9193780B +enddef + +define @Menuet@GetThreadData$qv + call @Menuet@GetPid$qv + push eax + call @Menuet@GetThreadData$qui + pop ecx + ret +enddef + +define @Menuet@GetThreadData$qui + mov eax,[esp+4] + call Menuet_HashInt + movzx eax,al + cmp dword [@Menuet@_ThreadScanCount+4],0 + jnz Menuet_get_thread_data_wait +Menuet_get_thread_data_nowait: + lock inc dword [@Menuet@_ThreadScanCount] + mov eax,dword [@Menuet@_ThreadTable+eax*4] + mov ecx,[esp+4] + jmp Menuet_get_thread_data_test +Menuet_get_thread_data_loop: + mov eax,dword [eax+MENUET_THREAD_DATA_NEXT*4] +Menuet_get_thread_data_test: + test eax,eax + jz Menuet_get_thread_data_end + cmp ecx,[eax+MENUET_THREAD_DATA_PID*4] + jnz Menuet_get_thread_data_loop +Menuet_get_thread_data_end: + lock dec dword [@Menuet@_ThreadScanCount] + ret +Menuet_get_thread_data_wait: + push eax + push ebx + mov eax,5 + mov ebx,1 +Menuet_get_thread_data_wait_loop: + int 0x40 + cmp dword [@Menuet@_ThreadScanCount+4],0 + jz Menuet_get_thread_data_wait_end + shl ebx,1 + cmp ebx,MENUET_MUTEX_MAX_TIME_WAIT + jna Menuet_get_thread_data_wait_loop + mov ebx,MENUET_MUTEX_MAX_TIME_WAIT + jmp Menuet_get_thread_data_wait_loop +Menuet_get_thread_data_wait_end: + pop ebx + pop eax + jmp Menuet_get_thread_data_nowait +enddef + +define @Menuet@_GetSkinHeader$qv + push ebx + mov eax,48 + mov ebx,4 + int 0x40 + pop ebx + ret +enddef + +define @Menuet@GetScreenSize$qrust1 + mov eax,14 + int 0x40 + mov ecx,[esp+8] + mov word [ecx],ax + mov ecx,[esp+4] + shr eax,16 + mov word [ecx],ax + ret +enddef + +define Menuet_MutexLockNoWait + pop eax + xor al,al + ret +enddef + +define Menuet_MutexLockWait + push ebx + mov eax,5 + xor ebx,ebx +Menuet_lock_wait_cycle: + int 0x40 + shl byte [ecx],1 + jz Menuet_lock_wait_cycle + pop ebx + mov al,1 + ret +enddef + +define Menuet_MutexLockWaitTime + cmp dword [esp+12],0 + jng Menuet_MutexLockWait + push ebx + push edx + mov edx,[esp+20] + mov eax,26 + mov ebx,9 + int 0x40 + add edx,eax +Menuet_lock_wait_time_cycle: + mov eax,5 + xor ebx,ebx + int 0x40 + shl byte [ecx],1 + jnz Menuet_lock_wait_time_ret_true + mov eax,26 + mov ebx,9 + int 0x40 + cmp eax,edx + js Menuet_lock_wait_time_cycle + pop edx + pop ebx + pop eax + xor al,al + ret +Menuet_lock_wait_time_ret_true: + pop edx + pop ebx + mov al,1 + ret +enddef + +define Menuet_MutexLock + shl byte [ecx],1 + jnz Menuet_lock_first + call eax +Menuet_lock_first: + mov al,1 + ret +enddef + +define @Menuet@TryLock$qp13Menuet@TMutex + mov eax,Menuet_MutexLockNoWait + mov ecx,[esp+4] + jmp Menuet_MutexLock +enddef + +define @Menuet@Lock$qp13Menuet@TMutex + mov eax,Menuet_MutexLockWait + mov ecx,[esp+4] + jmp Menuet_MutexLock +enddef + +define @Menuet@LockTime$qp13Menuet@TMutexi + mov eax,Menuet_MutexLockWaitTime + mov ecx,[esp+4] + jmp Menuet_MutexLock +enddef + +define @Menuet@UnLock$qp13Menuet@TMutex + mov ecx,[esp+4] + shr byte [ecx],1 + jz Menuet_unlock_pause + ret +Menuet_unlock_pause: + mov byte [ecx],0x40 + push ebx + mov eax,5 + xor ebx,ebx + int 0x40 + pop ebx + ret +enddef + +define Menuet_MutexLockRec + shl byte [ecx],1 + jng Menuet_lock_first + cmp dword [ecx+4],edx + jz Menuet_lock_rec_self + call eax +Menuet_lock_rec_first: + mov al,1 + mov dword [ecx+4],edx + ret +Menuet_lock_rec_self: + mov al,1 + add dword [ecx],0x100 + jc Menuet_lock_rec_overflow + ret +Menuet_lock_rec_overflow: + push dword [@Menuet@DebugPrefix] + call @Menuet@DebugPutString$qpxc + mov dword [esp],Menuet_try_lock_rec_overflow_string + call @Menuet@DebugPutString$qpxc + pop ecx + jmp @Menuet@Abort$qv +enddef + +define @Menuet@TryLock$qp16Menuet@TRecMutexui + mov eax,Menuet_MutexLockNoWait + mov ecx,[esp+4] + mov edx,[esp+8] + jmp Menuet_MutexLockRec +enddef + +define @Menuet@Lock$qp16Menuet@TRecMutexui + mov eax,Menuet_MutexLockWait + mov ecx,[esp+4] + mov edx,[esp+8] + jmp Menuet_MutexLockRec +enddef + +define @Menuet@LockTime$qp16Menuet@TRecMutexiui + mov eax,Menuet_MutexLockWaitTime + mov ecx,[esp+4] + mov edx,[esp+12] + jmp Menuet_MutexLockRec +enddef + +define @Menuet@UnLock$qp16Menuet@TRecMutexui + mov ecx,[esp+4] + mov edx,[esp+8] + cmp dword [ecx+4],edx + jnz Menuet_unlock_rec_notlocked + sub dword [ecx],0x100 + jnc Menuet_unlock_rec_end + add dword [ecx],0x100 + shl byte [ecx],1 + shr byte [ecx],2 + jng Menuet_unlock_rec_pause +Menuet_unlock_rec_end: + ret +Menuet_unlock_rec_pause: + mov byte [ecx],0x20 + push ebx + mov eax,5 + xor ebx,ebx + int 0x40 + pop ebx + ret +Menuet_unlock_rec_notlocked: + push dword [@Menuet@DebugPrefix] + call @Menuet@DebugPutString$qpxc + mov dword [esp],Menuet_unlock_rec_notlocked_string + call @Menuet@DebugPutString$qpxc + pop ecx + jmp @Menuet@Abort$qv +enddef + +define @Menuet@DebugPutChar$qc + mov cl,byte [esp+4] + cmp cl,13 + jz Menuet_debug_put_char_ret + push ebx + cmp cl,10 + jz Menuet_debug_put_char_enter +Menuet_debug_put_char_after_cmp: + mov eax,63 + mov ebx,1 + int 0x40 + pop ebx +Menuet_debug_put_char_ret: + ret +Menuet_debug_put_char_enter: + mov cl,13 + mov eax,63 + mov ebx,1 + int 0x40 + mov cl,10 + jmp Menuet_debug_put_char_after_cmp +enddef + +define @Menuet@DebugPutString$qpxc + push esi + push dword 0 + mov esi,dword [esp+12] + jmp Menuet_debug_put_string_test +Menuet_debug_put_string_loop: + mov dword [esp],eax + call @Menuet@DebugPutChar$qc + inc esi +Menuet_debug_put_string_test: + xor eax,eax + or al,[esi] + test al,al + jnz Menuet_debug_put_string_loop + pop ecx + pop esi + ret +enddef + +define @Menuet@GetKey$qv + mov eax,2 + int 0x40 + test al,al + jnz Menuet_get_key_eof + movzx eax,ah + ret +Menuet_get_key_eof: + mov eax,-1 + ret +enddef + +define @Menuet@GetMouseButton$qv + push ebx + mov eax,37 + mov ebx,2 + int 0x40 + pop ebx + ret +enddef + +define @Menuet@GetMousePosition$qrst1o + push ebx + mov eax,37 + xor ebx,ebx + cmp byte [esp+16],0 + jnz Menuet_get_mouse_pos_absolute + inc ebx +Menuet_get_mouse_pos_absolute: + int 0x40 + mov ecx,[esp+12] + mov word [ecx],ax + mov ecx,[esp+8] + shr eax,16 + mov word [ecx],ax + pop ebx + ret +enddef + +define @Menuet@WasThreadCreated$qv + cmp byte [@Menuet@_ThreadSavedBegProc],0x90 + setz al + ret +enddef + +define @Menuet@CreateThread$qpvuit1 + push ebx + mov edx,[esp+16] + mov ebx,[esp+12] + test edx,edx + jnz Menuet_create_thread_after_new +if defined MenuetHeapAlloc + cmp ebx,4096 + jnb Menuet_create_thread_alloc + mov ebx,STACKSIZE +Menuet_create_thread_alloc: + push ebx + call MenuetHeapAlloc ; Create new dynamic memory of the given size + pop ecx + test eax,eax + jnz Menuet_create_thread_mem_created +end if + or eax,-1 + jmp Menuet_create_thread_end +Menuet_create_thread_mem_created: + lea edx,[eax+ebx] +Menuet_create_thread_after_new: + neg ebx + jz Menuet_create_thread_test_first + add ebx,edx +Menuet_create_thread_test_first: + cmp byte [@Menuet@_ThreadSavedBegProc],0x90 + jnz Menuet_create_thread_init +Menuet_create_thread_fill_stack: + lock inc dword [@Menuet@_ThreadNumber] + and edx,not 3 + sub edx,12 + mov ecx,[esp+8] + mov dword [edx+8],ebx + mov dword [edx+4],ecx + mov dword [edx],Menuet_ThreadFinish + mov eax,51 + mov ebx,1 + mov ecx,@Menuet@ThreadMain$qpvt1 + int 0x40 + mov ebx,eax + or bl,15 + inc ebx + jnz Menuet_create_thread_end + lock dec dword [@Menuet@_ThreadNumber] +if defined MenuetHeapFree + or ebx,[edx+8] + jz Menuet_create_thread_end + push ebx + call MenuetHeapFree ; Delete the given dynamic memory + pop ecx +end if +Menuet_create_thread_end: + pop ebx + ret +Menuet_create_thread_init: + push esi + push edi + cld + mov esi,@Menuet@_ThreadSavedBegProc + mov edi,@Menuet@GetPid$qv + movs dword [edi],[esi] + movs dword [edi],[esi] + mov edi,@Menuet@GetThreadData$qv + movs dword [edi],[esi] + movs dword [edi],[esi] + mov eax,0x90909090 + mov edi,@Menuet@_ThreadSavedBegProc + stos dword [edi] + stos dword [edi] + stos dword [edi] + stos dword [edi] + pop edi + pop esi + jmp Menuet_create_thread_fill_stack +enddef + +define @Menuet@_FileAccess$qpv + push ebx + mov eax,70 + mov ebx,[esp+8] + int 0x40 + mov ecx,[esp+8] + mov [ecx],ebx + pop ebx + ret +enddef + +define Menuet_abort_string + db 'Abnormal program termination.',10,0 +newdef Menuet_try_lock_rec_overflow_string + db 'Recursive mutex lock count overflow.',10,0 +newdef Menuet_unlock_rec_notlocked_string + db 'Recursive mutex unlock error.',10,0 +enddef + +include "me_lib.inc" + +;/**/ + diff --git a/programs/demos/life2/include/me_heap.h b/programs/demos/life2/include/me_heap.h new file mode 100644 index 000000000..5954d8edf --- /dev/null +++ b/programs/demos/life2/include/me_heap.h @@ -0,0 +1,90 @@ +#ifndef __MENUET_HEAP_H_INCLUDED_ +#define __MENUET_HEAP_H_INCLUDED_ + +#include +#include + +// Menuet memory heap interface. + +namespace Menuet // All menuet functions, types and data are nested in the (Menuet) namespace. +{ + void *Alloc(unsigned int size); + void *ReAlloc(void *mem, unsigned int size); + void Free(void *mem); +} + +#ifdef __MENUET__ + +namespace Menuet +{ + +// Global variables + + MemoryHeap::TFreeSpace _MenuetFreeSpace; + MemoryHeap::TMemBlock _MenuetMemBlock; + TMutex _MemHeapMutex = MENUET_MUTEX_INIT; + +// Functions + + void *_HeapInit(void *begin, void *use_end, void *end) + { + MemoryHeap::InitFreeSpace(_MenuetFreeSpace); + _MenuetMemBlock = MemoryHeap::CreateBlock(begin, end, _MenuetFreeSpace); + unsigned int use_beg = (unsigned int)MemoryHeap::BlockBegin(_MenuetMemBlock) + + MemoryHeap::BlockAddSize - MemoryHeap::BlockEndSize; + unsigned int use_size = (unsigned int)use_end; + if (use_size <= use_beg) return 0; + else use_size -= use_beg; + return MemoryHeap::Alloc(_MenuetFreeSpace, use_size); + } + + bool _SetUseMemory(unsigned int use_mem); + + int _RecalculateUseMemory(unsigned int use_mem); + + void *Alloc(unsigned int size) + { + if (!size) return 0; + Lock(&_MemHeapMutex); + void *res = MemoryHeap::Alloc(_MenuetFreeSpace, size); + if (!res) + { + unsigned use_mem = (unsigned int)MemoryHeap::BlockEndFor(_MenuetMemBlock, size); + if (_SetUseMemory(_RecalculateUseMemory(use_mem))) + { + res = MemoryHeap::Alloc(_MenuetFreeSpace, size); + } + } + UnLock(&_MemHeapMutex); + return res; + } + + void *ReAlloc(void *mem, unsigned int size) + { + Lock(&_MemHeapMutex); + void *res = MemoryHeap::ReAlloc(_MenuetFreeSpace, mem, size); + if (!res && size) + { + unsigned use_mem = (unsigned int)MemoryHeap::BlockEndFor(_MenuetMemBlock, size); + if (_SetUseMemory(_RecalculateUseMemory(use_mem))) + { + res = MemoryHeap::ReAlloc(_MenuetFreeSpace, mem, size); + } + } + UnLock(&_MemHeapMutex); + return res; + } + + void Free(void *mem) + { + Lock(&_MemHeapMutex); + MemoryHeap::Free(_MenuetFreeSpace, mem); + UnLock(&_MemHeapMutex); + } + + void _FreeAndThreadFinish(void *mem, int *exit_proc_now); +} + +#endif // def __MENUET__ + +#endif // ndef __MENUET_HEAP_H_INCLUDED_ diff --git a/programs/demos/life2/include/me_heap.inc b/programs/demos/life2/include/me_heap.inc new file mode 100644 index 000000000..50ed2ab8c --- /dev/null +++ b/programs/demos/life2/include/me_heap.inc @@ -0,0 +1,97 @@ +;/*** + +MenuetHeapInit = @@Menuet@_HeapInit$qpvt1t1 + +MenuetHeapAlloc = @@Menuet@Alloc$qui + +MenuetHeapReAlloc = @@Menuet@ReAlloc$qpvui + +MenuetHeapFree = @@Menuet@Free$qpv + +MenuetHeapFreeAndThreadFinish = @Menuet@_FreeAndThreadFinish$qpvpi + +define @Menuet@_SetUseMemory$qui + push ebx + mov eax,64 + mov ebx,1 + mov ecx,[esp+8] + int 0x40 + pop ebx + test eax,eax + jnz Menuet_set_use_memory_nomem + push ecx + push dword [@Menuet@_MenuetMemBlock] + call @@MemoryHeap@ResizeBlock$q20MemoryHeap@TMemBlockpv + add esp,8 + mov al,1 + ret +Menuet_set_use_memory_nomem: + xor al,al + ret +enddef + +define @Menuet@_RecalculateUseMemory$qui + mov eax,dword [esp+4] + mov ecx,(U_END + 3) and not 3 + cmp eax,ecx + jna Menuet_recalculate_use_memory_min + push ebx + sub eax,ecx + mov ebx,6 + mul ebx + dec ebx + div ebx + add eax,((U_END + 3) and not 3) + 3 + and eax,not 3 + pop ebx + ret +Menuet_recalculate_use_memory_min: + mov eax,ecx + ret +enddef + +define @Menuet@_FreeAndThreadFinish$qpvpi + mov ebx,1 + mov ecx,[esp+8] + jmp Menuet_heap_free_tf_wait +Menuet_heap_free_tf_wait_loop: + mov eax,5 + int 0x40 + shl ebx,1 + cmp ebx,MENUET_MUTEX_MAX_TIME_WAIT + jna Menuet_heap_free_tf_wait + mov ebx,MENUET_MUTEX_MAX_TIME_WAIT +Menuet_heap_free_tf_wait: + cmp dword [ecx],0 + jnz @Menuet@ExitProcess$qv + lock bts dword [@Menuet@_MemHeapMutex],0 + jc Menuet_heap_free_tf_wait_loop + push dword [esp+4] + push @Menuet@_MenuetFreeSpace + call @@MemoryHeap@Free$qr21MemoryHeap@TFreeSpacepv + add esp,8 + mov byte [@Menuet@_MemHeapMutex],0x40 + or eax,-1 + int 0x40 +enddef + +macro call func +{ + if func eq @MemoryHeap@_FirstNotZeroBit$qui + bsf eax,[esp] + else if func eq @MemoryHeap@_CopyMemItemArray$quiuiui + xchg edi,[esp] + xchg esi,[esp+4] + mov ecx,[esp+8] + cld + sub ecx,esi + shr ecx,2 + rep movs dword [edi],[esi] + xchg edi,[esp] + xchg esi,[esp+4] + else + call func + end if +} + +;/**/ diff --git a/programs/demos/life2/include/me_lib.h b/programs/demos/life2/include/me_lib.h new file mode 100644 index 000000000..48cebb6c7 --- /dev/null +++ b/programs/demos/life2/include/me_lib.h @@ -0,0 +1,16 @@ +#ifndef __MENUET_LIB_H_INCLUDED_ +#define __MENUET_LIB_H_INCLUDED_ + +// Menuet interface. + +namespace Menuet // All menuet functions, types and data are nested in the (Menuet) namespace. +{ + unsigned int StrLen(const char *str); + char *StrCopy(char *dest, const char *src); + void *MemCopy(void *dest, const void *src, unsigned int n); + void *MemSet(void *s, char c, unsigned int n); + + double Floor(double x); +} + +#endif // __MENUET_LIB_H_INCLUDED_ diff --git a/programs/demos/life2/include/me_lib.inc b/programs/demos/life2/include/me_lib.inc new file mode 100644 index 000000000..7be9ab3fa --- /dev/null +++ b/programs/demos/life2/include/me_lib.inc @@ -0,0 +1,118 @@ +define @Menuet@StrLen$qpxc + push edi + cld + mov edi,[esp+8] + mov ecx,-1 + xor al,al + repnz scas byte [edi] + not ecx + lea eax,[ecx-1] + pop edi + ret +enddef + +define @Menuet@StrCopy$qpcpxc + push esi + push edi + cld + mov edi,[esp+16] + mov ecx,-1 + mov esi,edi + xor al,al + repnz scas byte [edi] + not ecx + mov edi,[esp+12] + mov edx,ecx + mov eax,edi + shr ecx,2 + rep movs dword [edi],[esi] + mov ecx,edx + and ecx,3 + rep movs byte [edi],[esi] + pop edi + pop esi + ret +enddef + +define @Menuet@MemCopy$qpvpxvui + push esi + push edi + cld + mov edi,[esp+12] + mov eax,edi + mov ecx,[esp+20] + mov esi,[esp+16] + mov edx,ecx + shr ecx,2 + rep movs dword [edi],[esi] + mov ecx,edx + and ecx,3 + rep movs byte [edi],[esi] + pop edi + pop esi + ret +enddef + +define @Menuet@MemSet$qpvcui + push edi + cld + mov edi,[esp+8] + mov al,[esp+12] + mov ah,al + mov dx,ax + shl eax,16 + mov ax,dx + mov ecx,[esp+16] + mov edx,ecx + shr ecx,2 + rep stos dword [edi] + mov ecx,edx + and ecx,3 + rep stos byte [edi] + pop edi + mov eax,[esp+4] + ret +enddef + +define __ftol + sub esp,12 + wait + fstcw word [esp+8] + wait + mov al,[esp+9] + or byte [esp+9],0x0c + fldcw word [esp+8] + fistp qword [esp] + mov [esp+9],al + fldcw word [esp+8] + mov eax,[esp] + mov edx,[esp+4] + add esp,12 + ret +enddef + +define @Menuet@Floor$qd + fld qword [esp+4] + mov ax,[esp+10] + shl ax,1 + cmp ax,0x8680 + ja Menuet_floor_end + mov ch,4 + sub esp,2 + wait + fstcw word [esp] + mov ax,0xf3ff + wait + mov dx,[esp] + and ax,dx + or ah,ch + mov [esp],ax + fldcw word [esp] + frndint + mov [esp],dx + fldcw word [esp] + add esp,2 +Menuet_floor_end: + ret +enddef + diff --git a/programs/demos/life2/include/me_start.inc b/programs/demos/life2/include/me_start.inc new file mode 100644 index 000000000..16a4b63a8 --- /dev/null +++ b/programs/demos/life2/include/me_start.inc @@ -0,0 +1,90 @@ +use32 +org 0x0 + db 'MENUET01' + dd 0x1 + dd MenuetEntryPoint + dd I_END + dd U_END+STACKSIZE+HEAPSIZE + dd U_END+STACKSIZE + dd @Menuet@CommandLine,0x0 + +ptr equ +offset equ +short equ +tbyte equ tword + +PTR equ +OFFSET equ +SHORT equ +TBYTE equ TWORD + +macro movsb a,b +{ + if a eq & b eq + movsb + else + movsx a,b + end if +} + +macro movsw a,b +{ + if a eq & b eq + movsw + else + movsx a,b + end if +} + +macro segment name {} + +macro endseg name {} + +macro usedef [link] +{ + common + if ~link eq + virtual at 0 + forward + dd link + common + end virtual + end if +} + +macro define x,[link] +{ + common + if x eq + else if used x + x: + usedef link +} + +macro enddef [link] +{ + common + usedef link + end if +} + +macro newdef x,[link] +{ + common + end if + if x eq + else if used x + x: + usedef link +} + +macro nextdef x,[link] +{ + common + usedef x + end if + if x eq + else if used x + x: + usedef link +} diff --git a/programs/demos/life2/include/memheap.h b/programs/demos/life2/include/memheap.h new file mode 100644 index 000000000..bf8aa101f --- /dev/null +++ b/programs/demos/life2/include/memheap.h @@ -0,0 +1,626 @@ +#ifndef __MEMORY_HEAP_RBTREE_H_INCLUDED_ +#define __MEMORY_HEAP_RBTREE_H_INCLUDED_ + +namespace MemoryHeap +{ + typedef unsigned int TMemItem; + + enum {NumTreeSmall = 8 * sizeof(TMemItem)}; + +// Memory heap interface. + + struct TFreeSpace + { + TMemItem Small[NumTreeSmall], Min, SmallMask; + }; + + struct TMemBlock + { + TMemItem *Begin; + }; + + bool BlockValid(const TMemBlock &block); // Is the given memory block valid? + void *BlockBegin(const TMemBlock &block); // Return the beginning address of the block. + void *BlockEnd(const TMemBlock &block); // Return the ending address of the block. + TFreeSpace &BlockFreeSpace(const TMemBlock &block); // Return the free space of the block. + + void InitFreeSpace(TFreeSpace &fs); // Initialize the free space. + TMemBlock NullBlock(); // Return null invalid block. + TMemBlock CreateBlock(void *begin, void *end, TFreeSpace &fs); + // Create a memory block with the given begin and end and add free space of it to (fs), + //_ give (BlockAddSize) bytes of the block for it's data. + //_ (Program can alloc (end - begin - BlockAddSize) bytes after it, + //_ that must be not less than (MemMinSize) ). + TMemBlock CreateBlock(void *begin, void *end); + // Create a memory block with the given begin and end and new free space for it, + //_ give (BlockAddSizeFS) bytes of the block for it's data. + //_ (Program can alloc (end - begin - BlockAddSizeFS) bytes after it, + //_ that must be not less than (MemMinSize) ). + void ResizeBlock(TMemBlock block, void *new_end); // Resize the memory block to the given new end. + void RemoveBlock(TMemBlock block); // Remove the given memory block. + + void *BlockEndFor(TMemBlock block, unsigned int size); + // Return the new end of the block needed for (ResizeBlock) to alloc the given size of memory. + unsigned int BlockSize(TMemBlock block); // Return the size of the given block. + unsigned int MemSize(void *mem); // Return the size of the allocced memory. + + void *Alloc(TFreeSpace &fs, unsigned int size); + // Alloc a memory in the given free space, give (MemAddSize) bytes for it's data. + void *ReAlloc(TFreeSpace &fs, unsigned int size, void *mem); + // ReAlloc the given memory, it must lie in the block with the given free space. + void Free(TFreeSpace &fs, void *mem); + // Free the given memory, it must lie in the block with the given free space. + +// Macro definitions. + +#define MEMORY_HEAP_ALIGN_DOWN(s) (MemoryHeap::TMemItem(s) & ~(MemoryHeap::MemAlign - 1)) +#define MEMORY_HEAP_ALIGN_UP(s) ((MemoryHeap::TMemItem(s) + (MemoryHeap::MemAlign - 1)) & ~(MemoryHeap::MemAlign - 1)) +#define MEMORY_HEAP_ITEM(s,k) ( ((MemoryHeap::TMemItem*)(s))[(k)] ) +#define MEMORY_HEAP_NEXT(s) (MEMORY_HEAP_ITEM((s),-1)) +#define MEMORY_HEAP_PREV(s) (MEMORY_HEAP_ITEM((s),-2)) +#define MEMORY_HEAP_FREE(s) (MEMORY_HEAP_ITEM((s),-1) & 1) + +// Constants. + + enum {MemAlign = sizeof(TMemItem)}; + enum {MemAddSize = MEMORY_HEAP_ALIGN_UP(2 * sizeof(TMemItem))}; + enum {BlockEndSize = MemAddSize}; + enum {BlockAddSize = MEMORY_HEAP_ALIGN_UP(4 * sizeof(TMemItem)) + BlockEndSize}; + enum {BlockAddSizeFS = BlockAddSize + BlockEndSize + MEMORY_HEAP_ALIGN_UP(sizeof(TFreeSpace))}; + enum {MemMinSize = MEMORY_HEAP_ALIGN_UP(2 * sizeof(TMemItem))}; + +// Inline functions. + + inline bool BlockValid(const TMemBlock &block) {return block.Begin != 0;} + + inline void *BlockBegin(const TMemBlock &block) {return (void*)block.Begin;} + + inline void *BlockEnd(const TMemBlock &block) {return block.Begin ? (void*)block.Begin[1] : 0;} + + inline TFreeSpace &BlockFreeSpace(const TMemBlock &block) {return *(TFreeSpace*)block.Begin[0];} + + inline TMemBlock NullBlock() {TMemBlock block; block.Begin = 0; return block;} + + inline void *BlockEndFor(TMemBlock block, unsigned int size) + { + TMemItem last = (TMemItem)block.Begin[1]; + TMemItem prevlast = MEMORY_HEAP_PREV(last); + return (void*)( (MEMORY_HEAP_FREE(prevlast) ? prevlast : last) + MemAddSize + + ((size <= MemMinSize) ? MemMinSize : MEMORY_HEAP_ALIGN_UP(size)) ); + } + + inline unsigned int BlockSize(TMemBlock block) + { + if (!block.Begin) return 0; + return (unsigned int)(block.Begin[1] - (TMemItem)block.Begin); + } + + inline unsigned int MemSize(void *mem) + { + if (!mem) return 0; + TMemItem c = (TMemItem)mem; + return MEMORY_HEAP_NEXT(c) - c - MemAddSize; + } + +// Free space item functions. + + TMemItem _FirstNotZeroBit(TMemItem i) + { + TMemItem r = 0; + while ((i >>= 1) != 0) r++; + return r; + } + + void _RBTreeRotate(TMemItem parent, TMemItem item, int side) + { + TMemItem temp = MEMORY_HEAP_ITEM(parent,0); + MEMORY_HEAP_ITEM(item,0) = temp; + if (temp) + { + if (MEMORY_HEAP_ITEM(temp,2) == parent) + { + MEMORY_HEAP_ITEM(temp,2) = item; + } + else MEMORY_HEAP_ITEM(temp,3) = item; + } + temp = MEMORY_HEAP_ITEM(item,side^1); + if (temp) MEMORY_HEAP_ITEM(temp,0) = parent; + MEMORY_HEAP_ITEM(parent,side) = temp; + MEMORY_HEAP_ITEM(parent,0) = item; + MEMORY_HEAP_ITEM(item,side^1) = parent; + temp = MEMORY_HEAP_ITEM(parent,1); + MEMORY_HEAP_ITEM(parent,1) = MEMORY_HEAP_ITEM(item,1); + MEMORY_HEAP_ITEM(item,1) = temp; + } + + void InitFreeSpace(TFreeSpace &fs) + { + TMemItem i; + for (i = 0; i <= NumTreeSmall; i++) fs.Small[i] = 0; + fs.Min = 0; fs.SmallMask = 0; + } + + void _FreeAdd(TFreeSpace &fs, TMemItem item) + { + TMemItem size = MEMORY_HEAP_NEXT(item) - item; + if (size < MemAddSize + MemMinSize + MemAlign * NumTreeSmall) + { + TMemItem s = (size - (MemAddSize + MemMinSize)) / MemAlign; + TMemItem &addto = fs.Small[s]; + MEMORY_HEAP_ITEM(item,1) = (TMemItem)(&addto); + MEMORY_HEAP_ITEM(item,0) = (TMemItem)addto; + if (addto) MEMORY_HEAP_ITEM(addto,1) = item; + addto = item; + fs.SmallMask |= TMemItem(1) << s; + return; + } + TMemItem addto = fs.Min, parent, temp; + MEMORY_HEAP_ITEM(item,2) = 0; + MEMORY_HEAP_ITEM(item,3) = 0; + if (!addto) + { + MEMORY_HEAP_ITEM(item,0) = 0; + MEMORY_HEAP_ITEM(item,1) = 1; + fs.Min = item; + return; + } + MEMORY_HEAP_ITEM(item,1) = 0; + TMemItem side = 2; + if (MEMORY_HEAP_NEXT(addto) - addto >= size) fs.Min = item; + else + { + for (;;) + { + parent = MEMORY_HEAP_ITEM(addto,0); + if (!parent) break; + if (MEMORY_HEAP_NEXT(parent) - parent < size) addto = parent; + else break; + } + for (;;) + { + if (MEMORY_HEAP_NEXT(addto) - addto < size) + { + temp = MEMORY_HEAP_ITEM(addto,3); + if (!temp) {side = 3; break;} + addto = temp; + } + else + { + temp = MEMORY_HEAP_ITEM(addto,2); + if (!temp) break; + addto = temp; + } + } + } + MEMORY_HEAP_ITEM(item,0) = addto; + MEMORY_HEAP_ITEM(addto,side) = item; + for (;;) + { + if (MEMORY_HEAP_ITEM(addto,1) != 0) return; + parent = MEMORY_HEAP_ITEM(addto,0); + temp = MEMORY_HEAP_ITEM(parent,2); + if (temp == addto) + { + temp = MEMORY_HEAP_ITEM(parent,3); + side = 2; + } + else side = 3; + if (!temp || MEMORY_HEAP_ITEM(temp,1) != 0) break; + MEMORY_HEAP_ITEM(addto,1) = 1; + MEMORY_HEAP_ITEM(temp,1) = 1; + item = parent; + addto = MEMORY_HEAP_ITEM(item,0); + if (!addto) return; + MEMORY_HEAP_ITEM(item,1) = 0; + } + if (MEMORY_HEAP_ITEM(addto,side) != item) + { + temp = MEMORY_HEAP_ITEM(item,side); + if (temp) MEMORY_HEAP_ITEM(temp,0) = addto; + MEMORY_HEAP_ITEM(addto,side^1) = temp; + MEMORY_HEAP_ITEM(addto,0) = item; + MEMORY_HEAP_ITEM(item,side) = addto; + MEMORY_HEAP_ITEM(item,0) = parent; + MEMORY_HEAP_ITEM(parent,side) = item; + } + else item = addto; + _RBTreeRotate(parent, item, side); + } + + void _FreeDel(TFreeSpace &fs, TMemItem item) + { + TMemItem size = MEMORY_HEAP_NEXT(item) - item; + if (size < MemAddSize + MemMinSize + MemAlign * NumTreeSmall) + { + TMemItem prev = MEMORY_HEAP_ITEM(item,1); + TMemItem next = MEMORY_HEAP_ITEM(item,0); + MEMORY_HEAP_ITEM(prev,0) = next; + if (next) MEMORY_HEAP_ITEM(next,1) = prev; + else + { + TMemItem s = (size - (MemAddSize + MemMinSize)) / MemAlign; + if (!fs.Small[s]) fs.SmallMask &= ~(TMemItem(1) << s); + } + return; + } + TMemItem parent, temp, second, add; + TMemItem side = 2; + temp = MEMORY_HEAP_ITEM(item,3); + if (temp) + { + for (;;) + { + second = temp; + temp = MEMORY_HEAP_ITEM(temp,2); + if (!temp) break; + } + if (fs.Min == item) fs.Min = second; + add = MEMORY_HEAP_ITEM(second,3); + parent = MEMORY_HEAP_ITEM(second,0); + if (parent == item) {parent = second; side = 3;} + else + { + temp = MEMORY_HEAP_ITEM(item,3); + MEMORY_HEAP_ITEM(second,3) = temp; + MEMORY_HEAP_ITEM(temp,0) = second; + } + temp = MEMORY_HEAP_ITEM(item,2); + MEMORY_HEAP_ITEM(second,2) = temp; + if (temp) MEMORY_HEAP_ITEM(temp,0) = second; + temp = MEMORY_HEAP_ITEM(item,0); + MEMORY_HEAP_ITEM(second,0) = temp; + if (temp) + { + if (MEMORY_HEAP_ITEM(temp,2) == item) + { + MEMORY_HEAP_ITEM(temp,2) = second; + } + else MEMORY_HEAP_ITEM(temp,3) = second; + } + MEMORY_HEAP_ITEM(parent,side) = add; + if (add) MEMORY_HEAP_ITEM(add,0) = parent; + bool color = MEMORY_HEAP_ITEM(second,1); + MEMORY_HEAP_ITEM(second,1) = MEMORY_HEAP_ITEM(item,1); + if (!color) return; + } + else + { + if (fs.Min == item) fs.Min = MEMORY_HEAP_ITEM(item,0); + add = MEMORY_HEAP_ITEM(item,2); + parent = MEMORY_HEAP_ITEM(item,0); + if (add) MEMORY_HEAP_ITEM(add,0) = parent; + if (parent) + { + if (MEMORY_HEAP_ITEM(parent,2) == item) + { + MEMORY_HEAP_ITEM(parent,2) = add; + } + else + { + MEMORY_HEAP_ITEM(parent,3) = add; + side = 3; + } + } + else + { + if (add) MEMORY_HEAP_ITEM(add,1) = 1; + return; + } + if (!MEMORY_HEAP_ITEM(item,1)) return; + } + if (add && !MEMORY_HEAP_ITEM(add,1)) + { + MEMORY_HEAP_ITEM(add,1) = 1; + return; + } + for (;;) + { + second = MEMORY_HEAP_ITEM(parent,side^1); + if (!MEMORY_HEAP_ITEM(second,1)) + { + _RBTreeRotate(parent, second, side^1); + second = MEMORY_HEAP_ITEM(parent,side^1); + } + temp = MEMORY_HEAP_ITEM(second,side^1); + if (temp && !MEMORY_HEAP_ITEM(temp,1)) + { + MEMORY_HEAP_ITEM(temp,1) = 1; + break; + } + temp = MEMORY_HEAP_ITEM(second,side); + if (temp && !MEMORY_HEAP_ITEM(temp,1)) + { + _RBTreeRotate(second, temp, side); + MEMORY_HEAP_ITEM(second,1) = 1; + second = temp; + break; + } + MEMORY_HEAP_ITEM(second,1) = 0; + if (!MEMORY_HEAP_ITEM(parent,1)) + { + MEMORY_HEAP_ITEM(parent,1) = 1; + return; + } + second = parent; + parent = MEMORY_HEAP_ITEM(second,0); + if (!parent) return; + if (MEMORY_HEAP_ITEM(parent,2) == second) side = 2; + else side = 3; + } + _RBTreeRotate(parent, second, side^1); + } + + TMemItem _FreeFindAfter(TMemItem item, TMemItem size) + { + if (!item) return 0; + TMemItem paritem, s; + if (MEMORY_HEAP_NEXT(item) - item >= size) return item; + for (;;) + { + paritem = MEMORY_HEAP_ITEM(item,0); + if (!paritem) break; + s = MEMORY_HEAP_NEXT(paritem) - paritem; + if (s == size) return paritem; + if (s < size) item = paritem; + else break; + } + MEMORY_HEAP_ITEM(item,3); + for (;;) + { + if (!item) return paritem; + s = MEMORY_HEAP_NEXT(item) - item; + if (s == size) return item; + if (s < size) item = MEMORY_HEAP_ITEM(item,3); + else + { + paritem = item; + item = MEMORY_HEAP_ITEM(item,2); + } + } + } + + TMemItem _FreeFind(TFreeSpace &fs, TMemItem size) + { + TMemItem item, nextitem, s; + if (size < MemAddSize + MemMinSize + MemAlign * NumTreeSmall) + { + TMemItem m, t; + s = (size - (MemAddSize + MemMinSize)) / MemAlign; + item = fs.Small[s]; + if (item) return item; + if (size < MemAlign * NumTreeSmall) + { + t = size / MemAlign; + m = fs.SmallMask >> t; + if (m) return fs.Small[t + _FirstNotZeroBit(m)]; + else if (fs.Min) return fs.Min; + } + else + { + item = _FreeFindAfter(fs.Min, size + 1 + MemAddSize + MemMinSize); + if (item) return item; + } + m = fs.SmallMask >> s; + if (m) return fs.Small[s + _FirstNotZeroBit(m)]; + else return fs.Min; + } + item = _FreeFindAfter(fs.Min, ++size); + if (!item) return 0; + s = MEMORY_HEAP_NEXT(item) - item; + if (s == size) return item; + size += MemAddSize + MemMinSize; + if (s >= size) return item; + nextitem = _FreeFindAfter(item, size); + return nextitem ? nextitem : item; + } + +// Block functions. + + inline void _CreateBlockEnd(TMemBlock &block, TFreeSpace &fs, TMemItem c, TMemItem e) + { + block.Begin[0] = (TMemItem)(&fs); + if (e - c < TMemItem(MemAddSize + MemMinSize)) + { + MEMORY_HEAP_NEXT(c) = 0; + block.Begin[1] = c; + } + else + { + MEMORY_HEAP_NEXT(c) = e + 1; + _FreeAdd(fs, c); + MEMORY_HEAP_PREV(e) = c; + MEMORY_HEAP_NEXT(e) = 0; + block.Begin[1] = e; + } + } + + TMemBlock CreateBlock(void *begin, void *end, TFreeSpace &fs) + { + TMemBlock block = {0}; + TMemItem b = MEMORY_HEAP_ALIGN_UP(begin); + TMemItem e = MEMORY_HEAP_ALIGN_DOWN(end); + if (e <= b || e - b < TMemItem(BlockAddSize - MemAddSize)) return block; + block.Begin = (TMemItem*)b; + b += MEMORY_HEAP_ALIGN_UP(4 * sizeof(TMemItem)); + MEMORY_HEAP_PREV(b) = 0; + _CreateBlockEnd(block, fs, b, e); + return block; + } + + TMemBlock CreateBlock(void *begin, void *end) + { + TMemBlock block = {0}; + TMemItem b = MEMORY_HEAP_ALIGN_UP(begin); + TMemItem e = MEMORY_HEAP_ALIGN_DOWN(end); + if (e <= b || e - b < TMemItem(BlockAddSizeFS - MemAddSize)) return block; + block.Begin = (TMemItem*)b; + b += MEMORY_HEAP_ALIGN_UP(4 * sizeof(TMemItem)); + TMemItem c = b + MemAddSize + MEMORY_HEAP_ALIGN_UP(sizeof(TFreeSpace)); + MEMORY_HEAP_PREV(b) = 0; + MEMORY_HEAP_NEXT(b) = c; + MEMORY_HEAP_PREV(c) = b; + InitFreeSpace(*(TFreeSpace*)b); + _CreateBlockEnd(block, *(TFreeSpace*)b, c, e); + return block; + } + + void ResizeBlock(TMemBlock block, void *new_end) + { + if (!BlockValid(block)) return; + TMemItem e = MEMORY_HEAP_ALIGN_DOWN(new_end); + TMemItem c = block.Begin[1]; + TFreeSpace &fs = *(TFreeSpace*)block.Begin[0]; + do + { + if (c == e) return; + else if (c > e) + { + while ((c = MEMORY_HEAP_PREV(c)) > e) + { + if (MEMORY_HEAP_FREE(c)) _FreeDel(fs, c); + } + if (!c) {block.Begin = 0; return;} + if (MEMORY_HEAP_FREE(c)) + { + _FreeDel(fs, c); + if (e - c < TMemItem(MemAddSize + MemMinSize)) e = c; + else + { + MEMORY_HEAP_NEXT(c) = e + 1; + _FreeAdd(*(TFreeSpace*)block.Begin[0], c); + break; + } + } + else if (e - c >= TMemItem(MemAddSize + MemMinSize)) + { + MEMORY_HEAP_NEXT(c) = e; break; + } + MEMORY_HEAP_NEXT(c) = 0; + block.Begin[1] = c; + if (c == e) return; + } + TMemItem pc = MEMORY_HEAP_PREV(c); + if (pc && MEMORY_HEAP_FREE(pc)) _FreeDel(fs, c = pc); + else if (e - c < TMemItem(MemAddSize + MemMinSize)) return; + MEMORY_HEAP_NEXT(c) = e + 1; + _FreeAdd(fs, c); + } while(false); + MEMORY_HEAP_PREV(e) = c; + MEMORY_HEAP_NEXT(e) = 0; + block.Begin[1] = e; + } + + void RemoveBlock(TMemBlock block) + { + if (!BlockValid(block)) return; + TMemItem e = block.Begin[1]; + TFreeSpace &fs = *(TFreeSpace*)block.Begin[0]; + while ((e = MEMORY_HEAP_PREV(e)) != 0) + { + if (MEMORY_HEAP_FREE(e)) _FreeDel(fs, e); + } + block.Begin = 0; + } + +// Free space functions. + + void _CopyMemItemArray(TMemItem dest, TMemItem src, TMemItem end) + { + TMemItem k = (end - src) / sizeof(TMemItem); + TMemItem *d = (TMemItem*)dest; + TMemItem *s = (TMemItem*)src; + while (k--) *(d++) = *(s++); + } + + void *Alloc(TFreeSpace &fs, unsigned int size) + { + if (!size) return 0; + TMemItem s = MEMORY_HEAP_ALIGN_UP(size) + MemAddSize; + if (s < MemAddSize + MemMinSize) s = MemAddSize + MemMinSize; + TMemItem c = _FreeFind(fs, s); + if (!c) return 0; + _FreeDel(fs, c); + TMemItem nc = --MEMORY_HEAP_NEXT(c); + TMemItem mc = c + s; + if (nc - (MemAddSize + MemMinSize) >= mc) + { + MEMORY_HEAP_NEXT(c) = mc; + MEMORY_HEAP_PREV(mc) = c; + MEMORY_HEAP_NEXT(mc) = nc + 1; + MEMORY_HEAP_PREV(nc) = mc; + _FreeAdd(fs, mc); + } + return (void*)c; + } + + void *ReAlloc(TFreeSpace &fs, void *mem, unsigned int size) + { + if (!mem) return Alloc(fs, size); + if (!size) {Free(fs, mem); return 0;} + TMemItem s = MEMORY_HEAP_ALIGN_UP(size) + MemAddSize; + TMemItem c = (TMemItem)mem; + TMemItem mc = MEMORY_HEAP_NEXT(c); + TMemItem nc = MEMORY_HEAP_NEXT(mc); + if (--nc & 1) nc = mc; + if (s < MemAddSize + MemMinSize) s = MemAddSize + MemMinSize; + if (nc - c < s) + { + mem = Alloc(fs, size); + if (mem) + { + _CopyMemItemArray((TMemItem)mem, c, mc - MemAddSize); + Free(fs, (void*)c); + return mem; + } + else + { + TMemItem pc = MEMORY_HEAP_PREV(c); + if (pc && MEMORY_HEAP_FREE(pc) && nc - pc >= s) + { + _FreeDel(fs, pc); + _CopyMemItemArray(pc, c, mc - MemAddSize); + c = pc; + } + else return 0; + } + } + if (mc < nc) _FreeDel(fs, mc); + mc = c + s; + if (nc - (MemAddSize + MemMinSize) >= mc) + { + MEMORY_HEAP_NEXT(c) = mc; + MEMORY_HEAP_PREV(mc) = c; + MEMORY_HEAP_NEXT(mc) = nc + 1; + MEMORY_HEAP_PREV(nc) = mc; + _FreeAdd(fs, mc); + } + else + { + MEMORY_HEAP_NEXT(c) = nc; + MEMORY_HEAP_PREV(nc) = c; + } + return (void*)c; + } + + int free_a = 0; + + void Free(TFreeSpace &fs, void *mem) + { + TMemItem c = (TMemItem)mem; + if (!c) return; + TMemItem pc = MEMORY_HEAP_PREV(c); + TMemItem mc = MEMORY_HEAP_NEXT(c); + TMemItem nc = MEMORY_HEAP_NEXT(mc); + if (--nc & 1) nc = mc; + else _FreeDel(fs, mc); + if (free_a == 1) return; + if (pc && MEMORY_HEAP_FREE(pc)) _FreeDel(fs, c = pc); + MEMORY_HEAP_NEXT(c) = nc + 1; + MEMORY_HEAP_PREV(nc) = c; + if (free_a == 2) return; + _FreeAdd(fs, c); + } +} + +#endif // ndef __MEMORY_HEAP_RBTREE_H_INCLUDED_ + diff --git a/programs/demos/life2/include/menuet.h b/programs/demos/life2/include/menuet.h new file mode 100644 index 000000000..75d7f8b58 --- /dev/null +++ b/programs/demos/life2/include/menuet.h @@ -0,0 +1,537 @@ +#ifndef __MENUET_H_INCLUDED_ +#define __MENUET_H_INCLUDED_ + +#include + +// Menuet interface. + +namespace Menuet // All menuet functions, types and data are nested in the (Menuet) namespace. +{ + const char *DebugPrefix = "User program: "; + char CommandLine[257]; + + struct TWindowData // Data for drawing a window. + { + unsigned short WindowType, HeaderType; + unsigned long WindowColor, HeaderColor, BorderColor, TitleColor; + const char *Title; + }; + + struct TStartData // This structure is used only for MenuetOnStart function. + { + unsigned short Left, Width, Top, Height; // Initial window rectangle. + TWindowData WinData; + }; + + typedef void **TThreadData; // Thread data are the fast identifier of thread, contains user dword in + //_ the zero element and stack beginning (or zero if it is unknown) in the first element. + //_ The stack will be deleted from dynamic memory at the finish of the thread if stack beginning is not zero. + + struct TMutex; // Simple mutex can be locked only once at a time. +#define MENUET_MUTEX_INIT {} // Simple mutex initializer, cat be redefined in a realization of the library + + struct TRecMutex; // Recursive mutex can be locked many times by a single thread at a time. +#define MENUET_REC_MUTEX_INIT {} // Recursive mutex initializer, cat be redefined in a realization of the library + + // Some functions have two forms: the fast form with (thread_data) parameter and the form without it. + // Note: pass only thread data of current thread as (thread_data) parameter to these functions. + + void Main(); // Main function is called at program startup. + void* ThreadMain(void *user = 0, void *stack_begin = 0); + // Called at thread startup, (user) is placed in thread data as a user dword, + //_ (stack_begin) is placed in thread data as a stack beginning. + //_ Return new value of stack beginning that can be changed in the thread data. + void GetWindowData(TWindowData &win_data); // Write current window data to (win_data). + void GetWindowData(TWindowData &win_data, TThreadData thread_data); + void SetWindowData(const TWindowData &win_data); // Replace current window data by (win_data). + void SetWindowData(const TWindowData &win_data, TThreadData thread_data); + void CloseWindow(); // Close current window when returning to message loop. + void CloseWindow(TThreadData thread_data); + void Redraw(int frame = 0); // Redraw current window immediately, if (frame) is positive redraw the frame too, + void Redraw(int frame, TThreadData thread_data); //_ if (frame) is negative redraw only invalideted window. + void Invalidate(int frame = 0); // Redraw current window when no message will be is the queue, + void Invalidate(int frame, TThreadData thread_data); //_ if (frame) is positive redraw the frame too, + //_ if (frame) is negative do nothing. + void MoveWindow(const int window_rect[/* 4 */]); // Move and resize current window. + + void Abort(); // Abnormally terminate a program. + void ExitProcess(); // Exit from the process, don't call any destructors of global varyables + void ExitThread(); // Exit from the current thread + void ExitThread(TThreadData thread_data); + void ReturnMessageLoop(); // Return to the message loop of the thread. Exit from the thread + void ReturnMessageLoop(TThreadData thread_data); //_ if it is called from (MenuetOnStart). + + void Delay(unsigned int time); // Delay the execution of the program during (time) hundredth seconds. + unsigned int Clock(); // Return the time from starting of the system to this moment in hundredth of seconds. + int GetPackedTime(); // Return the current time of day in binary-decimal format 0x00SSMMHH. + void GetTime(int t[/* 3 */]); // Write the current time to (t): t[0] = second, t[1] = minute, t[2] = hour. + int GetPackedDate(); // Return the current date in binary-decimal format 0x00YYDDMM. + void GetDate(int d[/* 3 */]); // Write the current date to (d): d[0] = day, d[1] = month, d[2] = year. + void GetTimeDate(int t[/* 6 */]); // Write the current time and date to (t): t[0] = second, + //_ t[1] = minute, t[2] = hour, t[3] = day, t[4] = month, t[5] = year. + void ReadCommonColors(unsigned int colors[/* 10 */]); // Writes standart window colors to (colors). + unsigned int GetProcessInfo(unsigned int *use_cpu, char process_name[/* 13 */], unsigned int *use_memory, + unsigned int *pid, int window_rect[/* 4 */], unsigned int pid_for = -1); + // Write (pid_for) process information to variables parameters points, return + //_ the number of processes. (pid_for) equal to (-1) means current process. + unsigned int GetPid(); // Return the current thread identifier (pid). + unsigned int GetPid(TThreadData thread_data); + TThreadData GetThreadData(); // Return the thread data of the current thread. + TThreadData GetThreadData(unsigned int pid); // Return the thread data of the thread with the given pid. + + void* GetPicture(unsigned short &width, unsigned short &height); + void* GetPicture(unsigned short &width, unsigned short &height, TThreadData thread_data); + // Return the picture on the window and write its width and height to (width) and (height). + void SetPicture(void *picture, unsigned short width, unsigned short height); + void SetPicture(void *picture, unsigned short width, unsigned short height, TThreadData thread_data); + // Replace the picture on the window by the given picture with the given width and height. + void GetBorderHeader(unsigned short &border_size, unsigned short &header_size); + void GetBorderHeader(unsigned short &border_size, unsigned short &header_size, TThreadData thread_data); + // Write the border thickness to (border_size) and header height to (header_size). + void GetClientSize(unsigned short &width, unsigned short &height); + void GetClientSize(unsigned short &width, unsigned short &height, TThreadData thread_data); + // Write the client area width and height to (width) and (height) parameters. + void GetClientSize(unsigned short &width, unsigned short &height, int win_width, int win_height); + void GetClientSize(unsigned short &width, unsigned short &height, int win_width, int win_height, TThreadData thread_data); + // Write the client area size of window with the width (win_width) + //_ and height (win_height) to (width) and (height) parameters. + void GetScreenSize(unsigned short &width, unsigned short &height); + // Write the screen width and height to (width) and (height) parameters. + + void InitMutex(TMutex *mutex); // Initialize the simple mutex. + void InitRecMutex(TRecMutex *mutex); // Initialize the recursive mutex. + bool TryLock(TMutex *mutex); // Try to lock the mutex without waitting, return true if lock. + bool TryLock(TRecMutex *mutex); + bool TryLock(TRecMutex *mutex, TThreadData thread_data); + bool TryLock(TRecMutex *mutex, unsigned int pid); + void Lock(TMutex *mutex); // Lock mutex and wait for it if this necessary. + void Lock(TRecMutex *mutex); + void Lock(TRecMutex *mutex, TThreadData thread_data); + void Lock(TRecMutex *mutex, unsigned int pid); + bool LockTime(TMutex *mutex, int time); + bool LockTime(TRecMutex *mutex, int time); // Lock mutex and wait for it during (time) hundredth seconds. + bool LockTime(TRecMutex *mutex, int time, TThreadData thread_data); + bool LockTime(TRecMutex *mutex, int time, unsigned int pid); + void UnLock(TMutex *mutex); // Unlock mutex + void UnLock(TRecMutex *mutex); + void UnLock(TRecMutex *mutex, TThreadData thread_data); + void UnLock(TRecMutex *mutex, unsigned int pid); + + void DebugPutChar(char c); // Put the character to the debug board. + void DebugPutString(const char *s); // Put the string to the debug board. + int GetKey(); // Return key pressed by user or -1 if no key was pressed. + int GetMouseButton(); // Return buttons pressed: 0 - no buttons, 1 - left button, 2 - right button, 3 - both buttons. + void GetMousePosition(short &x, short &y, bool absolute = false); + // Write mouse position to (x) and (y): absolute if (absolute) is true and relative the window otherwise. + void GetMousePosPicture(short &x, short &y); + + int GetThreadNumber(); // Return the number of threads currently executing. + bool WasThreadCreated(); // Return true if there was created at least one thread except the main thred. + unsigned int CreateThread(void *user = 0, unsigned int stack_size = 0, void *stack_end = 0); + // Create a new thread with the user dword (user) and stack pointer (stack_end). + //_ If (stack_end) is zero, create stack in dynamic memory of size (stack_size) or + //_ the same size as the main thread if (stack_size) less that 4096. Set the beginning + //_ of the stack if (stack_end) is zero or (stack_size) is not zero, in this case stack + //_ will be deleted automaticaly from dynamic memory at the finish of the thread. +} + +// Function, defined outside. + +bool MenuetOnStart(Menuet::TStartData &me_start, Menuet::TThreadData thread_data); + // Window will be created iff return value is true. +bool MenuetOnClose(Menuet::TThreadData thread_data); // Window will be closed iff return value is true. +int MenuetOnIdle(Menuet::TThreadData thread_data); // Return the time to wait next message. +void MenuetOnSize(int window_rect[/* 4 */], Menuet::TThreadData thread_data); // When the window is resized. +void MenuetOnKeyPress(Menuet::TThreadData thread_data); // When user press a key. +void MenuetOnMouse(Menuet::TThreadData thread_data); // When user move a mouse. + +#ifdef __MENUET__ + +namespace Menuet +{ +// Structures. + + struct TMutex // Simple mutex can be locked only once at a time. + { + unsigned int mut; + }; +#undef MENUET_MUTEX_INIT +#define MENUET_MUTEX_INIT {0x40} // Simple mutex initializer, cat be redefined in a realization of the library + + struct TRecMutex // Recursive mutex can be locked many times by a single thread at a time. + { + unsigned int mut, pid; + }; +#undef MENUET_REC_MUTEX_INIT +#define MENUET_REC_MUTEX_INIT {0x20,-1} // Recursive mutex initializer, cat be redefined in a realization of the library + +// Global variables. + + volatile TThreadData _ThreadTable[256]; + volatile unsigned int _ThreadScanCount[2] = {0, 0}; + volatile int _ThreadNumber = 1; + volatile int _ExitProcessNow = 0; + TMutex _ThreadMutex = MENUET_MUTEX_INIT; + unsigned int _ThreadSavedBegProc[4]; + +// Inline functions. + + inline void GetWindowData(TWindowData &win_data) {GetWindowData(win_data, GetThreadData());} + + inline void SetWindowData(const TWindowData &win_data) {SetWindowData(win_data, GetThreadData());} + + inline void CloseWindow() {CloseWindow(GetThreadData());} + + inline void Redraw(int frame) {Redraw(frame, GetThreadData());} + + inline void Invalidate(int frame) {Invalidate(frame, GetThreadData());} + + inline void* GetPicture(unsigned short &width, unsigned short &height) + { + return GetPicture(width, height, GetThreadData()); + } + + inline void SetPicture(void *picture, unsigned short width, unsigned short height) + { + SetPicture(picture, width, height, GetThreadData()); + } + + inline void GetBorderHeader(unsigned short &border_size, unsigned short &header_size) + { + GetBorderHeader(border_size, header_size, GetThreadData()); + } + + inline void GetClientSize(unsigned short &width, unsigned short &height) + { + unsigned int pid; + int rect[4]; + GetProcessInfo(0, 0, 0, &pid, rect); + GetClientSize(width, height, rect[2], rect[3], GetThreadData(pid)); + } + + inline void GetClientSize(unsigned short &width, unsigned short &height, TThreadData thread_data) + { + int rect[4]; + GetProcessInfo(0, 0, 0, 0, rect); + GetClientSize(width, height, rect[2], rect[3], thread_data); + } + + inline void GetClientSize(unsigned short &width, unsigned short &height, int win_width, int win_height) + { + GetClientSize(width, height, win_width, win_height, GetThreadData()); + } + + inline void GetTimeDate(int t[/* 6 */]) {GetTime(t); GetDate(t + 3);} + + inline void InitMutex(TMutex *mutex) {mutex->mut = 0;} + + inline void InitRecMutex(TRecMutex *mutex) {mutex->mut = 0; mutex->pid = -1;} + + inline bool TryLock(TRecMutex *mutex) {return TryLock(mutex, GetPid());} + + inline bool TryLock(TRecMutex *mutex, TThreadData thread_data) {return TryLock(mutex, GetPid(thread_data));} + + inline void Lock(TRecMutex *mutex) {Lock(mutex, GetPid());} + + inline void Lock(TRecMutex *mutex, TThreadData thread_data) {Lock(mutex, GetPid(thread_data));} + + inline bool LockTime(TRecMutex *mutex, int time) {return LockTime(mutex, time, GetPid());} + + inline bool LockTime(TRecMutex *mutex, int time, TThreadData thread_data) + {return LockTime(mutex, time, GetPid(thread_data));} + + inline void UnLock(TRecMutex *mutex) {UnLock(mutex, GetPid());} + + inline void UnLock(TRecMutex *mutex, TThreadData thread_data) {UnLock(mutex, GetPid(thread_data));} + + inline int GetThreadNumber() {return _ThreadNumber;} + +// Constants from fasm. + +#include + +// Functions. + + unsigned char _HashByte(unsigned int value); + unsigned short _HashWord(unsigned int value); + unsigned int _HashDword(unsigned int value); + + void _GetStartData(TStartData &start_data, TThreadData thread_data) + { + start_data.Left = (unsigned short)((unsigned long)thread_data[MENUET_THREAD_DATA_X] >> 16); + start_data.Width = (unsigned short)((unsigned long)thread_data[MENUET_THREAD_DATA_X]); + start_data.Top = (unsigned short)((unsigned long)thread_data[MENUET_THREAD_DATA_Y] >> 16); + start_data.Height = (unsigned short)((unsigned long)thread_data[MENUET_THREAD_DATA_Y]); + GetWindowData(start_data.WinData, thread_data); + } + + void _SetStartData(const TStartData &start_data, TThreadData thread_data) + { + (unsigned long&)thread_data[MENUET_THREAD_DATA_X] = + ((unsigned int)start_data.Left << 16) | start_data.Width; + (unsigned long&)thread_data[MENUET_THREAD_DATA_Y] = + ((unsigned int)start_data.Top << 16) | start_data.Height; + SetWindowData(start_data.WinData, thread_data); + } + + void _ApplyCommonColors(TWindowData &win_data) + { + unsigned int colors[10]; + ReadCommonColors(colors); + win_data.WindowColor = colors[5]; + win_data.HeaderColor = colors[1]; + win_data.BorderColor = colors[0]; + win_data.TitleColor = colors[4]; + } + + void _SetValueFunctionPriority(void *beg, int n) + { + int k, i; + unsigned char num[256]; + for (i = 0; i < 256; i++) num[i] = 0; + for (k = 0; k < n; k++) + { + i = ((unsigned char*)beg + 6*k)[1]; + ((unsigned char*)beg + 6*k)[0] = num[i]; + if (num[i] != 255) num[i]++; + } + } + + void _CallFunctionPriority(void *beg, void *end, bool reverse = false) + { + struct _Local + { + static int cmp(void *beg, int i, int j) + { + unsigned char *x = (unsigned char*)beg + 6*i; + unsigned char *y = (unsigned char*)beg + 6*j; + if (*(unsigned short*)x < *(unsigned short*)y) return -1; + if (*(unsigned short*)x > *(unsigned short*)y) return 1; + return 0; + } + + static void swap(void *beg, int i, int j) + { + unsigned char *x = (unsigned char*)beg + 6*i; + unsigned char *y = (unsigned char*)beg + 6*j; + short s; + int t; + s = *(short*)x; *(short*)x = *(short*)y; *(short*)y = s; + x += 2; y += 2; + t = *(int*)x; *(int*)x = *(int*)y; *(int*)y = t; + } + + static void call(void *beg, int i) + { + unsigned char *x = (unsigned char*)beg + 6*i; + (*(void(**)())(x+2))(); + } + }; + + if (!beg || !end || end <= beg) return; + int i, j, k, m, n; + n = ((unsigned char*)end - (unsigned char*)beg) / 6; + if (n <= 0) return; + _SetValueFunctionPriority(beg, n); + m = n; k = n; + while (m > 1) + { + if (k > 0) k--; + else _Local::swap(beg, 0, --m); + j = k; + for (;;) + { + i = j; + if (2*i + 1 >= m) break; + if (_Local::cmp(beg, 2*i + 1, j) > 0) j = 2*i + 1; + if (2*i + 2 < m && _Local::cmp(beg, 2*i + 2, j) > 0) j = 2*i + 2; + if (i == j) break; + _Local::swap(beg, i, j); + } + } + if (!reverse) + { + for (k = 0; k < n; k++) _Local::call(beg, k); + } + else + { + for (k = n-1; k >= 0; k--) _Local::call(beg, k); + } + } + + bool _CallStart(TThreadData thread_data, void *init = 0, void *init_end = 0) + { + struct _TThreadDataTemplate + { + unsigned int data[12]; + }; + static const _TThreadDataTemplate _ThreadDataTemplate = + {{3, 0x00320100, 0x00320100, 0x03FFFFFF, 0x806060FF, 0x00000000, 0x00FFFF40, 0, 0, 0, -1, -1}}; + + unsigned int pid = GetPid(); + volatile TThreadData *thread_table_item; + Lock(&_ThreadMutex); + if (_ExitProcessNow) ExitProcess(); + thread_table_item = &_ThreadTable[_HashByte(pid)]; + thread_data[MENUET_THREAD_DATA_NEXT] = (void*)*thread_table_item; + (unsigned int&)thread_data[MENUET_THREAD_DATA_PID] = pid; + *(_TThreadDataTemplate*)(thread_data + MENUET_THREAD_DATA_FLAG) = _ThreadDataTemplate; + *thread_table_item = thread_data; + UnLock(&_ThreadMutex); + if (_ExitProcessNow) ExitProcess(); + _CallFunctionPriority(init, init_end, false); + TStartData start_data; + _GetStartData(start_data, thread_data); + _ApplyCommonColors(start_data.WinData); + (unsigned int&)thread_data[MENUET_THREAD_DATA_FLAG] |= 0x40000000; + thread_data[MENUET_THREAD_DATA_TITLE] = (void*)(&start_data); + if (!MenuetOnStart(start_data, thread_data)) return false; + (unsigned int&)thread_data[MENUET_THREAD_DATA_FLAG] &= ~0x40000000; + _SetStartData(start_data, thread_data); + return true; + } + + void _RemoveThreadData(TThreadData thread_data, void *exit = 0, void *exit_end = 0) + { + _CallFunctionPriority(exit, exit_end, true); + volatile TThreadData *thread_table_item; + Lock(&_ThreadMutex); + if (_ExitProcessNow) ExitProcess(); + thread_table_item = &_ThreadTable[_HashByte(GetPid(thread_data))]; + while (*thread_table_item) + { + if (*thread_table_item == thread_data) + { + *thread_table_item = (TThreadData)thread_data[MENUET_THREAD_DATA_NEXT]; + break; + } + thread_table_item = (TThreadData*)(*thread_table_item + MENUET_THREAD_DATA_NEXT); + } + UnLock(&_ThreadMutex); + if (_ExitProcessNow) ExitProcess(); + } + + void GetWindowData(TWindowData &win_data, TThreadData thread_data) + { + if ((unsigned int)thread_data[MENUET_THREAD_DATA_FLAG] & 0x40000000) + { + win_data = ((TStartData*)thread_data[MENUET_THREAD_DATA_TITLE])->WinData; + return; + } + win_data.WindowType = (unsigned short)((unsigned int)thread_data[MENUET_THREAD_DATA_C_WINDOW] >> 24); + win_data.HeaderType = (unsigned short)((unsigned int)thread_data[MENUET_THREAD_DATA_C_HEADER] >> 24); + win_data.WindowColor = (unsigned int)thread_data[MENUET_THREAD_DATA_C_WINDOW] & 0xFFFFFF; + win_data.HeaderColor = (unsigned int)thread_data[MENUET_THREAD_DATA_C_HEADER] & 0xFFFFFF; + win_data.BorderColor = (unsigned int)thread_data[MENUET_THREAD_DATA_C_BORDER] & 0xFFFFFF; + win_data.TitleColor = (unsigned int)thread_data[MENUET_THREAD_DATA_C_TITLE] & 0xFFFFFF; + win_data.Title = (char*)thread_data[MENUET_THREAD_DATA_TITLE]; + } + + void SetWindowData(const TWindowData &win_data, TThreadData thread_data) + { + if ((unsigned int)thread_data[MENUET_THREAD_DATA_FLAG] & 0x40000000) + { + ((TStartData*)thread_data[MENUET_THREAD_DATA_TITLE])->WinData = win_data; + return; + } + (unsigned int&)thread_data[MENUET_THREAD_DATA_C_WINDOW] = + ((unsigned int)win_data.WindowType << 24) | (win_data.WindowColor & 0xFFFFFF); + (unsigned int&)thread_data[MENUET_THREAD_DATA_C_HEADER] = + ((unsigned int)win_data.HeaderType << 24) | (win_data.HeaderColor & 0xFFFFFF); + (unsigned int&)thread_data[MENUET_THREAD_DATA_C_BORDER] = win_data.BorderColor & 0xFFFFFF; + (unsigned int&)thread_data[MENUET_THREAD_DATA_C_TITLE] = win_data.TitleColor & 0xFFFFFF; + thread_data[MENUET_THREAD_DATA_TITLE] = (void*)win_data.Title; + Invalidate(1, thread_data); + } + + void CloseWindow(TThreadData thread_data) + { + (unsigned int&)thread_data[MENUET_THREAD_DATA_FLAG] |= 0x80000000; + } + + void Invalidate(int frame, TThreadData thread_data) + { + if (frame < 0) return; + (unsigned int&)thread_data[MENUET_THREAD_DATA_FLAG] |= (frame ? 3 : 1); + } + + void* GetPicture(unsigned short &width, unsigned short &height, TThreadData thread_data) + { + width = (unsigned short)((unsigned int)thread_data[MENUET_THREAD_DATA_SZ_PICT] >> 16); + height = (unsigned short)((unsigned int)thread_data[MENUET_THREAD_DATA_SZ_PICT]); + return (void*)thread_data[MENUET_THREAD_DATA_PICTURE]; + } + + void SetPicture(void *picture, unsigned short width, unsigned short height, TThreadData thread_data) + { + thread_data[MENUET_THREAD_DATA_PICTURE] = (void*)picture; + (unsigned int&)thread_data[MENUET_THREAD_DATA_SZ_PICT] = + (width == 0 || height == 0) ? 0 : (((unsigned int)width << 16) | height); + Invalidate(0, thread_data); + } + + int _GetSkinHeader(); + + void GetBorderHeader(unsigned short &border_size, unsigned short &header_size, TThreadData thread_data) + { + int win_type = ((unsigned int)thread_data[MENUET_THREAD_DATA_FLAG] & 0x40000000) ? + ((TStartData*)thread_data[MENUET_THREAD_DATA_TITLE])->WinData.WindowType : + ((unsigned int)thread_data[MENUET_THREAD_DATA_C_WINDOW] >> 24); + border_size = MENUET_BORDER_SIZE; + header_size = short(((win_type & 15) == 3) ? _GetSkinHeader() : MENUET_HEADER_SIZE); + } + + void GetClientSize(unsigned short &width, unsigned short &height, + int win_width, int win_height, TThreadData thread_data) + { + const int MAX_SIZE = 32767; + unsigned short border_size, header_size; + GetBorderHeader(border_size, header_size, thread_data); + win_width -= 2 * border_size; + win_height -= border_size + header_size; + if (win_width < 0) win_width = 0; + else if (win_width > MAX_SIZE) win_width = MAX_SIZE; + if (win_height < 0) win_height = 0; + else if (win_height > MAX_SIZE) win_height = MAX_SIZE; + width = (unsigned short)win_width; + height = (unsigned short)win_height; + } + + void GetMousePosPicture(short &x, short &y) + { + unsigned short dx, dy; + GetMousePosition(x, y); + GetBorderHeader(dx, dy); + x -= dx; y -= dy; + } +} + +#else // def __MENUET__ + +namespace Menuet +{ + struct TMutex + { + unsigned int mut; + + TMutex(); + ~TMutex(); + }; +#undef MENUET_MUTEX_INIT +#define MENUET_MUTEX_INIT TMutex() + + struct TRecMutex + { + unsigned int mut; + + TRecMutex(); + ~TRecMutex(); + }; +#undef MENUET_REC_MUTEX_INIT +#define MENUET_REC_MUTEX_INIT TRecMutex() +} + +#endif // else: def __MENUET__ + +#endif // ndef __MENUET_H_INCLUDED_ + diff --git a/programs/demos/life2/include/menuet_win.cpp b/programs/demos/life2/include/menuet_win.cpp new file mode 100644 index 000000000..1653ebc65 --- /dev/null +++ b/programs/demos/life2/include/menuet_win.cpp @@ -0,0 +1,921 @@ +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +using namespace Menuet; +using namespace std; + +const char file_prefix[] = ""; +bool WasThreadCreatedBool = false; + +struct TExceptToMessageLoop +{ + TExceptToMessageLoop() {} +}; + +struct TThreadDataStruct +{ + void *user; + void *stack_begin; + TWindowData *win_data; + HWND hwnd; + int flag; + unsigned int win_time, me_time; + void *picture; + unsigned int picture_width, picture_height; + deque *keys; + unsigned int bmp_data_length; + unsigned int *bmp_data; + unsigned int mouse_state; +}; + +TThreadDataStruct /*__thread*/ ThreadDataStruct; +int nCmdShow; +HINSTANCE hInstance; +const char szWindowClass[] = "Menuet window"; + +void FinalizeThreadData() +{ + if (ThreadDataStruct.keys) + { + delete ThreadDataStruct.keys; + ThreadDataStruct.keys = 0; + } + if (ThreadDataStruct.bmp_data) + { + delete[] ThreadDataStruct.bmp_data; + ThreadDataStruct.bmp_data = 0; + } +} + +unsigned int CalculateNewTime() +{ + unsigned int t = GetTickCount(); + unsigned int dt = (unsigned int)(t - ThreadDataStruct.win_time) / 10U; + ThreadDataStruct.me_time += dt; + ThreadDataStruct.win_time += dt * 10; + return t; +} + +void DrawPicture(HDC hdc) +{ + TRecMutex xm; + InitRecMutex(&xm); + Lock(&xm); + UnLock(&xm); + + int w = ThreadDataStruct.picture_width, h = ThreadDataStruct.picture_height; + RECT rect; + if (!ThreadDataStruct.picture || !ThreadDataStruct.hwnd || w <= 0 || h <= 0) return; + if (GetClientRect(ThreadDataStruct.hwnd, &rect)) + { + rect.right -= rect.left; rect.left = 0; + rect.bottom -= rect.top; rect.top = 0; + if (rect.right <= 0 || rect.bottom <= 0) return; + if (w > rect.right) w = rect.right; + if (h > rect.bottom) h = rect.bottom; + } + if (!ThreadDataStruct.bmp_data || ThreadDataStruct.bmp_data_length < w * h) + { + if (ThreadDataStruct.bmp_data) delete[] ThreadDataStruct.bmp_data; + ThreadDataStruct.bmp_data_length = w * h; + ThreadDataStruct.bmp_data = new unsigned int[ThreadDataStruct.bmp_data_length]; + } + int i; + unsigned char *p = (unsigned char*)ThreadDataStruct.picture; + for (i = 0; i < w * h; i++) + { + ThreadDataStruct.bmp_data[i] = ((unsigned int)p[0]) + + ((unsigned int)p[1] << 8) + ((unsigned int)p[2] << 16); + p += 3; + } + HBITMAP bitmap = CreateBitmap(w, h, 1, 32, ThreadDataStruct.bmp_data); + if (bitmap) + { + HDC memdc = CreateCompatibleDC(hdc); + if (memdc) + { + SelectObject(memdc, bitmap); + BitBlt(hdc, 0, 0, w, h, memdc, 0, 0, SRCCOPY); + DeleteObject(memdc); + } + DeleteObject(bitmap); + } +} + +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + const int timeout = 20; + unsigned int t; + PAINTSTRUCT ps; + HDC hdc; + if (hWnd == ThreadDataStruct.hwnd && ThreadDataStruct.flag != -1) + { + int window_rect[4]; + switch (message) + { + case WM_CREATE: + SetTimer(hWnd, 0, timeout, NULL); + SendMessage(hWnd, WM_SIZE, SIZE_RESTORED, 0); + return 0; + case WM_TIMER: + t = CalculateNewTime(); + while (MenuetOnIdle((TThreadData)(&ThreadDataStruct)) == 0 && + GetTickCount() - t + 2 < timeout); + return 0; + case WM_MOUSEMOVE: + MenuetOnMouse((TThreadData)(&ThreadDataStruct)); + return 0; + case WM_LBUTTONDOWN: + if (!ThreadDataStruct.mouse_state) SetCapture(hWnd); + ThreadDataStruct.mouse_state |= 1; + MenuetOnMouse((TThreadData)(&ThreadDataStruct)); + return 0; + case WM_LBUTTONUP: + if (ThreadDataStruct.mouse_state & 1) + { + ThreadDataStruct.mouse_state &= ~1; + if (!ThreadDataStruct.mouse_state) ReleaseCapture(); + MenuetOnMouse((TThreadData)(&ThreadDataStruct)); + } + return 0; + case WM_RBUTTONDOWN: + if (!ThreadDataStruct.mouse_state) SetCapture(hWnd); + ThreadDataStruct.mouse_state |= 2; + MenuetOnMouse((TThreadData)(&ThreadDataStruct)); + return 0; + case WM_RBUTTONUP: + if (ThreadDataStruct.mouse_state & 2) + { + ThreadDataStruct.mouse_state &= ~2; + if (!ThreadDataStruct.mouse_state) ReleaseCapture(); + MenuetOnMouse((TThreadData)(&ThreadDataStruct)); + } + return 0; + case WM_CAPTURECHANGED: + if (ThreadDataStruct.mouse_state) + { + ThreadDataStruct.mouse_state = 0; + MenuetOnMouse((TThreadData)(&ThreadDataStruct)); + } + return 0; + //case WM_SYSKEYDOWN: case WM_KEYDOWN: + case WM_CHAR: + ThreadDataStruct.keys->push_back((unsigned char)wParam); + MenuetOnKeyPress((TThreadData)(&ThreadDataStruct)); + return 0; + case WM_SIZE: + GetProcessInfo(0, 0, 0, 0, window_rect); + MenuetOnSize(window_rect, (TThreadData)(&ThreadDataStruct)); + InvalidateRect(hWnd, 0, 0); + return 0; + case WM_PAINT: + hdc = BeginPaint(hWnd, &ps); + if (ThreadDataStruct.picture) DrawPicture(hdc); + EndPaint(hWnd, &ps); + return 0; + case WM_CLOSE: + if (MenuetOnClose((TThreadData)(&ThreadDataStruct))) + { + ThreadDataStruct.flag = -1; + } + else return 0; + case WM_DESTROY: + PostQuitMessage(0); + return 0; + } + } + return DefWindowProc(hWnd, message, wParam, lParam); +} + +ATOM MyRegisterClass() +{ + HBRUSH background = CreateSolidBrush(RGB(0, 0, 0)); + WNDCLASSEX wcex; + wcex.cbSize = sizeof(WNDCLASSEX); + wcex.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; + wcex.lpfnWndProc = (WNDPROC)WndProc; + wcex.cbClsExtra = 0; + wcex.cbWndExtra = 0; + wcex.hInstance = hInstance; + wcex.hIcon = 0; + wcex.hCursor = LoadCursor(NULL, IDC_ARROW); + wcex.hbrBackground = background; + wcex.lpszMenuName = NULL; + wcex.lpszClassName = szWindowClass; + wcex.hIconSm = 0; + ATOM ret = RegisterClassEx(&wcex); + DeleteObject(background); + return ret; +} + +HWND InitInstance(int x, int y, int w, int h) +{ + HWND hWnd; + MyRegisterClass(); + DWORD style = WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, exstyle = 0; + hWnd = CreateWindowEx(exstyle, szWindowClass, ThreadDataStruct.win_data->Title, style, + x, y, w, h, NULL, NULL, hInstance, NULL); + if (!hWnd) return NULL; + ShowWindow(hWnd, nCmdShow); + UpdateWindow(hWnd); + return hWnd; +} + +int ThreadMainProc(void *user) +{ + ThreadMain(user, 0); + return 0; +} + +namespace Menuet +{ + void Main() {ThreadMain();} + + void* ThreadMain(void *user, void *stack_begin) + { + TStartData start_data; + ThreadDataStruct.user = user; + ThreadDataStruct.stack_begin = stack_begin; + ThreadDataStruct.win_data = &start_data.WinData; + ThreadDataStruct.hwnd = 0; + ThreadDataStruct.flag = 0; + ThreadDataStruct.win_time = GetTickCount(); + ThreadDataStruct.me_time = ThreadDataStruct.win_time / 10; + ThreadDataStruct.keys = new deque; + ThreadDataStruct.bmp_data_length = 0; + ThreadDataStruct.bmp_data = 0; + ThreadDataStruct.mouse_state = 0; + start_data.Left = 50; start_data.Width = 256; + start_data.Top = 50; start_data.Height = 256; + start_data.WinData.WindowType = 0x03; + start_data.WinData.HeaderType = 0x80; + start_data.WinData.WindowColor = 0xFFFFFF; + start_data.WinData.HeaderColor = 0x6060FF; + start_data.WinData.BorderColor = 0x000000; + start_data.WinData.TitleColor = 0xFFFF40; + start_data.WinData.Title = 0; + if (MenuetOnStart(start_data, (TThreadData)(&ThreadDataStruct))) + { + while (ThreadDataStruct.flag < 0) + { + ThreadDataStruct.flag &= ~0x80000000; + if (MenuetOnClose((TThreadData)(&ThreadDataStruct))) + { + ThreadDataStruct.flag = -1; + break; + } + } + if (ThreadDataStruct.flag >= 0) + { + assert((ThreadDataStruct.hwnd = InitInstance(start_data.Left, + start_data.Top, start_data.Width, start_data.Height)) != NULL); + assert(SendMessage(ThreadDataStruct.hwnd, WM_CREATE, 0, 0) == 0); + MSG msg; + HACCEL hAccelTable = 0; + while (GetMessage(&msg, NULL, 0, 0)) + { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + } + assert(ThreadDataStruct.flag == -1); + } + FinalizeThreadData(); + return ThreadDataStruct.stack_begin; + } + + void GetWindowData(TWindowData &win_data) + { + win_data = *ThreadDataStruct.win_data; + } + + void GetWindowData(TWindowData &win_data, TThreadData thread_data) + { + win_data = *((TThreadDataStruct*)thread_data)->win_data; + } + + void SetWindowData(const TWindowData &win_data) + { + *ThreadDataStruct.win_data = win_data; + if (ThreadDataStruct.hwnd) + { + SetWindowText(ThreadDataStruct.hwnd, ThreadDataStruct.win_data->Title); + InvalidateRect(ThreadDataStruct.hwnd, NULL, FALSE); + } + } + + void SetWindowData(const TWindowData &win_data, TThreadData thread_data) + { + *((TThreadDataStruct*)thread_data)->win_data = win_data; + if (((TThreadDataStruct*)thread_data)->hwnd) + { + SetWindowText(((TThreadDataStruct*)thread_data)->hwnd, + ((TThreadDataStruct*)thread_data)->win_data->Title); + InvalidateRect(((TThreadDataStruct*)thread_data)->hwnd, NULL, FALSE); + } + } + + void CloseWindow() + { + if (ThreadDataStruct.hwnd) + { + SendMessage(ThreadDataStruct.hwnd, WM_CLOSE, 0, 0); + } + else ThreadDataStruct.flag |= 0x80000000; + } + + void CloseWindow(TThreadData thread_data) + { + if (((TThreadDataStruct*)thread_data)->hwnd) + { + SendMessage(((TThreadDataStruct*)thread_data)->hwnd, WM_CLOSE, 0, 0); + } + else ((TThreadDataStruct*)thread_data)->flag |= 0x80000000; + } + + void Redraw(int /*frame*/) + { + if (ThreadDataStruct.hwnd) + { + InvalidateRect(ThreadDataStruct.hwnd, NULL, FALSE); + SendMessage(ThreadDataStruct.hwnd, WM_PAINT, 0, 0); + } + } + + void Redraw(int /*frame*/, TThreadData thread_data) + { + if (((TThreadDataStruct*)thread_data)->hwnd) + { + InvalidateRect(((TThreadDataStruct*)thread_data)->hwnd, NULL, FALSE); + SendMessage(((TThreadDataStruct*)thread_data)->hwnd, WM_PAINT, 0, 0); + } + } + + void Invalidate(int /*frame*/) + { + if (ThreadDataStruct.hwnd) + { + InvalidateRect(ThreadDataStruct.hwnd, NULL, FALSE); + } + } + + void Invalidate(int /*frame*/, TThreadData thread_data) + { + if (((TThreadDataStruct*)thread_data)->hwnd) + { + InvalidateRect(((TThreadDataStruct*)thread_data)->hwnd, NULL, FALSE); + } + } + + void MoveWindow(const int window_rect[/* 4 */]) + { + if (!ThreadDataStruct.hwnd) return; + RECT rect; + if (window_rect[0] == -1 || window_rect[1] == -1 || + window_rect[2] == -1 || window_rect[3] == -1) + { + if (!GetWindowRect(ThreadDataStruct.hwnd, &rect)) return; + ::MoveWindow(ThreadDataStruct.hwnd, + (window_rect[0] == -1) ? rect.left : window_rect[0], + (window_rect[1] == -1) ? rect.top : window_rect[1], + (window_rect[2] == -1) ? (rect.right - rect.left) : window_rect[2], + (window_rect[3] == -1) ? (rect.bottom - rect.top) : window_rect[3], TRUE); + } + else + { + ::MoveWindow(ThreadDataStruct.hwnd, window_rect[0], + window_rect[1], window_rect[2], window_rect[3], TRUE); + } + } + + void Abort() + { + if (ThreadDataStruct.hwnd) KillTimer(ThreadDataStruct.hwnd, 0); + abort(); + } + + void ExitProcess() {::ExitProcess(0);} + + void ExitThread() {FinalizeThreadData(); ::ExitThread(0);} + + void ExitThread(TThreadData) {FinalizeThreadData(); ::ExitThread(0);} + + void ReturnMessageLoop() + { + TExceptToMessageLoop ex; + throw(ex); + } + + void ReturnMessageLoop(TThreadData) + { + TExceptToMessageLoop ex; + throw(ex); + } + + void Delay(unsigned int time) {Sleep(time * 10);} + + unsigned int Clock() {CalculateNewTime(); return ThreadDataStruct.me_time;} + + int GetPackedTime() + { + SYSTEMTIME time; + GetSystemTime(&time); + int t; + t = (time.wSecond / 10) * 16 + (time.wSecond % 10); + t = (time.wMinute / 10) * 16 + (time.wMinute % 10) + (t << 8); + t = (time.wHour / 10) * 16 + (time.wHour % 10) + (t << 8); + return t; + } + + void GetTime(int t[/* 3 */]) + { + SYSTEMTIME time; + GetSystemTime(&time); + t[0] = time.wSecond; + t[1] = time.wMinute; + t[2] = time.wHour; + } + + int GetPackedDate() + { + SYSTEMTIME time; + GetSystemTime(&time); + int t; + t = ((time.wYear / 10) % 10) * 16 + (time.wYear % 10); + t = (time.wDay / 10) * 16 + (time.wDay % 10) + (t << 8); + t = (time.wMonth / 10) * 16 + (time.wMonth % 10) + (t << 8); + return t; + } + + void GetDate(int d[/* 3 */]) + { + SYSTEMTIME time; + GetSystemTime(&time); + d[0] = time.wDay; + d[1] = time.wMonth; + d[2] = time.wYear; + } + + void GetTimeDate(int t[/* 6 */]) + { + SYSTEMTIME time; + GetSystemTime(&time); + t[0] = time.wSecond; + t[1] = time.wMinute; + t[2] = time.wHour; + t[3] = time.wDay; + t[4] = time.wMonth; + t[5] = time.wYear; + } + + void ReadCommonColors(unsigned int colors[/* 10 */]) + { + int i; + for (i = 0; i < 10; i++) colors[i] = 0; + } + + unsigned int GetProcessInfo(unsigned int *use_cpu, char process_name[/* 13 */], unsigned int *use_memory, + unsigned int *pid, int window_rect[/* 4 */], unsigned int pid_for) + { + if (use_cpu) *use_cpu = 0; + if (process_name) strcpy(process_name, "noname"); + if (use_memory) *use_memory = 0; + if (pid) + { + if ((pid_for | 15) == -1) pid_for = getpid(); + *pid = pid_for; + } + if (window_rect) + { + RECT rect; + if (ThreadDataStruct.hwnd && GetWindowRect(ThreadDataStruct.hwnd, &rect)) + { + window_rect[0] = rect.left; + window_rect[1] = rect.top; + window_rect[2] = rect.right - rect.left; + window_rect[3] = rect.bottom - rect.top; + } + else + { + window_rect[0] = 0; window_rect[1] = 0; + window_rect[2] = 0; window_rect[3] = 0; + } + } + return 1; + } + + unsigned int GetPid() {return GetCurrentThreadId();} + + unsigned int GetPid(TThreadData /*thread_data*/) {return GetCurrentThreadId();} + + TThreadData GetThreadData() {return (TThreadData)(&ThreadDataStruct);} + + TThreadData GetThreadData(unsigned int /*pid*/) {return (TThreadData)(&ThreadDataStruct);} + + void* GetPicture(unsigned short &width, unsigned short &height) + { + width = (unsigned short)ThreadDataStruct.picture_width; + height = (unsigned short)ThreadDataStruct.picture_height; + return ThreadDataStruct.picture; + } + + void* GetPicture(unsigned short &width, unsigned short &height, TThreadData thread_data) + { + width = (unsigned short)((TThreadDataStruct*)thread_data)->picture_width; + height = (unsigned short)((TThreadDataStruct*)thread_data)->picture_height; + return ((TThreadDataStruct*)thread_data)->picture; + } + + void SetPicture(void *picture, unsigned short width, unsigned short height) + { + ThreadDataStruct.picture_width = width; + ThreadDataStruct.picture_height = height; + ThreadDataStruct.picture = picture; + if (ThreadDataStruct.hwnd) + { + InvalidateRect(ThreadDataStruct.hwnd, NULL, FALSE); + } + } + + void SetPicture(void *picture, unsigned short width, unsigned short height, TThreadData thread_data) + { + ((TThreadDataStruct*)thread_data)->picture_width = width; + ((TThreadDataStruct*)thread_data)->picture_height = height; + ((TThreadDataStruct*)thread_data)->picture = picture; + if (((TThreadDataStruct*)thread_data)->hwnd) + { + InvalidateRect(((TThreadDataStruct*)thread_data)->hwnd, NULL, FALSE); + } + } + + void GetBorderHeader(unsigned short &border_size, unsigned short &header_size) + { + border_size = (unsigned short)GetSystemMetrics(SM_CXFRAME); + header_size = (unsigned short)(GetSystemMetrics(SM_CYFRAME) + GetSystemMetrics(SM_CYCAPTION)); + } + + void GetBorderHeader(unsigned short &border_size, unsigned short &header_size, TThreadData /*thread_data*/) + { + border_size = (unsigned short)GetSystemMetrics(SM_CXFRAME); + header_size = (unsigned short)(GetSystemMetrics(SM_CYFRAME) + GetSystemMetrics(SM_CYCAPTION)); + } + + void GetClientSize(unsigned short &width, unsigned short &height) + { + if (!ThreadDataStruct.hwnd) {width = 0; height = 0; return;} + RECT rect; + GetClientRect(ThreadDataStruct.hwnd, &rect); + width = (unsigned short)(rect.right - rect.left); + height = (unsigned short)(rect.bottom - rect.top); + } + + void GetClientSize(unsigned short &width, unsigned short &height, TThreadData thread_data) + { + if (!((TThreadDataStruct*)thread_data)->hwnd) {width = 0; height = 0; return;} + RECT rect; + GetClientRect(((TThreadDataStruct*)thread_data)->hwnd, &rect); + width = (unsigned short)(rect.right - rect.left); + height = (unsigned short)(rect.bottom - rect.top); + } + + void GetClientSize(unsigned short &width, unsigned short &height, int win_width, int win_height) + { + win_width -= 2*GetSystemMetrics(SM_CXFRAME); + win_height -= 2*GetSystemMetrics(SM_CYFRAME) + GetSystemMetrics(SM_CYCAPTION); + if (win_width < 0) win_width = 0; + if (win_height < 0) win_height = 0; + width = (unsigned short)win_width; height = (unsigned short)win_height; + } + + void GetClientSize(unsigned short &width, unsigned short &height, + int win_width, int win_height, TThreadData /*thread_data*/) + { + win_width -= 2*GetSystemMetrics(SM_CXFRAME); + win_height -= 2*GetSystemMetrics(SM_CYFRAME) + GetSystemMetrics(SM_CYCAPTION); + if (win_width < 0) win_width = 0; + if (win_height < 0) win_height = 0; + width = (unsigned short)win_width; height = (unsigned short)win_height; + } + + void GetScreenSize(unsigned short &width, unsigned short &height) + { + width = (unsigned short)GetSystemMetrics(SM_CXFULLSCREEN); + height = (unsigned short)GetSystemMetrics(SM_CYFULLSCREEN); + } + + TMutex::TMutex() {mut = (unsigned int)CreateMutex(NULL, FALSE, NULL);} + + TMutex::~TMutex() {if (mut) {CloseHandle((HANDLE)mut); mut = 0;}} + + TRecMutex::TRecMutex() {mut = (unsigned int)CreateMutex(NULL, FALSE, NULL);} + + TRecMutex::~TRecMutex() {if (mut) {CloseHandle((HANDLE)mut); mut = 0;}} + + void InitMutex(TMutex *mutex) {if (!mutex->mut) *mutex = TMutex();} + + void InitRecMutex(TRecMutex *mutex) {if (!mutex->mut) *mutex = TRecMutex();} + + bool TryLock(TMutex *mutex) + { + DWORD ret = WaitForSingleObject((HANDLE)mutex->mut, 0); + return ret == WAIT_OBJECT_0 || ret == WAIT_ABANDONED; + } + + bool TryLock(TRecMutex *mutex, unsigned int /*pid*/) + { + DWORD ret = WaitForSingleObject((HANDLE)mutex->mut, 0); + return ret == WAIT_OBJECT_0 || ret == WAIT_ABANDONED; + } + + bool TryLock(TRecMutex *mutex) + { + DWORD ret = WaitForSingleObject((HANDLE)mutex->mut, 0); + return ret == WAIT_OBJECT_0 || ret == WAIT_ABANDONED; + } + + bool TryLock(TRecMutex *mutex, TThreadData /*thread_data*/) + { + DWORD ret = WaitForSingleObject((HANDLE)mutex->mut, 0); + return ret == WAIT_OBJECT_0 || ret == WAIT_ABANDONED; + } + + void Lock(TMutex *mutex) + { + WaitForSingleObject((HANDLE)mutex->mut, INFINITE); + } + + void Lock(TRecMutex *mutex, unsigned int /*pid*/) + { + WaitForSingleObject((HANDLE)mutex->mut, INFINITE); + } + + void Lock(TRecMutex *mutex) + { + WaitForSingleObject((HANDLE)mutex->mut, INFINITE); + } + + void Lock(TRecMutex *mutex, TThreadData /*thread_data*/) + { + WaitForSingleObject((HANDLE)mutex->mut, INFINITE); + } + + bool LockTime(TMutex *mutex, unsigned int time) + { + DWORD ret = WaitForSingleObject((HANDLE)mutex->mut, time * 10); + return ret == WAIT_OBJECT_0 || ret == WAIT_ABANDONED; + } + + bool LockTime(TRecMutex *mutex, unsigned int time, unsigned int /*pid*/) + { + DWORD ret = WaitForSingleObject((HANDLE)mutex->mut, time * 10); + return ret == WAIT_OBJECT_0 || ret == WAIT_ABANDONED; + } + + bool LockTime(TRecMutex *mutex, unsigned int time) + { + DWORD ret = WaitForSingleObject((HANDLE)mutex->mut, time * 10); + return ret == WAIT_OBJECT_0 || ret == WAIT_ABANDONED; + } + + bool LockTime(TRecMutex *mutex, unsigned int time, TThreadData /*thread_data*/) + { + DWORD ret = WaitForSingleObject((HANDLE)mutex->mut, time * 10); + return ret == WAIT_OBJECT_0 || ret == WAIT_ABANDONED; + } + + void UnLock(TMutex *mutex) + { + ReleaseMutex((HANDLE)mutex->mut); + } + + void UnLock(TRecMutex *mutex, unsigned int /*pid*/) + { + ReleaseMutex((HANDLE)mutex->mut); + } + + void UnLock(TRecMutex *mutex) + { + ReleaseMutex((HANDLE)mutex->mut); + } + + void UnLock(TRecMutex *mutex, TThreadData /*thread_data*/) + { + ReleaseMutex((HANDLE)mutex->mut); + } + + void DebugPutChar(char c) + { + DWORD num_written; + WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), &c, 1, &num_written, NULL); + } + + void DebugPutString(const char *s) + { + DWORD num_written; + WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), s, strlen(s), &num_written, NULL); + } + + int GetKey() + { + if (ThreadDataStruct.keys->empty()) return -1; + else + { + unsigned char c = ThreadDataStruct.keys->front(); + ThreadDataStruct.keys->pop_front(); + return c; + } + } + + int GetMouseButton() + { + return ThreadDataStruct.mouse_state; + } + + void GetMousePosition(short &x, short &y, bool absolute) + { + POINT point; + if (!GetCursorPos(&point)) {x = -1; y = -1;} + else if (absolute) {x = (short)point.x; y = (short)point.y;} + else + { + RECT rect; + if (!ThreadDataStruct.hwnd || !GetWindowRect(ThreadDataStruct.hwnd, &rect)) + { + x = -1; y = -1; + } + else + { + x = (short)(point.x - rect.left); + y = (short)(point.y - rect.top); + } + } + } + + void GetMousePosPicture(short &x, short &y) + { + POINT point; + if (!GetCursorPos(&point)) {x = -1; y = -1;} + else if (!ThreadDataStruct.hwnd || !ScreenToClient(ThreadDataStruct.hwnd, &point)) + { + x = -1; y = -1; + } + else + { + x = (short)point.x; + y = (short)point.y; + } + } + + bool WasThreadCreated() {return WasThreadCreatedBool;} + + unsigned int CreateThread(void *user, unsigned int stack_size, void* /*stack_end*/) + { + unsigned long pid = -1; + WasThreadCreatedBool = true; + if (!::CreateThread(NULL, stack_size, (LPTHREAD_START_ROUTINE)ThreadMainProc, user, 0, &pid)) + { + return -1; + } + return pid; + } + + unsigned int StrLen(const char *str) {return ::strlen(str);} + + char *StrCopy(char *dest, const char *src) {return ::strcpy(dest, src);} + + void *MemCopy(void *dest, const void *src, unsigned int n) {return ::memcpy(dest, src, n);} + + void *MemSet(void *s, char c, unsigned int n) {return ::memset(s, c, n);} + + double Floor(double x) {return floor(x);} + + void *Alloc(unsigned int size) {return malloc(size);} + + void *ReAlloc(void *mem, unsigned int size) {return realloc(mem, size);} + + void Free(void *mem) {free(mem);} + + TFileData FileOpen(const char *name, unsigned int /*buffer_length*/) + { + if (!name || !name[0]) return 0; + TFileData file_data = (TFileData)Alloc(sizeof(unsigned int) + + strlen(file_prefix) + strlen(name) + 1); + if (!file_data) return 0; + file_data->data = 0; + strcpy((char*)file_data + sizeof(unsigned int), file_prefix); + strcat((char*)file_data + sizeof(unsigned int), name); + return file_data; + } + + int FileClose(TFileData file_data) + { + if (!file_data) return -1; + if (file_data->data) CloseHandle((HANDLE)file_data->data); + Free(file_data); + return 0; + } + + bool FileEof(TFileData file_data) + { + unsigned int pos; + if (FileTestRead(file_data) < 0) return false; + pos = SetFilePointer((HANDLE)file_data->data, 0, NULL, FILE_CURRENT); + if (pos == -1) return false; + return pos >= GetFileSize((HANDLE)file_data->data, NULL); + } + + unsigned int FileGetPosition(TFileData file_data) + { + unsigned int pos; + if (FileTestRead(file_data) < 0) return 0; + pos = SetFilePointer((HANDLE)file_data->data, 0, NULL, FILE_CURRENT); + return (pos == -1) ? 0 : pos; + } + + void FileSetPosition(TFileData file_data, unsigned int pos) + { + if (FileTestRead(file_data) < 0) return; + SetFilePointer((HANDLE)file_data->data, pos, NULL, FILE_BEGIN); + } + + void FileReset(TFileData file_data) + { + if (!file_data || !file_data->data) return; + FlushFileBuffers((HANDLE)file_data->data); + } + + unsigned int FileGetLength(TFileData file_data) + { + if (FileTestRead(file_data) < 0) return -1; + return GetFileSize((HANDLE)file_data->data, NULL); + } + + int FileTestRead(TFileData file_data) + { + if (!file_data) return -1; + if (!file_data->data) + { + file_data->data = (unsigned int)CreateFile((char*)file_data + sizeof(unsigned int), + GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL | FILE_FLAG_RANDOM_ACCESS, 0); + if (!file_data->data) return -512; + } + return 0; + } + + int FileRead(TFileData file_data, void *mem, int size) + { + if (!file_data || !mem || size <= 0) return -1; + int res = FileTestRead(file_data); + if (res < 0) return res; + if (!ReadFile((HANDLE)file_data->data, mem, size, (unsigned long*)&res, NULL)) + { + return -512; + } + return (res >= 0) ? res : (-1); + } +} + +bool CheckAllocConsole(LPSTR lpCmdLine) +{ + char Console[] = "-console"; + int ConsoleL = ::strlen(Console); + char *s; + for (s = lpCmdLine; *s; s++) + { + if ((s == lpCmdLine || isspace(s[-1])) && memcmp(s, Console, ConsoleL) == 0 && + (!s[ConsoleL] || isspace(s[ConsoleL]))) + { + AllocConsole(); + SetConsoleTitle("Debug Console"); + return true; + } + } + return false; +} + +int APIENTRY WinMain(HINSTANCE hInstance, + HINSTANCE /*hPrevInstance*/, + LPSTR lpCmdLine, + int nCmdShow) +{ + ::nCmdShow = nCmdShow; + ::hInstance = hInstance; + CheckAllocConsole(lpCmdLine); + Main(); + //::ExitThread(0); + return 0; +} + diff --git a/programs/demos/life2/include/write_macro.inc b/programs/demos/life2/include/write_macro.inc new file mode 100644 index 000000000..3015f6589 --- /dev/null +++ b/programs/demos/life2/include/write_macro.inc @@ -0,0 +1,49 @@ +macro writestr [arg] +{ + common + + local straddr + local strend + pushad + push straddr + push strend + jmp @Menuet@DebugPutString$qpxc + straddr db arg,0 + strend: + pop eax + popad +} + +macro writeint arg +{ + push dword arg + xchg eax,[esp] + pushad + push eax + call @DebugPutNumber$qi + pop eax + popad + pop eax +} + +macro write [arg] +{ + forward + + if arg eq + else if arg eq endline + writestr 10 + else if arg eqtype '' + writestr arg + else + writeint arg + end if +} + +macro writeln [arg] +{ + common + + write arg,endline +} + diff --git a/programs/demos/life2/lif/ACORN.lif b/programs/demos/life2/lif/ACORN.lif new file mode 100644 index 000000000..403926db9 --- /dev/null +++ b/programs/demos/life2/lif/ACORN.lif @@ -0,0 +1,9 @@ +#Life 1.05 +#D Acorn +#D The most vigorously growing 7-cell +#D "methuselah" pattern. See also RABBITS. +#N +#P -3 -1 +.* +...* +**..*** diff --git a/programs/demos/life2/lif/ADDER.lif b/programs/demos/life2/lif/ADDER.lif new file mode 100644 index 000000000..475f29c30 --- /dev/null +++ b/programs/demos/life2/lif/ADDER.lif @@ -0,0 +1,837 @@ +#Life 1.05 +#D Binary Adder +#D By David Buckingham, with size optimization by Mark +#D Niemec, 1975. Two glider streams enter the lower +#D right, representing the binary numbers 1110 and 0011. +#D The sum, 10001, appears from the middle right side +#D after about one thousand generations. The gliders go +#D in and come out backwards -- that is, 1's place first. +#D That way, the numbers to be added can be arbitrarily +#D large. +#N +#P -56 -95 +** +..* +...* +#P -63 -92 +..*.......* +**........* +*..**....* +.*****.** +..* +#P -78 -93 +...........** +...........** +........** +.......*** +........** +..**.......** +.*.*.......** +.* +** +#P -83 -79 +** +.* +.*.*.......** +..**.......**....* +........**......**** +.......***.....*..** +........**.....** +...........**....* +...........** +#P -49 -90 +...** +...*.* +.....* +.....** +. +. +. +. +........** +.........* +.........*.*.....* +..........**....*.* +..............**...* +....*.........**...* +..*.*.........**...* +...**...........*.* +.................* +........*** +**........* +**.......* +. +. +. +. +. +. +......** +......* +........*..........* +.......****......*.* +......*....*......** +......**..** +#P -51 -56 +..............*** +..............*** +.....***.....*...* +............*.....*..*.* +.....*.*.....*...*....** +....*****.....***.....* +...**...** +...**...** +. +. +...** +.**.* +.* +............** +..***.*......* +......*...*** +......*...* +. +. +. +. +.**...** +...*** +..*...* +...*.* +....* +. +.** +..* +** +#P -63 -75 +*.** +....* +.....* +.....* +.....* +....* +..** +. +. +...* +.*** +* +** +. +. +. +. +.......*** +.........* +*.......* +** +** +.......*** +.......* +**......* +*.** +...* +#P -63 -47 +*** +. +. +. +. +. +. +..** +** +..* +.* +* +. +..** +..* +...*** +.....* +. +. +. +...........* +...........* +#P -68 -59 +..*** +. +..*.* +.**** +** +** +#P -66 -47 +.* +.* +.* +. +. +. +. +** +..* +.* +..* +#P 64 -22 +** +*.* +#P 66 -20 +* +** +#P -40 4 +* +*** +#P -38 6 +.* +** +#P -47 15 +...........*** +..........*...* +.........*.....* +..........*...* +...........*** +...........*** +. +. +.........** +..........*.....** +.......***......*.* +......*.........* +.......*** +.........*** +............* +...........** +. +. +. +. +. +..............* +.............*** +............***** +...........**...** +. +. +. +.............*** +.............*** +. +*..........** +***.........* +...*.....*** +..**.....* +. +. +. +. +.....* +....*** +...***** +..*.*.*.* +..**...** +. +. +.....* +....*.* +#P -62 63 +.....................*....** +.................*..*....*.* +.................*.........* +..................* +...............*** +...............* +........* +......*** +.....* +.....**........................* +..............................** +.......................**.....*.* +.......................** +. +. +...........** +..***.....*.* +.*...*......* +*.....* +*.....* +..............** +......*.......*.*.....*** +.....**.......*......*...* +.....**.............*.....* +...*..**............*.....* +....*.* +....**..............* +....................** +....................** +..**...**..........**..* +..**...**...........*.* +.....................** +....*** +....*** +.....*............**...** +..................**...** +. +....................*** +.......**...........*** +.......*.............* +........*** +..........* +. +..................** +...................* +................*** +................* +#P 65 21 +..** +..* +*.* +#P 65 24 +** +#P 67 49 +* +*** +...* +..** +. +. +. +. +. +..**...** +..*.....* +#P 65 61 +.**..*...* +**....*** +..* +. +. +. +. +. +.....* +...**.** +. +..*.....* +. +..**.*.** +#P 65 81 +..** +...* +*** +#P 65 84 +* +#P 22 99 +.** +** +..* +#P 22 102 +. +. +. +#P 38 111 +. +. +. +#P 37 114 +.** +** +..* +#P 13 -16 +* +.* +#P 15 -17 +* +* +* +#P 29 -17 +...** +. +** +.* +.*.* +#P 31 -12 +** +. +.....* +...** +#P 50 -15 +** +* +#P 48 -13 +*.* +** +#P 39 -13 +** +*..* +....* +....* +#P 39 -9 +....* +*..* +** +#P -6 -7 +** +.** +* +#P -6 -3 +. +. +. +#P 8 -8 +*......*.* +***.....** +...*....* +..** +. +....*** +....*** +#P 10 -1 +.*...* +*.....* +.*...* +..*** +#P 36 6 +** +* +.*** +#P 33 9 +**....* +*.* +..* +..** +#P -21 8 +** +.** +#P -21 10 +* +#P 2 11 +........** +.........* +......*** +......* +. +** +.* +.*.*......*.* +..**....*...* +........* +#P 9 21 +*....* +.* +.*...* +...*.* +. +.* +..** +.** +#P 33 19 +** +.* +.*.* +#P 35 22 +** +#P 42 21 +..** +.*.* +* +*..*..* +* +.*.* +..** +#P 49 23 +**....* +..*..*.* +***.*.** +...**.** +....*.** +.....*.* +......* +#P 21 23 +** +*.* +#P 23 25 +* +** +#P -6 33 +** +#P -7 34 +*.* +..* +#P -16 39 +** +#P -16 40 +*.* +* +#P 34 45 +....* +.**** +**** +#P 34 48 +*..* +**** +.**** +....* +#P -21 48 +** +#P -22 49 +*.* +..* +#P 11 50 +.................** +................*.* +................* +...............** +. +. +. +...........** +..........*** +**.....*.** +**.....*..*........*** +.......*.** +..........***..**..* +...........**..*...* +................*..* +................** +#P 6 69 +........**...* +........*.*..*.* +........*....** +. +. +. +**..............**........* +.*..............*..*......* +.*.*.......**..*...* +..**......***..**..* +.......*.** +.......*..*........***....* +.......*.**...............* +..........*** +...........** +..** +.** +...* +#P 39 50 +......** +......*.* +........* +........** +. +. +. +......** +......* +....*.* +*...** +.* +..* +.*........* +*.........* +#P 50 54 +.** +*..* +...* +...* +.*.* +.*.* +..* +. +. +*...** +.....* +. +*...*..** +.***....** +.......* +#P -1 54 +** +#P -1 55 +*.* +* +#P 37 59 +* +* +.* +.* +#P 37 63 +.* +* +* +#P 33 76 +.* +*.* +*..* +*.* +.* +#P 38 73 +..** +..* +*.* +** +#P 51 74 +...* +.**.** +. +*.....* +#P 51 79 +**.*.** +#P -16 87 +* +#P -17 88 +** +*.* +#P 56 86 +** +* +#P 57 88 +*** +..* +#P -8 -129 +..........* +........*** +.......* +.......** +. +................* +.....*..........*** +.....*.............* +....*.*...........** +...**.** +..*.....* +.....*...............* +..**...**............* +....................*.* +...................**.** +...****...........*.....* +...*..**.............* +....*.**..........**...** +. +.....** +......*.............**** +...................**..* +...................**.* +**.*.** +*.....*.....*.......** +.*...*.......*......* +..***......*** +. +....................**.*.** +..............*.....*.....* +.............*.......*...* +.............***......*** +. +. +..**................................* +..**..............................*** +.................................* +#P -10 -92 +......................**...........** +.......................* +....................*** +....................* +................* +................*** +...................* +.*................** +* +***.......*....................***** +........***...................*.***.* +.......*.......................*...* +.......**.......................*** +.................................* +....................*** +...................*...* +..................*.....* +..................*.....*......* +.....................*.........* +....***............*...*......*.*.....* +...*...*............***......**.**..*.* +..*.....*............*......*.....*..** +..*.....*......................* +.....*......................**...** +...*...*..............*** +....***...............*** +.....*...............*...*......* +...............*.*..............* +...............**...**...**......* +..***...........* +..*** +.*...*........................** +.........*.*..................** +**...**...** +..........* +#P 34 -90 +* +*** +...* +..** +#P 34 -86 +. +. +. +. +#P -20 -82 +** +* +#P -22 -80 +*.* +** +#P 36 -78 +.***** +*.***.* +.*...* +..*** +...* +#P 34 -70 +.......* +.......* +*.....*.* +*.*..**.** +**..*.....* +.......* +....**...** +#P -25 -70 +.* +* +#P -25 -68 +*** +#P -25 -63 +*.* +.** +.* +#P -22 -63 +. +. +. +#P 38 -58 +** +.* +#P 36 -56 +*** +* +#P 13 -54 +** +** +#P 13 -52 +. +. +#P 19 -53 +* +*.* +** +#P 19 -49 +. +. +. +#P -5 -51 +** +* +.*** +...* +#P -5 -47 +. +. +. +. +#P -17 -47 +..* +*.* +.** +#P -17 -43 +. +. +. +#P -10 -48 +* +.* +.* +#P -8 -48 +* +* +#P 14 -45 +* +#P 15 -45 +.* +** +* +#P 23 -44 +...* +.*** +* +#P 23 -41 +** +#P -15 -38 +*.* +.** +.* +#P -15 -34 +. +. +. +#P -2 -38 +......* +......*.* +......** +. +. +.......*.* +..*.....** +*.*.....* +.** +.........* +#P 0 -28 +.......*.* +.......** +. +. +. +*.* +.** +.* +#P 18 -36 +..* +.** +.** +.** +** +#P 21 -36 +** +.** +.** +*** +..** +#P 23 -25 +** +* +#P 24 -23 +*** +..* +#P 41 -25 +..** +.*.* +* +#P 41 -22 +*..* +* +.*.* +..** +#P 47 -24 +....* +.*** +*..* +.** +#P 52 -27 +..* +.*.* +*.** +*.** +*.** +.*.* +..* +#P 33 -20 +.** +*.* +#P 33 -18 +* diff --git a/programs/demos/life2/lif/AK47.lif b/programs/demos/life2/lif/AK47.lif new file mode 100644 index 000000000..9338b986c --- /dev/null +++ b/programs/demos/life2/lif/AK47.lif @@ -0,0 +1,71 @@ +#Life 1.05 +#D AK47, a gun at 47 gens/shot. +#D The AK47 reaction (middle) +#D by Richard Schroeppel was +#D known for years before +#D stabilizers were found by +#D Paul Callahan in July 1994. +#D See also P94S. +#N +#P -23 -11 +...** +..*..* +.*.*..* +.*.*...* +**.*.****** +...*..*.* +...***.*..* +.**...*.*.* +*..*.**.* +.**...*.** +...**....* +...*.*...* +**.*.....** +.*.*.** +.*.*..* +..*..* +...** +#P -6 -12 +**.......* +**.....*** +......* +......** +. +...*** +..*...* +.*.....* +.*.....* +.*.....* +..*...* +...*** +. +. +. +. +. +. +. +. +. +....** +.....* +..***.....** +..*.......** +#P 12 -5 +......** +.....*..* +....*.**.* +.*...*.*.* +.*...*.*.** +*......* +..*..*** +..*.....** +..*.**.*..* +.**.*...** +**...*** +.**....* +**..**.*.** +....**.*.* +....*..*.* +.....*..* +......** diff --git a/programs/demos/life2/lif/AQUA20.lif b/programs/demos/life2/lif/AQUA20.lif new file mode 100644 index 000000000..9f17aeaeb --- /dev/null +++ b/programs/demos/life2/lif/AQUA20.lif @@ -0,0 +1,304 @@ +#Life 1.05 +#D c/5 orthogonal spaceships +#D by Tin Coe and David Bell. +#N +#P -72 -85 +....................................................................* +.*.**.........**.........*..**..................................*..*.* +.*.**....*.**.*...*.....*.....*.***....**..***.........**.......*...** +*...*.*....***.*.*...*..*.....*........****.*....**...*...*...*..*..** +.***...**....*....*.....*.*.**..*..**.*..*****.*.**...*......**.**.**.* +........**...***.....**.....*....*..*.....**..*.**...**.....**......* +.**.******........**..***....*....*...***.....***.....***.***.**.** +..*......**.......**.*.....*.*.....*..**...**.**....**.**.....*.....* +...******.*.........*********.........**...***......*..........***..* +. +...******.*.........*********.........**...***......*..........***..* +..*......**.......**.*.....*.*.....*..**...**.**....**.**.....*.....* +.**.******........**..***....*....*...***.....***.....***.***.**.** +........**...***.....**.....*....*..*.....**..*.**...**.....**......* +.***...**....*....*.....*.*.**..*..**.*..*****.*.**...*......**.**.**.* +*...*.*....***.*.*...*..*.....*........****.*....**...*...*...*..*..** +.*.**....*.**.*...*.....*.....*.***....**..***.........**.......*...** +.*.**.........**.........*..**..................................*..*.* +....................................................................* +#P 0 -85 +...*..........***.............* +.*.**......*...........**.***..** +*...*......*.....**.*..**.....* +*...*..*...*....*.*.*..*** +....**..*..*..*.*......** +..*.*...*........****..* +..*....****..*..*..*.***.*.** +..**.......***..*.....* +.................*****...*..* +. +.................*****...*..* +..**.......***..*.....* +..*....****..*..*..*.***.*.** +..*.*...*........****..* +....**..*..*..*.*......** +*...*..*...*....*.*.*..*** +*...*......*.....**.*..**.....* +.*.**......*...........**.***..** +...*..........***.............* +#P 35 -85 +**..............*....* +**.............*...**.*............................*.....* +*..**.***......*.....*....*.*.......*.............**....*.* +.****.***....*.....**....*.........**......**.....**...**...** +*......*....***...*.**....*.......*...*...*****.*....********.* +.***..**....*..**.**.*....*...*.....***...*....*.....*.* +....*.***...*.*..***.**..*..*..******.*...**...*.....**.......**** +...**.*.**.**.*..**....*.*...*...........*....*.................** +....**...*.**..........***....***************** +. +....**...*.**..........***....***************** +...**.*.**.**.*..**....*.*...*...........*....*.................** +....*.***...*.*..***.**..*..*..******.*...**...*.....**.......**** +.***..**....*..**.**.*....*...*.....***...*....*.....*.* +*......*....***...*.**....*.......*...*...*****.*....********.* +.****.***....*.....**....*.........**......**.....**...**...** +*..**.***......*.....*....*.*.......*.............**....*.* +**.............*...**.*............................*.....* +**..............*....* +#P -72 -59 +....................................................................* +.*.**.........**.........*..**..................................*..*.* +.*.**....*.**.*...*.....*.....*.***....**..***.........**.......*...** +*...*.*....***.*.*...*..*.....*........****.*....**...*...*...*..*..** +.***...**....*....*.....*.*.**..*..**.*..*****.*.**...*......**.**.**.* +........**...***.....**.....*....*..*.....**..*.**...**.....**......* +.**.******........**..***....*....*...***.....***.....***.***.**.** +..*......**.......**.*.....*.*.....*..**...**.**....**.**.....*.....* +...******.*.........*********.........**...***......*..........***..* +. +...******.*.........*********.........**...***......*..........***..* +..*......**.......**.*.....*.*.....*..**...**.**....**.**.....*.....* +.**.******........**..***....*....*...***.....***.....***.***.**.** +........**...***.....**.....*....*..*.....**..*.**...**.....**......* +.***...**....*....*.....*.*.**..*..**.*..*****.*.**...*......**.**.**.* +*...*.*....***.*.*...*..*.....*........****.*....**...*...*...*..*..** +.*.**....*.**.*...*.....*.....*.***....**..***.........**.......*...** +.*.**.........**.........*..**..................................*..*.* +....................................................................* +#P 0 -59 +...*..........***.............* +.*.**......*...........**.***..** +*...*......*.....**.*..**.....* +*...*..*...*....*.*.*..*** +....**..*..*..*.*......** +..*.*...*........****..* +..*....****..*..*..*.***.*.** +..**.......***..*.....* +.................*****...*..* +. +.................*****...*..* +..**.......***..*.....* +..*....****..*..*..*.***.*.** +..*.*...*........****..* +....**..*..*..*.*......** +*...*..*...*....*.*.*..*** +*...*......*.....**.*..**.....* +.*.**......*...........**.***..** +...*..........***.............* +#P 34 -58 +**....**...................**.** +.******..*................*...* +.......*.........................*.* +.**.*.**..........*..**.**.......*.*.*** +.***.****..***..**...**.***.*....*.* +......**.*****...***..*...*.*.....*..* +.....*.*.*........**...**........*..* +.....**...**********..............*** +. +.....**...**********..............*** +.....*.*.*........**...**........*..* +......**.*****...***..*...*.*.....*..* +.***.****..***..**...**.***.*....*.* +.**.*.**..........*..**.**.......*.*.*** +.......*.........................*.* +.******..*................*...* +**....**...................**.** +#P -72 -35 +....................................................................* +.*.**.........**.........*..**..................................*..*.* +.*.**....*.**.*...*.....*.....*.***....**..***.........**.......*...** +*...*.*....***.*.*...*..*.....*........****.*....**...*...*...*..*..** +.***...**....*....*.....*.*.**..*..**.*..*****.*.**...*......**.**.**.* +........**...***.....**.....*....*..*.....**..*.**...**.....**......* +.**.******........**..***....*....*...***.....***.....***.***.**.** +..*......**.......**.*.....*.*.....*..**...**.**....**.**.....*.....* +...******.*.........*********.........**...***......*..........***..* +. +...******.*.........*********.........**...***......*..........***..* +..*......**.......**.*.....*.*.....*..**...**.**....**.**.....*.....* +.**.******........**..***....*....*...***.....***.....***.***.**.** +........**...***.....**.....*....*..*.....**..*.**...**.....**......* +.***...**....*....*.....*.*.**..*..**.*..*****.*.**...*......**.**.**.* +*...*.*....***.*.*...*..*.....*........****.*....**...*...*...*..*..** +.*.**....*.**.*...*.....*.....*.***....**..***.........**.......*...** +.*.**.........**.........*..**..................................*..*.* +....................................................................* +#P 0 -35 +...*..........***.............* +.*.**......*...........**.***..** +*...*......*.....**.*..**.....* +*...*..*...*....*.*.*..*** +....**..*..*..*.*......** +..*.*...*........****..* +..*....****..*..*..*.***.*.** +..**.......***..*.....* +.................*****...*..* +. +.................*****...*..* +..**.......***..*.....* +..*....****..*..*..*.***.*.** +..*.*...*........****..* +....**..*..*..*.*......** +*...*..*...*....*.*.*..*** +*...*......*.....**.*..**.....* +.*.**......*...........**.***..** +...*..........***.............* +#P 34 -34 +**....**....................**..*.*...............*......*.*.....* +.******..*....................*...*..**......***.........*.*....**..** +.......*..............**..****.*..*..*...**..******...*...*......*....* +.**.*.**.........*****....*..*****....***...*....*....**...........*..* +.***.****..***...********.**.**..........*..*......**.*.*.*.*..*..*...* +......**.*****...***.*.....*.**.......***.*.*.....*.**.*****...**..*..* +.....*.*.*.......****......*.*........**..........*............**.....* +.....**...*******..........*............********...**********....***** +. +.....**...*******..........*............********...**********....***** +.....*.*.*.......****......*.*........**..........*............**.....* +......**.*****...***.*.....*.**.......***.*.*.....*.**.*****...**..*..* +.***.****..***...********.**.**..........*..*......**.*.*.*.*..*..*...* +.**.*.**.........*****....*..*****....***...*....*....**...........*..* +.......*..............**..****.*..*..*...**..******...*...*......*....* +.******..*....................*...*..**......***.........*.*....**..** +**....**....................**..*.*...............*......*.*.....* +#P -70 13 +..** +..*..** +..*..** +.* +.****.* +....*.** +.*** +..* +.** +* +.* +.* +...*** +. +...*** +.* +.* +* +.** +..* +.*** +....*.** +.****.* +.* +..*..** +..*..** +..** +#P -70 -2 +.***** +....*.* +*......* +*...* +.**.* +....*.** +..** +...* +.** +*.* +*.** +.*.* +...* +#P -47 10 +.* +.* +* +.***.................***...*** +.**.*.........*...*.*......*** +..*...........**.*.......*....**** +......*......*...*.*...**.*.....** +...*..*.***...**.........*........**.* +...**.*.....*.....*.................* +.........*.******* +. +.........*.******* +...**.*.....*.....*.................* +...*..*.***...**.........*........**.* +......*......*...*.*...**.*.....** +..*...........**.*.......*....**** +.**.*.........*...*.*......*** +.***.................***...*** +* +.* +.* +#P 2 11 +.............*.* +.*.**.*.........* +.*.**.*....**...* +*...*....****...* +.***...**.*.....* +........**...*.* +.**.***** +..*.....* +...***** +. +...***** +..*.....* +.**.***** +........**...*.* +.***...**.*.....* +*...*....****...* +.*.**.*....**...* +.*.**.*.........* +.............*.* +#P 20 -5 +*** +***....................*....* +.*...................*..*...* +...*..............*...*.....***.** +...**........**..*.*.**..*...*....* +....*........*.***..*...*.*..*...**** +....*..*..*.***..*.......*....*...**.* +....*.****.**.......................* +.....****...******** +. +.....****...******** +....*.****.**.......................* +....*..*..*.***..*.......*....*...**.* +....*........*.***..*...*.*..*...**** +...**........**..*.*.**..*...*....* +...*..............*...*.....***.** +.*...................*..*...* +***....................*....* +*** +#P 20 27 +*** +***....................*....* +.*...................*..*...* +...*..............*...*.....***.** +...**........**..*.*.**..*...*....* +....*........*.***..*...*.*..*...**** +....*..*..*.***..*.......*....*...**.* +....*.****.**.......................* +.....****...******** +. +.....****...******** +....*.****.**.......................* +....*..*..*.***..*.......*....*...**.* +....*........*.***..*...*.*..*...**** +...**........**..*.*.**..*...*....* +...*..............*...*.....***.** +.*...................*..*...* +***....................*....* +*** diff --git a/programs/demos/life2/lif/AQUA25.lif b/programs/demos/life2/lif/AQUA25.lif new file mode 100644 index 000000000..a665dfc92 --- /dev/null +++ b/programs/demos/life2/lif/AQUA25.lif @@ -0,0 +1,1294 @@ +#Life 1.05 +#D c/4 orthogonal spaceships +#D By Hartmut Holzwart, David Bell, +#D and Tim Coe. +#D Artistic arrangement by Al Hensel. +#D +#D Orthogonal c/4's are used in +#D SAWTOOTH, STRETCH. +#N +#P -158 -108 +............................** +............................** +............................* +.........................*..* +......................*....* +.......**.............**.***.* +.......*..***.*...***......** +......*........*..** +.....****.*.*....* +.....**........*.** +....*.........***** +.***.*...........*** +*..*.............*** +.***.*...........*** +....*.........***** +.....**........*.** +.....****.*.*....* +......*........*..** +.......*..***.*...***......** +.......**.............**.***.* +......................*....* +.........................*..* +............................* +............................** +............................** +#P -158 -73 +.................................** +.................*...............** +.......**.......******...........* +.......*..***.*.......**......*..* +......*..........*..*.**...*....* +.....****.*.*....*...***...**.***.* +.....**......***.......***......** +....* +.***.* +*..* +.***.* +....* +.....**......***.......***......** +.....****.*.*....*...***...**.***.* +......*..........*..*.**...*....* +.......*..***.*.......**......*..* +.......**.......******...........* +.................*...............** +.................................** +#P -158 -41 +.................................**......*.* +.................*...............**.....***.* +.......**.......******...........*.....** +.......*..***.*.......**......*..*..*...* +......*..........*..*.**...*....*...*..* +.....****.*.*....*...***...**.***.*.*...* +.....**......***.......***......**...*** +....*..................................** +.***.* +*..* +.***.* +....*..................................** +.....**......***.......***......**...*** +.....****.*.*....*...***...**.***.*.*...* +......*..........*..*.**...*....*...*..* +.......*..***.*.......**......*..*..*...* +.......**.......******...........*.....** +.................*...............**.....***.* +.................................**......*.* +#P -158 -8 +....................* +.......**........****........** +.......*..***..****.....****.* +......*.......**..*....*.......*.....* +.....****.*.*...*..*....**....****.*..** +.....**........*..**.*..*..*.*.*.*** +....*..........**.*.........*..* +.***.*.....*.*.....*.*.***......** +*..*.......*.........*.*** +.***.*.....*.*.....*.*.***......** +....*..........**.*.........*..* +.....**........*..**.*..*..*.*.*.*** +.....****.*.*...*..*....**....****.*..** +......*.......**..*....*.......*.....* +.......*..***..****.....****.* +.......**........****........** +....................* +#P -132 24 +..........** +.....***..*** +.......*..**.*.*....* +.....**.....***......* +.**..*..***.*...****.*....* +**.**.....*....**...***.*.* +.*...*.........*........*.* +**...* +.*...*.........*........*.* +**.**.....*....**...***.*.* +.**..*..***.*...****.*....* +.....**.....***......* +.......*..**.*.*....* +.....***..*** +..........**......* +#P -114 40 +*** +.*** +#P -149 43 +.......*..**........................* +......*...**.....***..............* +.....**......*.*******...........*....* +.*...**..*..***..*****..........*......* +.*.......*......*.....*....*.*..*.****.*....* +**..*....*..*.**......*..***.*.*..*...***.*.* +.*.**......*....*.....*..**....***........*.* +.*.** +.*.**......*....*.....*..**....***........*.* +**..*....*..*.**......*..***.*.*..*...***.*.* +.*.......*......*.....*....*.*..*.****.*....* +.*...**..*..***..*****..........*......* +.....**......*.*******...........*....* +......*...**.....***..............* +.......*..** +#P -133 58 +.***..* +****..* +*.....*.** +*.***...***.* +.*.*......*.* +*.***...***.* +*.....*.** +****..* +.***..* +. +.***..* +****..* +*.....*.** +*.***...***.* +.*.*......*.* +*.***...***.* +*.....*.** +****..* +.***..* +#P -160 77 +..................*..** +.................*...**.....*** +................**......*.******* +............*...**..*..***..***** +............*.......*......*.....*....* +...........**..*....*..*.**......*..*** +............*.**......*....*.....*..** +............*.** +............*.**......*....*.....*..** +...........**..*....*..*.**......*..*** +............*.......*......*.....*....* +............*...**..*..***..***** +................**......*.*******....*...........*.* +.................*...**.....***....**........***.*.* +..................*..**............**.....***.*....* +................................*.*......**...* +..............................**.****..*.....* +..............................*..**.****** +.............................**..** +..............................*..**.****** +..........*...................**.****..*.....* +.........*.*..*...........*.....*.*......**...* +......**......*..........*.**......**.....***.*....* +.**..*..**.**.........**.*.***.....**........***.*.* +***.*...*....**..****.*.....**.......*...........*.* +.**..*...*..***.***....***..** +.........*.*................*** +.**..*...*..***.***....***..** +***.*...*....**..****.*.....** +.**..*..**.**.........**.*.*** +......**......*..........*.** +.........*.*..*...........* +..........* +#P -102 -109 +.......*.* +......*...*.........* +.....**...*......**** +.*...**..*.**....*** +.*..........***.*.* +**..*........*...** +.*.**...........*** +.*.** +.*.**...........*** +**..*........*...** +.*..........***.*.* +.*...**..*.**....*** +.....**...*......**** +......*...*.........* +.......*.* +#P -102 -85 +.......*.*.......................** +......*...*.........*..........* +.....**...*.......*..**...**..*...* +.*...**..*.**...***......***...*.* +.*..........***..*......**..*..** +**..*........*...*......*....**.** +.*.**...........*....*...**...*.** +.*.**...........*....*...** +.*.**...........*....*...**...*.** +**..*........*...*......*....**.** +.*..........***..*......**..*..** +.*...**..*.**...***......***...*.* +.....**...*.......*..**...**..*...* +......*...*.........*..........* +.......*.*.......................** +#P -102 -61 +.......*.* +......*...*.........* +.....**...*.......*..**...** +.*...**..*.**...***......***....** +.*..........***..*......**..*..*** +**..*........*...*......*....**...*** +.*.**...........*....*...**...*****.* +.*.**...........*....*...** +.*.**...........*....*...**...*****.* +**..*........*...*......*....**...*** +.*..........***..*......**..*..*** +.*...**..*.**...***......***....** +.....**...*.......*..**...** +......*...*.........* +.......*.* +#P -102 -37 +.......*.* +......*...*.........* +.....**...*.......*..**...** +.*...**..*.**...***......***....** +.*..........***..*......**..*..*** +**..*........*...*......*....**...***.** +.*.**...........*....*...**...*****.*.**..* +.*.**...........*....*...**...............* +.*.**...........*....*...**...*****.*.**..* +**..*........*...*......*....**...***.** +.*..........***..*......**..*..*** +.*...**..*.**...***......***....** +.....**...*.......*..**...** +......*...*.........* +.......*.* +#P -102 -13 +.......*.*.............................** +......*...*.........*...............*..** +.....**...*.......*..**...**....*..*..*.**.**** +.*...**..*.**...***......***...*.**...* +.*..........***..*......**..*....*.**......* +**..*........*...*......*....**............*** +.*.**...........*....*...**...*..**........*** +.*.**...........*....*...**.....* +.*.**...........*....*...**...*..**........*** +**..*........*...*......*....**............*** +.*..........***..*......**..*....*.**......* +.*...**..*.**...***......***...*.**...* +.....**...*.......*..**...**....*..*..*.**.**** +......*...*.........*...............*..** +.......*.*.............................** +#P -101 11 +.......*.* +......*...*.........*.*......*........** +.....**...*......****.*......*...*...*.* +.*...**..*.**....***...**.*..*.......*.** +.*..........***.*.*....**.*...*.**..*..** +**..*........*...**.....*..*...*...*.*..**.* +.*.**...........***......**..............*.* +.*.**.............................***........** +.*.**...........***......**..............*.* +**..*........*...**.....*..*...*...*.*..**.* +.*..........***.*.*....**.*...*.**..*..** +.*...**..*.**....***...**.*..*.......*.** +.....**...*......****.*......*...*...*.* +......*...*.........*.*......*........** +.......*.* +#P -101 51 +.........*..............................** +.......*..**......*....................*.....** +......*..****....*.*......*.*....****.**.**..** +.*...**...**.**.*..*.....*...*....*..**.*..**.* +.*....**....****.*.......*..****.**.*.......* +**..*.........**.*.*.....*.*..**..*.*......*..* +.*.**........***...*.....*.*..***.*.........*.* +.*.**.....******..**.***.*..*...** +.*.**........***...*.....*.*..***.*.........*.* +**..*.........**.*.*.....*.*..**..*.*......*..* +.*....**....****.*.......*..****.**.*.......* +.*...**...**.**.*..*.....*...*....*..**.*..**.* +......*..****....*.*......*.*....****.**.**..** +.......*..**......*....................*.....** +.........*..............................** +#P -101 74 +..............................*........* +.........*.......*.......*...*.*....***....* +.......*..**....*.*.**..*.*.*..*...**....*.* +......*..****..*...*....*.**.*..........*** +.*...**...**.***...*....*.**...**..**.* +.*....**....*****.....***.**...*.*...*.* +**..*.........**.**.**....**....**...** +.*.**........***..........*......*....** +.*.**.....******.........** +.*.**........***..........*......*....** +**..*.........**.**.**....**....**...** +.*....**....*****.....***.**...*.*...*.* +.*...**...**.***...*....*.**...**..**.* +......*..****..*...*....*.**.*..........*** +.......*..**....*.*.**..*.*.*..*...**....*.* +.........*.......*.......*...*.*....***....* +..............................*........* +#P -46 -117 +...........* +.........*..**...**.....** +.......***......****...* +.*..*...*.......*...*.** +.*..*.*.**......****..** +**........*.**..*..*...* +.*.**.****.**.*..**.....** +.*..........** +.*.**.****.**.*..**.....** +**........*.**..*..*...* +.*..*.*.**......****..** +.*..*...*.......*...*.** +.......***......****...* +.........*..**...**.....** +...........* +#P -46 -93 +...........*.............................* +.........*..**...**.....**..........**..*.* +.......***......****...*.......*.*.****.**** +.*..*...*.......*...*.**...*.***....**.**..*** +.*..*.*.**......****..**...**.*.......*........*** +**........*.**..*..*...*.....*..........*.....**.* +.*.**.****.**.*..**.....**............**......*** +.*..........**.......................* +.*.**.****.**.*..**.....**............**......*** +**........*.**..*..*...*.....*..........*.....**.* +.*..*.*.**......****..**...**.*.......*........*** +.*..*...*.......*...*.**...*.***....**.**..*** +.......***......****...*.......*.*.****.**** +.........*..**...**.....**..........**..*.* +...........*.............................* +#P -46 -69 +...........*.............................* +.........*..**...**.....**..........**..*.* +.......***......****...*.......*.*.****.**** +.*..*...*.......*...*.**...*.***....**.**..***....*.* +.*..*.*.**......****..**...**.*.......*........*.**..* +**........*.**..*..*...*.....*..........*.....***....* +.*.**.****.**.*..**.....**............**......** +.*..........**.......................* +.*.**.****.**.*..**.....**............**......** +**........*.**..*..*...*.....*..........*.....***....* +.*..*.*.**......****..**...**.*.......*........*.**..* +.*..*...*.......*...*.**...*.***....**.**..***....*.* +.......***......****...*.......*.*.****.**** +.........*..**...**.....**..........**..*.* +...........*.............................* +#P -46 -45 +...........*..............................* +.........*..**...**.....**..........**..** +.......***......****...*.......*.*.*****..* +.*..*...*.......*...*.**...*.***....*****.*..***.*.* +.*..*.*.**......****..**...**.*.........*.**..****...* +**........*.**..*..*...*.....*...........**...........* +.*.**.****.**.*..**.....**................***********.* +.*..........** +.*.**.****.**.*..**.....**................***********.* +**........*.**..*..*...*.....*...........**...........* +.*..*.*.**......****..**...**.*.........*.**..****...* +.*..*...*.......*...*.**...*.***....*****.*..***.*.* +.......***......****...*.......*.*.*****..* +.........*..**...**.....**..........**..** +...........*..............................* +#P -46 -21 +...........*......................* +.........*..**...**.....**.......****..........*** +.......***......****...*........**.* +.*..*...*.......*...*.**...*.*.........**...**..** +.*..*.*.**......****..**...**...*.....**.*.*.**** +**........*.**..*..*...*.....*.............*.* +.*.**.****.**.*..**.....**....**......**....***..* +.*..........**........................*....*.**.*.* +.*.**.****.**.*..**.....**....**......**....***..* +**........*.**..*..*...*.....*.............*.* +.*..*.*.**......****..**...**...*.....**.*.*.**** +.*..*...*.......*...*.**...*.*.........**...**..** +.......***......****...*........**.* +.........*..**...**.....**.......****..........*** +...........*......................* +#P -46 3 +...........*..................** +.........*..**...**.....**....** +.......***......****...*...*..**..** +.*..*...*.......*...*.**....**...**.**.* +.*..*.*.**......****..**......*..*****.....* +**........*.**..*..*...*...****..*..******..** +.*.**.****.**.*..**.....**....*..**....*.* +.*..........** +.*.**.****.**.*..**.....**....*..**....*.* +**........*.**..*..*...*...****..*..******..** +.*..*.*.**......****..**......*..*****.....* +.*..*...*.......*...*.**....**...**.**.* +.......***......****...*...*..**..** +.........*..**...**.....**....** +...........*..................** +#P -46 28 +...........**....* +..........*.**.**.**.* +.*..*..*.*.....*****.....* +.*..*.*.**.*.*.*.*******..** +**...................*.* +.*.**.********* +.* +.*.**.********* +**...................*.* +.*..*.*.**.*.*.*.*******..** +.*..*..*.*.....*****.....* +..........*.**.**.**.* +...........**....* +#P -46 51 +....................................* +...........**....*...............****....*....** +..........*.**.**.**.*.......**..***...**....*.* +.*..*..*.*.....*****.....*......*.*......*...*.** +.*..*.*.**.*.*.*.*******..**.*...**....***...*.** +**...................*.*......*.****.*.***...*.* +.*.**.*********................*.*...*........** +.*..............................* +.*.**.*********................*.*...*........** +**...................*.*......*.****.*.***...*.* +.*..*.*.**.*.*.*.*******..**.*...**....***...*.** +.*..*..*.*.....*****.....*......*.*......*...*.** +..........*.**.**.**.*.......**..***...**....*.* +...........**....*...............****....*....** +....................................* +#P -46 75 +..............*...* +............*..*..*.....***.*...* +.........****...**...*...*..**..*..****.** +.*..*...*.**.*.***..******..***.......*...* +.*..*.*.**......**..***.*.......*...*** +**.....................*.......*....*....** +.*.**.**........................*.*..***** +.* +.*.**.**........................*.*..***** +**.....................*.......*....*....** +.*..*.*.**......**..***.*.......*...*** +.*..*...*.**.*.***..******..***.......*...* +.........****...**...*...*..**..*..****.** +............*..*..*.....***.*...* +..............*...* +#P -46 96 +...................* +..................*.* +.................* +..............** +............*..*.*** +.........****....*** +.*..*...*.**.* +.*..*.*.** +** +.*.**.** +.* +.*.**.** +** +.*..*.*.** +.*..*...*.**.* +.........****....*** +............*..*.*** +..............** +.................* +..................*.* +...................* +#P 18 -111 +........................** +......................*....**............* +....................**.*...*****.*........** +..............**.*..**....**...*...*...*.* +..............****......*...*.***...*..*** +.............*...*...****...***.*....* +.........*....*.*....**.....**...* +.........**..*...**..............*.** +.....*.*..*.*....**..............* +..*..*.......*...* +**...**.......* +..*..** +....*..* +.....** +#P 18 -90 +...................* +......................* +.....**......**.*** +....*..*....***.***.* +..*..**.......*.**...**.** +**...**....*...*.....*...*.......** +..*..*....*....*....*.......*.*..***.* +.....*.*.*.*........*.*..**....*...*.* +........**...........*..**.*..*..***.* +..........*...............****...** +#P 18 -74 +...................* +......................* +.....**......**.*** +....*..*....***.***.* +..*..**.......*.**...**.** +**...**....*...*.....*...* +..*..*....*....*....*........** +.....*.*.*.*........*.*..**.*** +........**...........*..**.*...*** +..........*...............******.* +. +..........*...............******.* +........**...........*..**.*...*** +.....*.*.*.*........*.*..**.*** +..*..*....*....*....*........** +**...**....*...*.....*...* +..*..**.......*.**...**.** +....*..*....***.***.* +.....**......**.*** +......................* +...................* +#P 18 -42 +...................* +......................* +.....**......**.*** +....*..*....***.***.*.........* +..*..**.......*.**...**.**...*..*.....* +**...**....*...*.....*...*..*...****.*..* +..*..*....*....*....*........*..*.*..*...* +.....*.*.*.*........*.*..**...*..**..* +........**...........*..**.*.**.**.*** +..........*...............**.*...*.**..**.* +.............................*.*.*..*....* +..........*...............**.*...*.**..**.* +........**...........*..**.*.**.**.*** +.....*.*.*.*........*.*..**...*..**..* +..*..*....*....*....*........*..*.*..*...* +**...**....*...*.....*...*..*...****.*..* +..*..**.......*.**...**.**...*..*.....* +....*..*....***.***.*.........* +.....**......**.*** +......................* +...................* +#P 18 -10 +...................* +......................* +.....**......**.*** +....*..*....***.***.*........**.*.* +..*..**.......*.**...**.**..*..**..* +**...**....*...*.....*...*.....*.*.* +..*..*....*....*....*.......*.* +.....*.*.*.*........*.*..**.**.*.* +........**...........*..**.*..*..*.**.* +..........*...............****.......* +. +..........*...............****.......* +........**...........*..**.*..*..*.**.* +.....*.*.*.*........*.*..**.**.*.* +..*..*....*....*....*.......*.* +**...**....*...*.....*...*.....*.*.* +..*..**.......*.**...**.**..*..**..* +....*..*....***.***.*........**.*.* +.....**......**.*** +......................* +...................* +#P 18 22 +...................* +......................* +.....**......**.*** +....*..*....***.***.*........**.*.* +..*..**.......*.**...**.**..*..**..*.......*..** +**...**....*...*.....*...*.....*.*.*.......*..*** +..*..*....*....*....*.......*.*............*....* +.....*.*.*.*........*.*..**.**.*.*....***** +........**...........*..**.*..*..*.*...*.** +..........*...............****......*** +. +..........*...............****......*** +........**...........*..**.*..*..*.*...*.** +.....*.*.*.*........*.*..**.**.*.*....***** +..*..*....*....*....*.......*.*............*....* +**...**....*...*.....*...*.....*.*.*.......*..*** +..*..**.......*.**...**.**..*..**..*.......*..** +....*..*....***.***.*........**.*.* +.....**......**.*** +......................* +...................* +#P 18 54 +...................* +......................* +.....**......**.*** +....*..*....***.***.* +..*..**.......*.**...**.**......*.........*.* +**...**....*...*.....*...*....*..*.....******..** +..*..*....*....*....*.......**.*.....****.....* +.....*.*.*.*........*.*..**.***..*...**.*.* +........**...........*..**...*.**..*..* +..........*...............***....**** +. +..........*...............***....**** +........**...........*..**...*.**..*..* +.....*.*.*.*........*.*..**.***..*...**.*.* +..*..*....*....*....*.......**.*.....****.....* +**...**....*...*.....*...*....*..*.....******..** +..*..**.......*.**...**.**......*.........*.* +....*..*....***.***.* +.....**......**.*** +......................* +...................* +#P 10 89 +.................*..*.*...................................** +................**..*.....***..................*..................*.*..** +.......*.....****.**......*.**.......*........*.*...*..**.*..*..***..*.* +.......*...****......*....****.....*..*.....*..*..**...**..*...***..*** +.....*....*....*...**.*......*.**..*...*....**.......*.......**..*.**** +.*...**.*.....***.**.*.**...*..*...*..*....**...*.*..*.*......***..***.* +.*..*.*****....*.*...*..*..**..*..***.*.**......*..*...*.......*.......** +**...............***...*....*......*..*....*.**.....**........*** +.*.***********.***.....***.*..**.*...*.**** +.*...............................*...* +.*.***********.***.....***.*..**.*...*.**** +**...............***...*....*......*..*....*.**.....**........*** +.*..*.*****....*.*...*..*..**..*..***.*.**......*..*...*.......*.......** +.*...**.*.....***.**.*.**...*..*...*..*....**...*.*..*.*......***..***.* +.....*....*....*...**.*......*.**..*...*....**.......*.......**..*.**** +.......*...****......*....****.....*..*.....*..*..**...**..*...***..*** +.......*.....****.**......*.**.......*........*.*...*..**.*..*..***..*.* +................**..*.....***..................*..................*.*..** +.................*..*.*...................................** +#P 74 -116 +..........* +........** +.....*.*.*.* +..*..*....*....* +**...**....*...* +..*..**.......*.** +....*..*....***.***..* +.....**......**.*.*..*...* +..................**.*....* +.......................**.*....* +......................*..***.*.* +....................**.......*.* +...................* +....................**.......*.* +......................*..***.*.* +.......................**.*....* +..................**.*....* +.....**......**.*.*..*...* +....*..*....***.***..* +..*..**.......*.** +**...**....*...* +..*..*....*....* +.....*.*.*.* +........** +..........* +#P 74 -84 +..........*...........................*.* +........**........................***.*.* +.....*.*.*.*...................***.*....* +..*..*....*....*..............*....* +**...**....*...*.............**...* +..*..**.......*.**..............* +....*..*....***.***...** +.....**......**.*.*..*...*.**.* +..................**.*...*.*.* +. +......................**.** +........................*** +. +........................*** +......................**.** +. +..................**.*...*.*.* +.....**......**.*.*..*...*.**.* +....*..*....***.***...** +..*..**.......*.**..............* +**...**....*...*.............**...* +..*..*....*....*..............*....* +.....*.*.*.*...................***.*....* +........**........................***.*.* +..........*...........................*.* +#P 74 -50 +..........* +........**........................** +.....*.*.*.*.....................*....** +..*..*....*....*................*.....**** +**...**....*...*...............***....**** +..*..**.......*.**.............*.....*....* +....*..*....***.***..*.**.*.*..**.*.*.....*..** +.....**......**.*.*..*...**.**....*.**....*..*** +..................**.*.**...*..................* +.......................**.*.** +......................*...* +.......................**.*.** +..................**.*.**...*..................* +.....**......**.*.*..*...**.**....*.**....*..*** +....*..*....***.***..*.**.*.*..**.*.*.....*..** +..*..**.......*.**.............*.....*....* +**...**....*...*...............***....**** +..*..*....*....*................*.....**** +.....*.*.*.*.....................*....** +........**........................** +..........* +#P 74 -16 +..........* +........** +.....*.*.*.*.........***..** +..*..*....*....*...**.**** +**...**....*...*...*.....*.* +..*..**.......*.**.*****.** +....*..*....***.**.......* +.....**......**.*...**.* +....................**..** +....................**..** +.....**......**.*...**.* +....*..*....***.**.......* +..*..**.......*.**.*****.** +**...**....*...*...*.....*.* +..*..*....*....*...**.**** +.....*.*.*.*.........***..** +........** +..........* +#P 74 16 +..........* +........** +.....*.*.*.*.........***..** +..*..*....*....*...**.****..........* +**...**....*...*...*.....*.*.......**....** +..*..**.......*.**.*****.**......*...*.**** +....*..*....***.**.......*...*..*......* +.....**......**.*...**.*......*..*.*...* +....................**..**..*..* +....................**..**..*..* +.....**......**.*...**.*......*..*.*...* +....*..*....***.**.......*...*..*......* +..*..**.......*.**.*****.**......*...*.**** +**...**....*...*...*.....*.*.......**....** +..*..*....*....*...**.****..........* +.....*.*.*.*.........***..** +........** +..........* +#P 74 48 +..........* +........** +.....*.*.*.*.........***..**...........* +..*..*....*....*...**.****.......**..** +**...**....*...*...*.....*.*..*.**.*.*.* +..*..**.......*.**.*****.**..**.****.*.* +....*..*....***.**.......*.........**...* +.....**......**.*...**.*.............*..* +....................**..** +....................**..** +.....**......**.*...**.*.............*..* +....*..*....***.**.......*.........**...* +..*..**.......*.**.*****.**..**.****.*.* +**...**....*...*...*.....*.*..*.**.*.*.* +..*..*....*....*...**.****.......**..** +.....*.*.*.*.........***..**...........* +........** +..........* +#P 118 -112 +.........*...*..**............*.....** +.........**.*..*....*.....*..*.*....** +.....*.*..*..*.....**....*.***...*..**..** +..*..*........**....*.*....*......**...**.**.* +**...**.......*........**...*.*.....*..***** +..*..**......**.*....*.......*...****..*..****** +....*..*......*.*........*...*......*..**....*.*..** +.....**........*.*....******.**..................* +. +.....**........*.*....******.**..................* +....*..*......*.*........*...*......*..**....*.*..** +..*..**......**.*....*.......*...****..*..****** +**...**.......*........**...*.*.....*..***** +..*..*........**....*.*....*......**...**.**.* +.....*.*..*..*.....**....*.***...*..**..** +.........**.*..*....*.....*..*.*....** +.........*...*..**............*.....** +#P 130 -80 +.*..**............*............* +*..*....*.....*..*.*...**..*.**** +.*.....**....*.***....*..**.....* +..**....*.*....*......*.**......* +..*........**...*.*..........**** +.**.*....*.......*....**.*.....* +..*.*........*...*...** +...*.*....******.**....**** +. +...*.*....******.**....**** +..*.*........*...*...** +.**.*....*.......*....**.*.....* +..*........**...*.*..........**** +..**....*.*....*......*.**......* +.*.....**....*.***....*..**.....* +*..*....*.....*..*.*...**..*.**** +.*..**............*............* +#P 130 -46 +..........*...**.** +........***........* +..*...**.*..*.** +**...***..****..*...*..*** +..*...***...*...*...***...** +..........**....***...*...** +......**.**....*.....**.* +......**.**....*.....**.* +..........**....***...*...** +..*...***...*...*...***...** +**...***..****..*...*..*** +..*...**.*..*.** +........***........* +..........*...**.** +#P 130 -24 +...........*......** +...........**.**..***.* +...........*....*...*.* +..............**..***.* +..*...***.........** +**...***..*.* +..*...******.* +.............* +......** +......** +.............* +..*...******.* +**...***..*.* +..*...***.........** +..............**..***.* +...........*....*...*.* +...........**.**..***.* +...........*......** +#P 130 8 +..................* +..*.**.........**..* +**...*.........**.* +..*.*..........**** +......***..***** +......**..*.*.*.*...** +........*****.*.*...*.* +.........**...****..*.* +..........*.*.*.***.* +..........*.*.*.***.* +.........**...****..*.* +........*****.*.*...*.* +......**..*.*.*.*...** +......***..***** +..*.*..........**** +**...*.........**.* +..*.**.........**..* +..................* +#P 130 32 +..*.**...* +**...*...*..**....* +..*.*...*....*..** +......***..**.**..* +......***...*****.*..***.*.* +........*.....*.*.**..****...* +.........**......**...........* +.........**.......***********.* +. +.........**.......***********.* +.........**......**...........* +........*.....*.*.**..****...* +......***...*****.*..***.*.* +......***..**.**..* +..*.*...*....*..** +**...*...*..**....* +..*.**...* +#P 130 64 +..* +**...* +..*..** +.....** +.....* +....** +.....* +....* +..*** +.....* +.*...** +.....** +..**.* +..**.** +...*...* +**.*.* +.*...* +.* +..*.* +.....* +....*** +. +....* +.*..* +.**..** +.* +#P 104 72 +...*...* +..*.**.* +..*.* +...* +.** +.** +.....*.** +....** +. +....**.* +....**.* +......* +...*..** +....*** +. +...* +...** +..*..** +....*.* +**...* +.*** +..** +.....* +...*.* +....* +#P 144 64 +......*** +....**...* +..* +**...*...* +..*..*...* +....** +.....*...* +.....*...* +.....*** +. +.....*** +.....*...* +.....*...* +....** +..*..*...* +**...*...* +..* +....**...* +......*** +#P 178 -109 +..........**.* +......***.*.*** +..*.*..........*...** +**....**.....*...**** +..*.**..*....***.* +........*....* +..*.**..*....***.* +**....**.....*...**** +..*.*..........*...** +......***.*.*** +..........**.* +#P 178 -96 +.....................................*.* +.................................*******..** +................................****.....* +..........**.*............**...**.**.* +......***.*.***........*.***.....* +..*.*..........*...**.*....* +**....**.....*...****.*...** +..*.**..*....***.*.....****.* +........*....*.............*** +..*.**..*....***.*.....****.* +**....**.....*...****.*...** +..*.*..........*...**.*....* +......***.*.***........*.*** +..........**.*............** +#P 178 -78 +...........................................*..** +..........**.*............**.....**........*..*** +......***.*.***........*.***...**..........*....* +..*.*..........*...**.*....*.....**...***** +**....**.....*...****.*...**.....*.*...*.** +..*.**..*....***.*.....****.*...*.***** +........*....*.............*** +..*.**..*....***.*.....****.*...*.***** +**....**.....*...****.*...**.....*.*...*.** +..*.*..........*...**.*....*.....**...***** +......***.*.***........*.***...**..........*....* +..........**.*............**.....**........*..*** +...........................................*..** +#P 178 -61 +..........**.*............**.....** +......***.*.***........*.***...**......*...** +..*.*..........*...**.*....*.....**...***.*** +**....**.....*...****.*...**.....*.*.....*...*** +..*.**..*....***.*.....****.*...*.************.* +........*....*.............*** +..*.**..*....***.*.....****.*...*.************.* +**....**.....*...****.*...**.....*.*.....*...*** +..*.*..........*...**.*....*.....**...***.*** +......***.*.***........*.***...**......*...** +..........**.*............**.....** +#P 178 -46 +.............................................**..........*.* +..........**.*............**.....**....**..**.........******..** +......***.*.***........*.***...**.....****..**......****.....* +..*.*..........*...**.*....*.....**...*....**.......**.*.* +**....**.....*...****.*...**.....*.*....*...**.**.*..* +..*.**..*....***.*.....****.*...*.************.*.*** +........*....*.............*** +..*.**..*....***.*.....****.*...*.************.*.*** +**....**.....*...****.*...**.....*.*....*...**.**.*..* +..*.*..........*...**.*....*.....**...*....**.......**.*.* +......***.*.***........*.***...**.....****..**......****.....* +..........**.*............**.....**....**..**.........******..** +.............................................**..........*.* +#P 178 -30 +...........................................*.* +..........**.*............**.....**.....******..** +......***.*.***........*.***...**.....****.....* +..*.*..........*...**.*....*.....**...**.*.* +**....**.....*...****.*...**.....*..*..* +..*.**..*....***.*.....****.*...*.**** +........*....*.............*** +..*.**..*....***.*.....****.*...*.**** +**....**.....*...****.*...**.....*..*..* +..*.*..........*...**.*....*.....**...**.*.* +......***.*.***........*.***...**.....****.....* +..........**.*............**.....**.....******..** +...........................................*.* +#P 178 -14 +.........................................*.*.* +..........**.*............**.....**........*.**.* +......***.*.***........*.***...**.....*.........* +..*.*..........*...**.*....*.....**..*...** +**....**.....*...****.*...**.....*..*..** +..*.**..*....***.*.....****.*...*.**** +........*....*.............*** +..*.**..*....***.*.....****.*...*.**** +**....**.....*...****.*...**.....*..*..** +..*.*..........*...**.*....*.....**..*...** +......***.*.***........*.***...**.....*.........* +..........**.*............**.....**........*.**.* +.........................................*.*.* +#P 178 2 +..........................................*..** +..........**.*............**..............*..*** +......***.*.***........*.***..............*....* +..*.*..........*...**.*....*.........***** +**....**.....*...****.*...**..........*.** +..*.**..*....***.*.....****.*...*.**** +........*....*.............***...* +..*.**..*....***.*.....****.*...*.**** +**....**.....*...****.*...**..........*.** +..*.*..........*...**.*....*.........***** +......***.*.***........*.***..............*....* +..........**.*............**..............*..*** +..........................................*..** +#P 178 18 +......................................*........** +..........**.*............**..........*...*...*.* +......***.*.***........*.***......**..*.......*.** +..*.*..........*...**.*....*...*.***...*.**..*..** +**....**.....*...****.*...**...**...*...*...*.*..**.* +..*.**..*....***.*.....****.*...****..............*.* +........*....*.............***.............***........** +..*.**..*....***.*.....****.*...****..............*.* +**....**.....*...****.*...**...**...*...*...*.*..**.* +..*.*..........*...**.*....*...*.***...*.**..*..** +......***.*.***........*.***......**..*.......*.** +..........**.*............**..........*...*...*.* +......................................*........** +#P 178 35 +..........**.*............**......***.*...**...* +......***.*.***........*.***......**.....****.** +..*.*..........*...**.*....*...**.*...*..*.* +**....**.....*...****.*...**...**.....*....**...** +..*.**..*....***.*.....****.*...*.**...***.******* +........*....*.............*** +..*.**..*....***.*.....****.*...*.**...***.******* +**....**.....*...****.*...**...**.....*....**...** +..*.*..........*...**.*....*...**.*...*..*.* +......***.*.***........*.***......**.....****.** +..........**.*............**......***.*...**...* +#P 178 50 +..............................**..........* +..........**.*............**..**.......**.*...*.* +......***.*.***........*.***...***...*.*.....*...*..*.* +..*.*..........*...**.*....*....*..*.........*..*****...* +**....**.....*...****.*...**.....***.**......*.*..*......*.** +..*.**..*....***.*.....****.*........**......*.*..******.*.** +........*....*.............***......***..***.*..*.............*** +..*.**..*....***.*.....****.*........**......*.*..******.*.** +**....**.....*...****.*...**.....***.**......*.*..*......*.** +..*.*..........*...**.*....*....*..*.........*..*****...* +......***.*.***........*.***...***...*.*.....*...*..*.* +..........**.*............**..**.......**.*...*.* +..............................**..........* +#P 178 66 +..............................**..........*...........** +..........**.*............**..**.......**.*...*.*..*** +......***.*.***........*.***...***...*.*.....*...*.**.* +..*.*..........*...**.*....*....*..*.........*..*** +**....**.....*...****.*...**.....***.**......*.*..** +..*.**..*....***.*.....****.*........**......*.*..**.** +........*....*.............***......***..***.*..* +..*.**..*....***.*.....****.*........**......*.*..**.** +**....**.....*...****.*...**.....***.**......*.*..** +..*.*..........*...**.*....*....*..*.........*..*** +......***.*.***........*.***...***...*.*.....*...*.**.* +..........**.*............**..**.......**.*...*.*..*** +..............................**..........*...........** +#P 178 81 +............................................................** +..............................**..........*................*.....** +..........**.*............**..**.......**.*...*.*....****.**.**..** +......***.*.***........*.***...***...*.*.....*...*....*..**.*..**.* +..*.*..........*...**.*....*....*..*.........*..****.**.*.......* +**....**.....*...****.*...**.....***.**......*.*..**..*.*......*..* +..*.**..*....***.*.....****.*........**......*.*..***.*.........*.* +........*....*.............***......***..***.*..*...** +..*.**..*....***.*.....****.*........**......*.*..***.*.........*.* +**....**.....*...****.*...**.....***.**......*.*..**..*.*......*..* +..*.*..........*...**.*....*....*..*.........*..****.**.*.......* +......***.*.***........*.***...***...*.*.....*...*....*..**.*..**.* +..........**.*............**..**.......**.*...*.*....****.**.**..** +..............................**..........*................*.....** +............................................................** +#P 178 98 +..............................**.......*.* +..........**.*............**..**......*..* +......***.*.***........*.***...***...*...* +..*.*..........*...**.*....*....*..*.* +**....**.....*...****.*...**.....****...* +..*.**..*....***.*.....****.*........*.* +........*....*.............*** +..*.**..*....***.*.....****.*........*.* +**....**.....*...****.*...**.....****...* +..*.*..........*...**.*....*....*..*.* +......***.*.***........*.***...***...*...* +..........**.*............**..**......*..* +..............................**.......*.* +#P 250 -110 +.................................*.* +..........**.*................******..** +......***.*.***........*....****.....* +..*.*..........*...**.*.*...**.*.* +**....**.....*...****.*...*..* +..*.**..*....***.*.....***** +........*....* +..*.**..*....***.*.....***** +**....**.....*...****.*...*..* +..*.*..........*...**.*.*...**.*.* +......***.*.***........*....****.....* +..........**.*................******..** +.................................*.* +#P 250 -93 +..........**.*...............* +......***.*.***........*....*...** +..*.*..........*...**.*.*...*...** +**....**.....*...****.*...*.......**.*.** +..*.**..*....***.*.....************.*..***.* +........*....*...........................*.* +..*.**..*....***.*.....************.*..***.* +**....**.....*...****.*...*.......**.*.** +..*.*..........*...**.*.*...*...** +......***.*.***........*....*...** +..........**.*...............* +#P 250 -78 +..................................**..........*..** +..........**.*.................*.*..*.........*..*** +......***.*.***........*...*****.****.........*....* +..*.*..........*...**.*.*....***....**...***** +**....**.....*...****.*...*......**..**...*.** +..*.**..*....***.*.....**********...**.*** +........*....* +..*.**..*....***.*.....**********...**.*** +**....**.....*...****.*...*......**..**...*.** +..*.*..........*...**.*.*....***....**...***** +......***.*.***........*...*****.****.........*....* +..........**.*.................*.*..*.........*..*** +..................................**..........*..** +#P 250 -54 +..........................**.*.* +..........**.*..........*....*.**.* +......***.*.***........*..........* +..*.*..........*...**.*....** +**....**.....*...****.*.*** +..*.**..*....***.*.....* +........*....* +..*.**..*....***.*.....* +**....**.....*...****.*.*** +..*.*..........*...**.*....** +......***.*.***........*..........* +..........**.*..........*....*.**.* +..........................**.*.* +#P 250 -38 +.........................*........** +..........**.*...........*...*...*.* +......***.*.***..........*.......*.** +..*.*..........*...**.*...*.**..*..** +**....**.....*...****.**...*...*.*..**.* +..*.**..*....***.*...................*.* +........*....*................***........** +..*.**..*....***.*...................*.* +**....**.....*...****.**...*...*.*..**.* +..*.*..........*...**.*...*.**..*..** +......***.*.***..........*.......*.** +..........**.*...........*...*...*.* +.........................*........** +#P 250 -8 +.......*.........................* +.....**............*...........**......* +.......*...**.....*.*....***.***...*...* +.....***...***....**.....**.***.....*.*.** +....**........****...**...*.*.*****.**.*.* +..*....*...*..*.**...***.*.*........***...** +**....*..*.*..***.............*****....**.** +..*..***.............**********..*.*..*...* +....................*..........*......* +..*..***.............**********..*.*..*...* +**....*..*.*..***.............*****....**.** +..*....*...*..*.**...***.*.*........***...** +....**........****...**...*.*.*****.**.*.* +.....***...***....**.....**.***.....*.*.** +.......*...**.....*.*....***.***...*...* +.....**............*...........**......* +.......*.........................* +#P 250 16 +.......*...........................................*.* +.....**............*.........**....................*...* +.......*...**.....*.*.......*..*..**...............*..** +.....***...***....**.......*......**.................*.* +....**........****...**........**...**.....**..........* +..*....*...*..*.**...***...*.*****....*.***.......*....** +**....*..*.*..***.......*.*.**..*....*....*....*.**....*.* +..*..***.............*****....****....*..*...**......*.* +....................*....................*...**...****..** +..*..***.............*****....****....*..*...**......*.* +**....*..*.*..***.......*.*.**..*....*....*....*.**....*.* +..*....*...*..*.**...***...*.*****....*.***.......*....** +....**........****...**........**...**.....**..........* +.....***...***....**.......*......**.................*.* +.......*...**.....*.*.......*..*..**...............*..** +.....**............*.........**....................*...* +.......*...........................................*.* +#P 250 40 +.......*...................................** +.....**............*.........**.............* +.......*...**.....*.*.......*..*..**.....**.***** +.....***...***....**.......*......**.....***.****** +....**........****...**........**...**...*..*.***** +..*....*...*..*.**...***...*.*****....*.*.*..*.....*....* +**....*..*.*..***.......*.*.**..*....*....*........*..*** +..*..***.............*****....****....*...****.....*..** +....................* +..*..***.............*****....****....*...****.....*..** +**....*..*.*..***.......*.*.**..*....*....*........*..*** +..*....*...*..*.**...***...*.*****....*.*.*..*.....*....* +....**........****...**........**...**...*..*.***** +.....***...***....**.......*......**.....***.****** +.......*...**.....*.*.......*..*..**.....**.***** +.....**............*.........**.............* +.......*...................................** +#P 250 64 +.......*...................................** +.....**............*.........**.............* +.......*...**.....*.*.......*..*..**.....**.**** +.....***...***....**.......*......**.....***.***** +....**........****...**........**...**...*..*.**** +..*....*...*..*.**...***...*.*****....*.*.*..*....*....* +**....*..*.*..***.......*.*.**..*....*....*.......*..*** +..*..***.............*****....****....*...****....*..** +....................* +..*..***.............*****....****....*...****....*..** +**....*..*.*..***.......*.*.**..*....*....*.......*..*** +..*....*...*..*.**...***...*.*****....*.*.*..*....*....* +....**........****...**........**...**...*..*.**** +.....***...***....**.......*......**.....***.***** +.......*...**.....*.*.......*..*..**.....**.**** +.....**............*.........**.............* +.......*...................................** +#P 250 88 +.......*.................*.*.......** +.....**.................*...*.*...* +.......*...**.....**....*..***.*..**...**...........* +.....***...**....*.....***...*..**.......*......*..** +....**..........**.***.*........*..***.*****....*.....* +..*....*...*.*.*.***.**......****.*.*...*.......*....* +**....*..*.*.**.**.....*....**.*.......*....***.*.*....* +..*..***....................**........***....*.*..*.*.* +............................**.......*....*.*........** +..*..***....................**........***....*.*..*.*.* +**....*..*.*.**.**.....*....**.*.......*....***.*.*....* +..*....*...*.*.*.***.**......****.*.*...*.......*....* +....**..........**.***.*........*..***.*****....*.....* +.....***...**....*.....***...*..**.......*......*..** +.......*...**.....**....*..***.*..**...**...........* +.....**.................*...*.*...* +.......*.................*.*.......** diff --git a/programs/demos/life2/lif/AQUA25B.lif b/programs/demos/life2/lif/AQUA25B.lif new file mode 100644 index 000000000..9a13b99ba --- /dev/null +++ b/programs/demos/life2/lif/AQUA25B.lif @@ -0,0 +1,609 @@ +#Life 1.05 +#D c/4 diagonal spaceships +#D By Hartmut Holzwart and David Bell. +#D +#D Diagonal c/4 are used in TIRETRAX, +#D WING +#N +#P -89 -86 +** +*.* +* +#P -144 -4 +........* +......**.* +....**...* +...*...** +..*....**.* +.*..**.***.* +.* +...*.*...** +**...*.* +*...*...** +.*..**..*..* +....**...*........* +..........*.*...*.*.* +............**.***..* +............**....** +.............*.** +. +...........*.* +...........* +...........*** +............*.* +#P -112 -20 +..........* +......*.*.* +....**.*...* +....*..***.* +......*.* +.****.*..*..** +.*....**....**.* +**.............* +....*..*....*.*** +***...*....*.* +**.*......**.*..*.* +...**....*.* +.**...**.**.*.*...** +....*......**.*.....* +.........*....*......* +.....**.*...*.......* +.......**..........*.**..* +........***......*.*.**** +........**......**.**.*...* +...........*....*.*...*....*** +...........*.*..*.**..***...*.* +...............**.**..*....*.** +.............*....*.....*..*** +...................****.*...** +................* +................** +................** +#P -64 -43 +....** +...*** +..****.* +**......** +**.....** +*.*..*.** +*****..* +**...*..** +***.*...*....** +.*...**.****.**** +.......*.*** +.....**....*....*.* +.........* +..................*** +.......*.*.........**** +.......**..............* +.......*.*.......*....** +........**.....**.*...* +........***....*..*.** +...........*..**.....* +..........***..*..*** +............**.**..**......* +....................**.....*** +.............*.*.....*..***..* +.............*.......*..*..** +..............*..*....*.** +...............*.....** +.....................** +....................* +.....................*.* +....................*..* +......................* +#P -64 -5 +....** +...*** +..****.* +**......** +**.....** +*.*..*.** +*****..* +**...*.* +***.**...** +.*....*..**.** +......**.*....* +.......*..**..*....*** +......**...*..*.*..* +.......**...**.*......* +.......*.....**.*..* +........*....***...*.*.* +.........***...****.*.* +..........***...*...* +.................****** +..............*.*.**..** +..............**......**.* +.........***..**........*** +.........*..**.*...........** +..........*.*..............** +.............******.........* +..............**.*..*........* +..................*......*** +..................*..*...*** +.......................* +...................****...* +.....................* +......................** +#P -64 33 +....** +...*** +..****.* +**......** +**.....** +*.*..*.** +*****..* +**...*.* +***.**...** +.*....*..**.** +......**.*....* +.......*..**..* +......**...*..*.* +.......**...**.*.....*** +.......*.....**.*....* +........*....***........* +.........***...**.....*..** +..........***...**.....*.** +......................*..* +...............**.*.***..** +.................**..** +.................*...**...*.* +..................***.......** +...........***...*..*.*....** +...........*..**...*****...*..* +............*..*..***.**....** +..............*** +..................** +. +..................*.**.* +......................*.* +....................** +#P -16 -59 +....**.* +....*...* +....*....* +......** +**......*.* +*.*........* +*........* +.**.......*..** +.*..*...****.**.** +.*......*...**..** +...*.* +....***....***** +...........*....* +......**.....*..* +......**.*.* +......**.*.** +.......*....* +.......* +........*.* +#P -16 -29 +....**.* +....*...* +....*....* +......** +**......*.* +*.*........* +*........* +.**.......*..***** +.*..*...****.**.*** +.*......*....**...* +...*.*......**..*.* +....***..*......*** +..........* +......**..*......**** +......**.***.***..*..* +......**.***......*.* +.....***....** +.........**** +.......*.....* +........*..*.* +...........*.* +.............* +#P -16 5 +......**.* +......*...* +......*....* +........** +..........*.* +.............* +**.........* +*.*.........*.** +*............**** +.**.......*......* +.*..*....**......** +.*.......*.*..*...* +...*.*.......**....** +....**.*....* +........*.*...* +.......***.*..*** +.......*.**.***..**.* +........*......*....*...*** +...........*...*.*...**.*** +.........*..*..*...**...* +..........**....*...* +................*......* +..................****..* +..................*...** +......................*.* +................** +................* +.................* +#P -19 44 +.............*** +.............*..*** +..............*.* +..........**.......* +..........*.*....*..* +..........*........** +...........** +...........*..*.....*.** +...........*.........**.* +....**.*.....*.*......**..*....** +....*...*.....**.*....**...*...*.* +....*....*........*.......*....* +......**.........****...*.*...** +***.....*.*......*.**...**** +*..........*......*...**.* +...*.....*.............** +*..*......*.**.....*.*** +.*..*......****.....*..* +..*...*........* +....*..*.......** +.....*..*....**...*....* +.......**....**.*.*...*.* +.......**..**..**.*..* +........*..**........*..* +.........**..*........*...** +..........*.**............** +. +...........*** +#P 23 -71 +......* +.....** +.....*.* +.........* +.......*..* +.*....** +****..**....** +*..***...** +..*.....*..*..* +...**.......*.* +....**....***.* +......*...** +......*........* +......*..****..* +.......*...*...* +.........* +............**.** +#P 23 -44 +......* +.....** +.....*.* +.........* +.......*..* +.*....** +****..**...* +*..***...****** +..*.....*....** +...**............* +....**.........*.*** +.........*....*** +......*.* +......*............* +.......****...*.*..*.* +.......***..**..*..* +............*........*** +.........*.............*.** +.........*..*...........* +.........*.*..........** +.............**........* +..............*........* +. +...............**.*** +...............** +................*...* +.................** +#P 23 -9 +......* +.....** +.....*.* +.........* +.......*..* +.*....** +****..**...* +*..***...***** +..*.....*....*.* +...**........*..** +....**...*..****...** +..........**.**...* +......*.*.*........*.** +......*..*.*........**** +.......**...............* +.......**...............** +........*.**...***.***..** +...............* +.................* +.........**..........*** +..........*.*....*...*** +...........******......* +.............**.*****.* +............*.**..*...* +.............*.*...***** +..............*.*...** +#P 23 27 +......* +.....** +.....*.* +.........* +.......*..*...** +.*....**.....** +****..**....*..* +*..***...**.*.** +..*.....*..**.** +...**........*...* +....**...*....*..* +......*...*** +......*..........*.....* +......*.....*..*****..** +....****..**.*........*.* +...**...*.*......*.*.** +.....*...*......****...* +.......*.*..**.* +........*...**.*** +............** +.............*..* +. +.............* +............***** +............*.* +#P 23 58 +......* +.....** +.....*.* +.........* +.......*..* +.*....** +****..**...* +*..***...****** +..*.....*....** +...**............* +....**.........*.*** +.........*....*** +......*.* +......* +.......****...*.* +.......***..**..* +............* +.........* +.........*..* +.........*.* +#P 66 -81 +...** +...*.* +...* +**.* +*....* +*.**......*** +.....***....** +......***.*.* +.............* +......*.* +.....**.* +......* +....**.* +.......* +.....** +#P 63 -56 +.........** +.........*.* +.........* +..........*** +..........*.*** +..........*..** +............*.*.** +...........**.*.* +..........**....* +*** +*..***..*...** +.*.*...** +...**.**..* +....**....* +....**** +. +......*** +......* +#P 63 -28 +.........** +.........*.* +.........* +..........*** +..........*.*** +..........*..**..** +............*.*.*.*.** +...........**.*.**.**.* +..........**....* +***............* +*..***..*...** +.*.*...**.........*** +...**.**..*.......* +....**....*........* +....**** +.........* +......*** +.....*.* +.....**....** +.......*...*.* +......**...* +......* +.......* +#P 65 10 +.......* +......** +......*.* +. +........*.* +......*.*.* +.*...**.*.** +****..*.....* +*..**.**...** +..**....* +....**...* +.....***..*.**** +.....*..*..*** +.......*** +.........*** +..........** +#P 65 37 +.......* +......** +......*.* +. +........*.* +......*.*.* +.*...**.*.** +****..*.....*...*** +*..**.**...**...* +..**....*........* +....**...*.........* +.....***..*.****...*.* +.....*..*..*** +.......***...........*.* +.........***.........*.* +..........**..........* +...........................* +......***............*.*.**.* +......*..*.........*.....*..* +.......*..........****...** +.........**.......*......*** +...........*......**.**....* +............**.*.**..**..*..** +.............***.*.****...* +...............*******........* +..................*.**......*.* +.................*..**.......** +................**....*.......* +................*.....**...**.** +......................*....**.* +.......................****....* +..........................*.*...* +.........................**.*.* +#P 65 73 +.......* +......** +......*.* +. +........*.* +......*.*.* +.*...**.*.** +****..*.....*...*** +*..**.**...**...* +..**....*........* +....**...*.........* +.....***..*.****...*.* +.....*..*..*** +.......***...........*.* +.........*** +..........**...........*.* +.......................*.* +......***...............* +......*..*.............* +.......*...............*.* +.........**..............* +...........*.............** +............**............*.** +.................*............* +.............*.****........** +...............*..*..*.....** +....................*.*......* +..............................** +.....................**.** +.....................**...* +.......................** +..........................** +#P 107 -22 +..........* +.........** +.........*.* +...........* +............* +.........*.** +..........* +. +...........** +.**..*.....***.....** +**....*......**..*.** +..**.*..**.......**...* +....**..**........*....*** +.........**...**........*.* +..........*..*.**......*.** +.............**........*** +..............*.........** +..........** +...........** +.........** +.........** +. +...........* +............*.** +............**.** +............*.*** +.............** +#P 110 27 +.......* +......** +......*.* +. +............* +......******* +.*...*..****..* +**..*.........* +*.***..** +...**...*.*.*.** +...***.**.......*** +. +....*.*............* +....*.**.........***.* +....*.*.........***.****.* +........*......*.**..**.*** +........*.*...**.*.....**** +...............*.* +.........*.** +...........**...........**.** +...........**...........** +............***...........* +. +...............* +...............*** +...............***.** +...............***.* +...............*..** +#P 121 80 +..........* +.........** +.........*.*...* +.............** +..............*..* +............**.*..* +........***.**....* +.......*..*....* +......*....*....** +.**...*.....*.*.** +**....**.........* +..*.....*.........* +.....**..*......*** +...*.**...........*.* +...**....*.........*.** +..*..*.*............**** +........**..* +....*...***.* +.....**....***.........** +..............*.......**.* +.............*.*......*..* +..............**......* +..............**...***...* +...............*..**....*.* +..................*....* +...................**.* +.......................* diff --git a/programs/demos/life2/lif/AQUA33.lif b/programs/demos/life2/lif/AQUA33.lif new file mode 100644 index 000000000..1c433ff0f --- /dev/null +++ b/programs/demos/life2/lif/AQUA33.lif @@ -0,0 +1,1232 @@ +#Life 1.05 +#D c/3 long spaceships +#D By Hartmut Holzwart and David Bell. +#D +#D Long c/3 are used in SAWTOOT3 and +#D SAWTOOT4. See also BARGE. +#N +#P -223 -127 +......* +....**......* +....**....** +......*...** +....* +....*.*...*.* +....*.*..*..* +..*.*** +.*...*..**.* +* +.*...*..**.* +..*.*** +....*.*..*..* +....*.*...*.* +....* +......*...** +....**....** +....**......* +......* +#P -223 -103 +......* +....**......* +....**....**........*** +......*...**.......**** +....*............*.....**.* +....*.*...*.*...**..*...*** +....*.*..*..*...*...*..** +..*.***...........*.*....** +.*...*..**.*..***..**.***.* +*............*.....* +.*...*..**.*..***..**.***.* +..*.***...........*.*....** +....*.*..*..*...*...*..** +....*.*...*.*...**..*...*** +....*............*.....**.* +......*...**.......**** +....**....**........*** +....**......* +......* +#P -223 -79 +......*...............................**.*.**.* +....**......*..................***..*..*.**...* +....**....**........***..........*.*..**...* +......*...**.......****........*.....***......* +....*............*.....**.....****.....**...*** +....*.*...*.*...**..*...*...****..*.......**.* +....*.*..*..*...*...*..***..*...**....***.***.* +..*.***...........*.*....**.....***...**.....* +.*...*..**.*..***..**.***..*..*.........******* +*............*.....*......*...** +.*...*..**.*..***..**.***..*..*.........******* +..*.***...........*.*....**.....***...**.....* +....*.*..*..*...*...*..***..*...**....***.***.* +....*.*...*.*...**..*...*...****..*.......**.* +....*............*.....**.....****.....**...*** +......*...**.......****........*.....***......* +....**....**........***..........*.*..**...* +....**......*..................***..*..*.**...* +......*...............................**.*.**.* +#P -223 -55 +......*...............*...........*..........* +....**......*.......**.....*......*.......*.** +....**....**........**.....****..*.......*..* +......*...**..**.*........*....***.*....*...* +....*..........*.*..*.*.*.*...**........*....* +....*.*...*.*..*....*..***...*.........***...* +....*.*..*..*.......**....*...*****.......**.* +..*.***.........*.......*....***....****.....** +.*...*..**.*..*.**..*********...****..........* +*............*..*..* +.*...*..**.*..*.**..*********...****..........* +..*.***.........*.......*....***....****.....** +....*.*..*..*.......**....*...*****.......**.* +....*.*...*.*..*....*..***...*.........***...* +....*..........*.*..*.*.*.*...**........*....* +......*...**..**.*........*....***.*....*...* +....**....**........**.....****..*.......*..* +....**......*.......**.....*......*.......*.** +......*...............*...........*..........* +#P -223 -23 +......*....** +....**...**.......* +....**...**.*..**.*.....* +......*........**.*.*.*.*.* +....*.....**.*........*.** +....*.*...**.....*** +....*.*...* +..*.***..**......**..* +.*...*..***.....***.* +*..............* +.*...*..***.....***.* +..*.***..**......**..* +....*.*...* +....*.*...**.....*** +....*.....**.*........*.** +......*........**.*.*.*.*.* +....**...**.*..**.*.....* +....**...**.......* +......*....** +#P -223 1 +......*....** +....**...**.......* +....**...**.*..**.*.....** +......*........**.*.*.*.**** +....*.....**.*........*.* +....*.*...**.....***......**.* +....*.*...*................*.* +..*.***..**......**..*.....*...*.* +.*...*..***.....***.*......****.* +*..............* +.*...*..***.....***.*......****.* +..*.***..**......**..*.....*...*.* +....*.*...*................*.* +....*.*...**.....***......**.* +....*.....**.*........*.* +......*........**.*.*.*.**** +....**...**.*..**.*.....** +....**...**.......* +......*....** +#P -223 25 +......*....**...............* +....**...**.......*........* +....**...**.*..**.*.....**.* +......*........**.*.*.*.***.*.* +....*.....**.*........*.**..*** +....*.*...**.....***........*.*.* +....*.*...*.................** +..*.***..**......**..*.........*.* +.*...*..***.....***.*.......*.*** +*..............*............* +.*...*..***.....***.*.......*.*** +..*.***..**......**..*.........*.* +....*.*...*.................** +....*.*...**.....***........*.*.* +....*.....**.*........*.**..*** +......*........**.*.*.*.***.*.* +....**...**.*..**.*.....**.* +....**...**.......*........* +......*....**...............* +#P -223 57 +......*....**.............*.**.....** +....**...**.......*.......*...*....***.*.*** +....**...**.*..**.*.....**.......*....** +......*........**.*.*.*.**....*******.*...** +....*.....**.*........*.*.*.*.*........* +....*.*...**.....***......*.*.******...**.* +....*.*...*..............****.......*..* +..*.***..**......**...**..*.*...**....**.* +.*...*..***.....***.***..****...*.*....** +*..............*.........****..* +.*...*..***.....***.***..****...*.*....** +..*.***..**......**...**..*.*...**....**.* +....*.*...*..............****.......*..* +....*.*...**.....***......*.*.******...**.* +....*.....**.*........*.*.*.*.*........* +......*........**.*.*.*.**....*******.*...** +....**...**.*..**.*.....**.......*....** +....**...**.......*.......*...*....***.*.*** +......*....**.............*.**.....** +#P -223 81 +......*....**.............*.**.....** +....**...**.......*.......*...*....***.*.*** +....**...**.*..**.*.....**.......*....** +......*........**.*.*.*.**....*******.*...** +....*.....**.*........*.*.*.*.*........*......* +....*.*...**.....***......*.*.******...**.*...* +....*.*...*..............****.......*..*.....* +..*.***..**......**...**..*.*...**....**.*...* +.*...*..***.....***.***..****...*.*....**....** +*..............*.........****..* +.*...*..***.....***.***..****...*.*....**....** +..*.***..**......**...**..*.*...**....**.*...* +....*.*...*..............****.......*..*.....* +....*.*...**.....***......*.*.******...**.*...* +....*.....**.*........*.*.*.*.*........*......* +......*........**.*.*.*.**....*******.*...** +....**...**.*..**.*.....**.......*....** +....**...**.......*.......*...*....***.*.*** +......*....**.............*.**.....** +#P -223 105 +......*....**.............*.** +....**...**.......*.......*...* +....**...**.*..**.*.....** +......*........**.*.*.*.**....***.* +....*.....**.*........*.*.*.*.*..** +....*.*...**.....***......*.*.** +....*.*...*..............****...*...* +..*.***..**......**...**..*.*...**...* +.*...*..***.....***.***..****....***.* +*..............*.........**** +.*...*..***.....***.***..****....***.* +..*.***..**......**...**..*.*...**...* +....*.*...*..............****...*...* +....*.*...**.....***......*.*.** +....*.....**.*........*.*.*.*.*..** +......*........**.*.*.*.**....***.* +....**...**.*..**.*.....** +....**...**.......*.......*...* +......*....**.............*.** +#P -223 137 +......*....** +....**...**..................*.* +....**...**.*..**..........*..* +......*........**....**.**.*..** +....*.....**.*......* +....*.*...**.....**....*.........................................*.* +....*.*...*.......*.....*...**......*.*....**.....**......*.*....**.* +..*.***..**......**....**....*.....**.*....***.....*.....**.*...* +.*...*..***.......****.**.*....*..*.*....*...*..*....*..*.*....** +*........................**...*..***.**..**..****...*..***.**..* +.*...*..***.......****.**.*....*..*.*....*...*..*....*..*.*....** +..*.***..**......**....**....*.....**.*....***.....*.....**.*...* +....*.*...*.......*.....*...**......*.*....**.....**......*.*....**.* +....*.*...**.....**....*.........................................*.* +....*.....**.*......* +......*........**....**.**.*..** +....**...**.*..**..........*..* +....**...**..................*.* +......*....** +#P -167 -63 +......*....**............**.......*.....* +....**...**...........*.***....*.**....*.* +....**...**.*..**...**...*....*..*.....* +......*........**...**..**...*...*.....* +....*.....**.*........*.**...*..**.*.....*.**** +....*.*...**.....**.**...*.....*.**.*.**..*.* +....*.*...*.......*......**.***...*...*.** +..*.***..**......**.......*....*.......** +.*...*..***.......**.......****...***...** +*................................* +.*...*..***.......**.......****...***...** +..*.***..**......**.......*....*.......** +....*.*...*.......*......**.***...*...*.** +....*.*...**.....**.**...*.....*.**.*.**..*.* +....*.....**.*........*.**...*..**.*.....*.**** +......*........**...**..**...*...*.....* +....**...**.*..**...**...*....*..*.....* +....**...**...........*.***....*.**....*.* +......*....**............**.......*.....* +#P -167 -39 +......*....**............** +....**...**...........*.***..........* +....**...**.*..**...**...*.........**.......** +......*........**...**..**.........**......*** +....*.....**.*........*.**...*.........*.*..* +....*.*...**.....**.**...*....**....******..* +....*.*...*.......*......**.**.*...*....*..*** +..*.***..**......**.......*.......*.***.....** +.*...*..***.......**.......*********.*..** +*....................................** +.*...*..***.......**.......*********.*..** +..*.***..**......**.......*.......*.***.....** +....*.*...*.......*......**.**.*...*....*..*** +....*.*...**.....**.**...*....**....******..* +....*.....**.*........*.**...*.........*.*..* +......*........**...**..**.........**......*** +....**...**.*..**...**...*.........**.......** +....**...**...........*.***..........* +......*....**............** +#P -167 -15 +......*....**............** +....**...**...........*.*** +....**...**.*..**...**...* +......*........**...**..**.........*.** +....*.....**.*........*.**...*.....*...* +....*.*...**.....**.**...*....**.**......* +....*.*...*.......*......**.**.*.*...*.*.* +..*.***..**......**.......*..............* +.*...*..***.......**.......**********.* +* +.*...*..***.......**.......**********.* +..*.***..**......**.......*..............* +....*.*...*.......*......**.**.*.*...*.*.* +....*.*...**.....**.**...*....**.**......* +....*.....**.*........*.**...*.....*...* +......*........**...**..**.........*.** +....**...**.*..**...**...* +....**...**...........*.*** +......*....**............** +#P -167 9 +......*....**............** +....**...**...........*.*** +....**...**.*..**...**...*.......* +......*........**...**..**.......*.....* +....*.....**.*........*.**...*...*.*.*.*.* +....*.*...**.....**.**...*....**.....*.** +....*.*...*.......*......**.**.* +..*.***..**......**.......*......** +.*...*..***.......**.......******.* +* +.*...*..***.......**.......******.* +..*.***..**......**.......*......** +....*.*...*.......*......**.**.* +....*.*...**.....**.**...*....**.....*.** +....*.....**.*........*.**...*...*.*.*.*.* +......*........**...**..**.......*.....* +....**...**.*..**...**...*.......* +....**...**...........*.*** +......*....**............** +#P -167 33 +......*....**............** +....**...**...........*.*** +....**...**.*..**...**...*.......* +......*........**...**..**.......* +....*.....**.*........*.**...*...*.*.*.** +....*.*...**.....**.**...*....**.....*.*.* +....*.*...*.......*......**.**.*.......* +..*.***..**......**.......*......** +.*...*..***.......**.......******.* +* +.*...*..***.......**.......******.* +..*.***..**......**.......*......** +....*.*...*.......*......**.**.*.......* +....*.*...**.....**.**...*....**.....*.*.* +....*.....**.*........*.**...*...*.*.*.** +......*........**...**..**.......* +....**...**.*..**...**...*.......* +....**...**...........*.*** +......*....**............** +#P -167 57 +......*....**............** +....**...**...........*.*** +....**...**.*..**...**...*.......*** +......*........**...**..**.....*...*.** +....*.....**.*........*.**...*.*.*...*** +....*.*...**.....**.**...*........**.**** +....*.*...*.......*......**.*******.....** +..*.***..**......**.......*..........*..** +.*...*..***.......**.......***********.* +*......................................* +.*...*..***.......**.......***********.* +..*.***..**......**.......*..........*..** +....*.*...*.......*......**.*******.....** +....*.*...**.....**.**...*........**.**** +....*.....**.*........*.**...*.*.*...*** +......*........**...**..**.....*...*.** +....**...**.*..**...**...*.......*** +....**...**...........*.*** +......*....**............** +#P -167 81 +......*....**............** +....**...**...........*.*** +....**...**.*..**...**...*.......*** +......*........**...**..**.....*...*.** +....*.....**.*........*.**...*.*.*...***..* +....*.*...**.....**.**...*........**.*****.* +....*.*...*.......*......**.******* +..*.***..**......**.......*..........*.* +.*...*..***.......**.......***********.*** +* +.*...*..***.......**.......***********.*** +..*.***..**......**.......*..........*.* +....*.*...*.......*......**.******* +....*.*...**.....**.**...*........**.*****.* +....*.....**.*........*.**...*.*.*...***..* +......*........**...**..**.....*...*.** +....**...**.*..**...**...*.......*** +....**...**...........*.*** +......*....**............** +#P -167 105 +......*....**............** +....**...**...........*.*** +....**...**.*..**...**...*....*..* +......*........**...**..**....*...*..* +....*.....**.*........*.**...*.*.**.*.* +....*.*...**.....**.**...*............* +....*.*...*.......*......**.********* +..*.***..**......**.......*...........* +.*...*..***.......**.......*********** +* +.*...*..***.......**.......*********** +..*.***..**......**.......*...........* +....*.*...*.......*......**.********* +....*.*...**.....**.**...*............* +....*.....**.*........*.**...*.*.**.*.* +......*........**...**..**....*...*..* +....**...**.*..**...**...*....*..* +....**...**...........*.*** +......*....**............** +#P -124 -118 +*** +*** +..** +.*...** +.......*..*.* +..**.*....* +...*....** +...******* +..*......*...* +...******* +...*....** +..**.*....* +.......*..*.* +.*...** +..** +*** +*** +#P -124 -94 +*** +***.................* +..**...............*.* +.*...**...........** +.......*..*.*........* +..**.*....*......*...* +...*....**...*...* +...*******....**..**** +..*......*....** +...*******....**..**** +...*....**...*...* +..**.*....*......*...* +.......*..*.*........* +.*...**...........** +..**...............*.* +***.................* +*** +#P -112 -69 +........* +.......*.* +......** +.........* +.....*...* +..*..* +.*.*..**** +*..* +.*.*..**** +..*..* +.....*...* +.........* +......** +.......*.* +........* +#P -112 -46 +........*.* +........*...*** +......**.....** +......**...*......*........** +.........*.**..**.*.......*** +.....*...*......*..**.*.*..* +..*..*......*...****...**..** +.*.*..******........*..*..** +*..*..................*...** +.*.*..******........*..*..** +..*..*......*...****...**..** +.....*...*......*..**.*.*..* +.........*.**..**.*.......*** +......**...*......*........** +......**.....** +........*...*** +........*.* +#P -112 -22 +........*.* +........*...*** +......**.....** +......**...*......*........** +.........*.**..**.*.......*** +.....*...*......*..**.*.*..* +..*..*......*...****...**..**...* +.*.*..******........*..*..**..*** +*..*..................*...**..* +.*.*..******........*..*..**..*** +..*..*......*...****...**..**...* +.....*...*......*..**.*.*..* +.........*.**..**.*.......*** +......**...*......*........** +......**.....** +........*...*** +........*.* +#P -112 1 +.......*......* +......*.*.....*** +.....**......*.** +......*....**..** +......**.*....* +.........*....* +.....*...* +..*..*.....* +.*.*..***** +*..* +.*.*..***** +..*..*.....* +.....*...* +.........*....* +......**.*....* +......*....**..** +.....**......*.** +......*.*.....*** +.......*......* +#P -112 25 +.......* +......*.* +.....**.....**.* +......*....*...* +......**.*....* +.........* +.....*...* +..*..*.....* +.*.*..***** +*..* +.*.*..***** +..*..*.....* +.....*...* +.........* +......**.*....* +......*....*...* +.....**.....**.* +......*.* +.......* +#P -110 56 +.........* +........*.* +........* +.***....*...* +.**..*....*.* +...***.**.** +.*..*.*.*** +*....*.....* +*....*.....* +.*..*.*.*** +...***.**.** +.**..*....*.* +.***....*...* +........* +........*.* +.........* +#P -110 79 +..........................** +.........*........*......* +........*.*......**......*..*.*.*.** +........*......*****...*........*.*.* +.***....*...*.*......******.*.....* +.**..*....*.*.*.*..** +...***.**.**...*....*.*.**.* +.*..*.*.***..........*...*.* +*....*.....* +*....*.....* +.*..*.*.***..........*.........*.* +...***.**.**...*....*..***...*..* +.**..*....*.*.*.*..**....*.*.*..** +.***....*...*.*........*.* +........*......*****.*** +........*.*......** +.........*........* +#P -95 -118 +.** +*..*.....** +***...*** +*..*.**** +.***...* +.*..*** +...*....** +...*****.* +. +...*****.* +...*....** +.*..*** +.***...* +*..*.**** +***...*** +*..*.....** +.** +#P -70 -115 +.***.......* +.**..*.**.** +...***....* +.*..*.*...* +*....*....* +*....*....* +.*..*.*...* +...***....* +.**..*.**.** +.***.......* +#P -70 -95 +..............................**..* +.................*............**..*.*** +................*.*..............** +................*...*.**..*******...* +.***.......*....*.*..*....*..*....* +.**..*.**.**......*..**...****.***** +...***....*....**..**.*....**.**..** +.*..*.*...*....**..****....*.....*** +*....*....*..*..*..****....*.....* +*....*....*..*..*..****....*.....* +.*..*.*...*....**..****....*.....*** +...***....*....**..**.*....**.**..** +.**..*.**.**......*..**...****.***** +.***.......*....*.*..*....*..*....* +................*...*.**..*******...* +................*.*..............** +.................*............**..*.*** +..............................**..* +#P -70 -71 +..............................**..*...........................* +.................*............**..*..................**......*.* +................*.*..............**.........................*........*.* +................*...*.**..*******......***.........**..*...*..**.*.*..* +.***.......*....*.*..*....*..*....*....**..*.**...*......*****.....*..** +.**..*.**.**......*..**...****.*****.....****..*.**....**......* +...***....*....**..**.*....**.**..**...*..*...***..*...**...** +.*..*.*...*....**..****....*.....****.*....*..**.........*..** +*....*....*..*..*..****....*.....*...**....*..*** +*....*....*..*..*..****....*.....*...**....*..*** +.*..*.*...*....**..****....*.....****.*....*..**.........*..** +...***....*....**..**.*....**.**..**...*..*...***..*...**...** +.**..*.**.**......*..**...****.*****.....****..*.**....**......* +.***.......*....*.*..*....*..*....*....**..*.**...*......*****.....*..** +................*...*.**..*******......***.........**..*...*..**.*.*..* +................*.*..............**.........................*........*.* +.................*............**..*..................**......*.* +..............................**..*...........................* +#P -70 -47 +..............................**..* +.................*............**..*..................** +................*.*..............**.......................* +................*...*.**..*******......***.........**..*..*** +.***.......*....*.*..*....*..*....*....**..*.**...*......*.*..* +.**..*.**.**......*..**...****.*****.....****..*.**....**..*.*..*...** +...***....*....**..**.*....**.**..**...*..*...***..*...***..***.*.** +.*..*.*...*....**..****....*.....****.*....*..**............*.......* +*....*....*..*..*..****....*.....*...**....*..*** +*....*....*..*..*..****....*.....*...**....*..*** +.*..*.*...*....**..****....*.....****.*....*..**............*.......* +...***....*....**..**.*....**.**..**...*..*...***..*...***..***.*.** +.**..*.**.**......*..**...****.*****.....****..*.**....**..*.*..*...** +.***.......*....*.*..*....*..*....*....**..*.**...*......*.*..* +................*...*.**..*******......***.........**..*..*** +................*.*..............**.......................* +.................*............**..*..................** +..............................**..* +#P -70 -23 +..............................**..* +.................*............**..* +................*.*..............**.........* +................*...*.**..*******......***..*** +.***.......*....*.*..*....*..*....*....**..*.*..*...** +.**..*.**.**......*..**...****.*****.....***..*.*.** +...***....*....**..**.*....**.**..**...*..***.......* +.*..*.*...*....**..****....*.....****.* +*....*....*..*..*..****....*.....*...**...* +*....*....*..*..*..****....*.....*...**...* +.*..*.*...*....**..****....*.....****.* +...***....*....**..**.*....**.**..**...*..***.......* +.**..*.**.**......*..**...****.*****.....***..*.*.** +.***.......*....*.*..*....*..*....*....**..*.*..*...** +................*...*.**..*******......***..*** +................*.*..............**.........* +.................*............**..* +..............................**..* +#P -70 1 +..............................**..* +.................*............**..* +................*.*..............**......* +................*...*.**..*******......** +.***.......*....*.*..*....*..*....*....**.........*.* +.**..*.**.**......*..**...****.*****.....*.......**** +...***....*....**..**.*....**.**..**...*...*....** +.*..*.*...*....**..****....*.....****.*...****..** +*....*....*..*..*..****....*.....*...**...*.*..* +*....*....*..*..*..****....*.....*...**...*.*..* +.*..*.*...*....**..****....*.....****.*...****..** +...***....*....**..**.*....**.**..**...*...*....** +.**..*.**.**......*..**...****.*****.....*.......**** +.***.......*....*.*..*....*..*....*....**.........*.* +................*...*.**..*******......** +................*.*..............**......* +.................*............**..* +..............................**..* +#P -70 25 +..............................**..*........................** +.................*............**..*................*......* +................*.*..............**......*........**......*..*.....* +................*...*.**..*******......**.......*****...*........*.*.* +.***.......*....*.*..*....*..*....*....**......*......******.*.*.*.** +.**..*.**.**......*..**...****.*****.....*.....*.*..** +...***....*....**..**.*....**.**..**...*...*...*.....*.*.**.* +.*..*.*...*....**..****....*.....****.*...****.**.....*...*.* +*....*....*..*..*..****....*.....*...**...*.*.* +*....*....*..*..*..****....*.....*...**...*.*.* +.*..*.*...*....**..****....*.....****.*...****.**.....*...*.* +...***....*....**..**.*....**.**..**...*...*...*.....*.*.**.* +.**..*.**.**......*..**...****.*****.....*.....*.*..** +.***.......*....*.*..*....*..*....*....**......*......******.*.*.*.** +................*...*.**..*******......**.......*****...*........*.*.* +................*.*..............**......*........**......*..*.....* +.................*............**..*................*......* +..............................**..*........................** +#P -70 50 +.................*...........***...* +................*.*.........*.....*..* +................*...*.**..**....*.*...* +.***.......*....*.*..*....***...*...*.....*.** +.**..*.**.**......*..**...**....*.*.*..**.*.*.* +...***....*....**..**.*..........*...*......* +.*..*.*...*....**..**** +*....*....*..*..*..****...* +*....*....*..*..*..****...* +.*..*.*...*....**..**** +...***....*....**..**.*..........*...*......* +.**..*.**.**......*..**...**....*.*.*..**.*.*.* +.***.......*....*.*..*....***...*...*.....*.** +................*...*.**..**....*.*...* +................*.*.........*.....*..* +.................*...........***...* +#P -110 103 +.....................*..............................*...*.*.* +.........*..........**..**.........**...*......**.**..****.** +........*.*......*.**.*.........*.***..*.*.....**.*.*.**....*.* +........*......***.**...*.*....*...*...*.*....*....*......**..**.* +.***....*...*.*.*..**.....*..*.*..**...*.....**..*.*......***..*...* +.**..*....*.*.*....*....***.*....***..**.*.*..*..**............**.** +...***.**.**...**.***...***.*.....**.....*.........*..............** +.*..*.*.***........**.........***.**.*....**.......*.*..........*.* +*....*.....*....................*..*.*..........................*...* +*....*.....*....................*..*.*..........................*...* +.*..*.*.***........**.........***.**.*....**.......*.*..........*.* +...***.**.**...**.***...***.*.....**.....*.........*..............** +.**..*....*.*.*....*....***.*....***..**.*.*..*..**............**.** +.***....*...*.*.*..**.....*..*.*..**...*.....**..*.*......***..*...* +........*......***.**...*.*....*...*...*.*....*....*......**..**.* +........*.*......*.**.*.........*.***..*.*.....**.*.*.**....*.* +.........*..........**..**.........**...*......**.**..****.** +.....................*..............................*...*.*.* +#P -110 127 +.....................*..............................*...*.*.* +.........*..........**..**.........**...*......**.**..****.** +........*.*......*.**.*.........*.***..*.*.....**.*.*.**....*.* +........*......***.**...*.*....*...*...*.*....*....*......**..**.*.......*.* +.***....*...*.*.*..**.....*..*.*..**...*.....**..*.*......***..*...*....**** +.**..*....*.*.*....*....***.*....***..**.*.*..*..**............**.**...** +...***.**.**...**.***...***.*.....**.....*.........*..............**..*.* +.*..*.*.***........**.........***.**.*....**.......*.*..........*.*...* +*....*.....*....................*..*.*..........................*...*.* +*....*.....*....................*..*.*..........................*...*.* +.*..*.*.***........**.........***.**.*....**.......*.*..........*.*...* +...***.**.**...**.***...***.*.....**.....*.........*..............**..*.* +.**..*....*.*.*....*....***.*....***..**.*.*..*..**............**.**...** +.***....*...*.*.*..**.....*..*.*..**...*.....**..*.*......***..*...*....**** +........*......***.**...*.*....*...*...*.*....*....*......**..**.*.......*.* +........*.*......*.**.*.........*.***..*.*.....**.*.*.**....*.* +.........*..........**..**.........**...*......**.**..****.** +.....................*..............................*...*.*.* +#P 10 -119 +.....................** +.....................***.* +...................*....*** +.................*******.** +.***.......*....*........** +.**..*.**.**....*.**.**.** +...***....*....*..**..**...* +.*..*.*...*....***.*.**...* +*....*....*..*...*..** +*....*....*..*...*..** +.*..*.*...*....***.*.**...* +...***....*....*..**..**...* +.**..*.**.**....*.**.**.** +.***.......*....*........** +.................*******.** +...................*....*** +.....................***.* +.....................** +#P 10 -93 +..................*...* +.................*.*.*..**.*.** +.***.......*.....*...*.....*.*.* +.**..*.**.**.....*.*...*.....* +...***....*........*..* +.*..*.*...*...*.**..* +*....*....*..*...* +*....*....*..*...* +.*..*.*...*...*.**..* +...***....*........*..* +.**..*.**.**.....*.*...*.....* +.***.......*.....*...*.....*.*.* +.................*.*.*..**.*.** +..................*...* +#P 10 -71 +........................................* +.......................................** +..................*...........***.....**.** +.................*.*.........*..........*...*...** +.***.......*.....*...*.**..**....*.*****.**.*.** +.**..*.**.**.....*.*..*....***...*..*...*.......* +...***....*........*..**...**....*.*..*** +.*..*.*...*...*.**..**.*..........*...** +*....*....*..*...*..**** +*....*....*..*...*..**** +.*..*.*...*...*.**..**.*..........*...** +...***....*........*..**...**....*.*..*** +.**..*.**.**.....*.*..*....***...*..*...*.......* +.***.......*.....*...*.**..**....*.*****.**.*.** +.................*.*.........*..........*...*...** +..................*...........***.....**.** +.......................................** +........................................* +#P 10 -47 +..................................................** +.......................................................* +..................*............*....***.........**..*..*** +.................*.*..........*.*...**..*.**...*......*.*..* +.***.......*.....*.*....***..**.......****..*.**....**..*.*..*...** +.**..*.**.**.....*......***..*..*...*..*...***..*...***..***.*.** +...***....*..........*.....**.**...*....*..**............*.......* +.*..*.*...*...*.**..*...*.***...*..*....*..*** +*....*....*..*...*.**...*.....*...**....*..*** +*....*....*..*...*.**...*.....*...**....*..*** +.*..*.*...*...*.**..*...*.***...*..*....*..*** +...***....*..........*.....**.**...*....*..**............*.......* +.**..*.**.**.....*......***..*..*...*..*...***..*...***..***.*.** +.***.......*.....*.*....***..**.......****..*.**....**..*.*..*...** +.................*.*..........*.*...**..*.**...*......*.*..* +..................*............*....***.........**..*..*** +.......................................................* +..................................................** +#P 10 -23 +........................................* +...............................**......*.* +......................................* +.................***.........**..*...*..**.*.*..** +.***.......*.....**..*.**...*......*****.....*..* +.**..*.**.**.......****..*.**....**......*.....*.* +...***....*......*..*...***..*...**...** +.*..*.*...*...*.*....*..**.........*..** +*....*....*..*.**....*..*** +*....*....*..*.**....*..*** +.*..*.*...*...*.*....*..**.........*..** +...***....*......*..*...***..*...**...** +.**..*.**.**.......****..*.**....**......*.....*.* +.***.......*.....**..*.**...*......*****.....*..* +.................***.........**..*...*..**.*.*..** +......................................* +...............................**......*.* +........................................* +#P 10 3 +...................*........*........*.........* +.................**........*.*......*.*......** +.***.......*.....**.......**........*.*......**.........*.* +.**..*.**.**.......*........*.......*..........*.......**** +...***....*......*...*....**............*....*...*....** +.*..*.*...*...*.*...****..******...**..*..*.*...****..** +*....*....*..*.**...*.*..*.*...*.*..*.**...**...*.*..* +*....*....*..*.**...*.*..*.*...*.*..*.**...**...*.*..* +.*..*.*...*...*.*...****..******...**..*..*.*...****..** +...***....*......*...*....**............*....*...*....** +.**..*.**.**.......*........*.......*..........*.......**** +.***.......*.....**.......**........*.*......**.........*.* +.................**........*.*......*.*......** +...................*........*........*.........* +#P 10 28 +...................**..........*.....................** +.***.......*..................**.........***..............* +.**..*.**.**.....**..*......*****.......*..........**..*..***.......* +...***....*.....*..........*......*...**....*.....*......*.*..*.*.** +.*..*.*...*....**....***...*.*..**....***...*.*..**....**..*.*..*...** +*....*....*...*..*...**....*.....*..........*......*...***..*** +*....*....*............*..........**..*......*****..........* +.*..*.*...*.............***....................** +...***....*.........................**..........* +.**..*.**.** +.***.......* +#P -12 58 +...............* +..............*.* +.............**....**....*** +..........**..*...*..*........* +.......*.****.**..***.....** +......*.....*.**..*...***.**.** +...*.**............**...*.* +...***..**.....*.**.......* +..*.**.........***.*...* +.**.**.**.*....*.*.*.*.*.* +*...*..**..*....*.......* +....*.*.** +.**...*.* +..*.....* +..***** +.* +..***** +..*.....* +.**...*.* +....*.*.** +*...*..**..*....*.......* +.**.**.**.*....*.*.*.*.*.* +..*.**.........***.*...* +...***..**.....*.**.......* +...*.**............**...*.* +......*.....*.**..*...***.**.** +.......*.****.**..***.....** +..........**..*...*..*........* +.............**....**....*** +..............*.* +...............* +#P -9 102 +...............*....................* +..............*.*..................* +.............**...................** +..........**..*...................* +.......*.****.**.................**** +......*.....*.**.........*......* +...*.**.................*.......*** +...***..**.....*.*.....** +..*.**.........**.*....*.......**** +.**.**.**.*.........**.***...**..** +*...*..**..*....***........**..* +....*.*.**.......***....**.*.* +.**...*.*...........**.**....*** +..*.....*..........**....**.* +..*****...........*.*.....*.* +.*...............* +..*****...........*.*.....*.* +..*.....*..........**....**.* +.**...*.*...........**.**....*** +....*.*.**.......***....**.*.* +*...*..**..*....***........**..* +.**.**.**.*.........**.***...**..** +..*.**.........**.*....*.......**** +...***..**.....*.*.....** +...*.**.................*.......*** +......*.....*.**.........*......* +.......*.****.**.................**** +..........**..*...................* +.............**...................** +..............*.*..................* +...............*....................* +#P 44 63 +..** +**.................* +**.*..**..........*.* +......**..........*......* +.**.*............*..*..*.*.* +.**....*.**......***.*.*.** +...**..***.*.....*.* +...*.....*****.****.* +..**.*****......*.*..* +...*......****..** +....******.*.*....* +...........*........* +....******.*.*....* +...*......****..** +..**.*****......*.*..* +...*.....*****.****.* +...**..***.*.....*.* +.**....*.**......***.*.*.** +.**.*............*..*..*.*.* +......**..........*......* +**.*..**..........*.* +**.................* +..** +#P 44 95 +..*..** +**.*....*........................* +*....*..*........*..*...........*.*.....* +.*.....*......*..*...*..*.**.*.*....*.** +.*..****.....*.*..*.****...****.*...*...** +.............***....**....*.*..* +..**.****.*.*...*....*..*........* +...*....*.*.**.......***.*....*** +...**..*...*....*....*..*....*** +....*...*..**...*.....*..*.* +.....***....******....*..*.*** +.................* +.....***....******....*..*.*** +....*...*..**...*.....*..*.* +...**..*...*....*....*..*....*** +...*....*.*.**.......***.*....*** +..**.****.*.*...*....*..*........* +.............***....**....*.*..* +.*..****.....*.*..*.****...****.*...*...** +.*.....*......*..*...*..*.**.*.*....*.** +*....*..*........*..*...........*.*.....* +**.*....*........................* +..*..** +#P 104 98 +...**..........*.* +..*............* +.*....*.....*** +..*.........**.* +.*****.*...*..** +**..........*.**..* +.**.**..**.*..** +....**..........* +..*.*..*.*......*.* +..***..* +..*..* +...** +#P 93 -75 +...................* +..........**......*.*....**.* +..*......*..*.....*.....*...* +.*.*....*..*..**..*...*....* +**.......*.*..***.***.* +.*...**.......**.*.....*..* +.**.******.....*.****....** +..*.......*.....**..*.*...* +...*..*...*..........*.....*** +.......*............**.....*** +...***.*.*...........*.* +....*.................*.......*** +..............................*** +. +.............................** +.............................** +...............................* +#P 93 -51 +...................* +..........**......*.*....**.* +..*......*..*.....*.....*...* +.*.*....*..*..**..*...*....*...*.*.....* +**.......*.*..***.***.*........*......*.* +.*...**.......**.*.....*..*..**......*.** +.**.******.....*.****....**..*.*....*...*** +..*.......*.....**..*.*...*....*....***...* +...*..*...*..........*.....**.*.*.**....* +.......*............**.....**.**..**..*** +...***.*.*...........*.*........*...*.**.* +....*.................*..................** +..........................................* +#P 93 -27 +...................* +..........**......*.*....**.* +..*......*..*.....*.....*...*.......................* +.*.*....*..*..**..*...*....*...*.**...............** +**.......*.*..***.***.*........*...**.............** +.*...**.......**.*.....*..*..** +.**.******.....*.****....**..*.*....*.*............*** +..*.......*.....**..*.*...*....*....**.............*** +...*..*...*..........*.....**.*.*.** +.......*............**.....**.**..****..........*** +...***.*.*...........*.*........*.....*.........*** +....*.................*.............*..........* +....................................*....*....** +.....................................*...*..*..* +......................................*.*.** +........................................**..* +........................................* +........................................*.* +.........................................* +#P 93 6 +..........**.........*......* +..*......*..*.......**.....*.* +.*.*....*..*..**..*.*.....** +**.......*.*..***.*.*....*...*.* +.*...**.......**.**.**...**.**.* +.**.******.....*.*.*.***.....** +..*.......*.....**.*.*.*.***..* +...*..*...*.........*...*.**..** +.......*.....................*** +...***.*.*....................** +....* +#P 93 30 +..........**.........* +..*......*..*.......** +.*.*....*..*..**..*.* +**.......*.*..***.*.* +.*...**.......**.**.**...*.*.* +.**.******.....*.*.*.***..**.* +..*.......*.....**.*.*.*..*..*.** +...*..*...*.........*......*...*** +.......*...................*.*....*.* +...***.*.*..................*...***..* +....*...........................** +...................................* +................................**..* +.................................*..* +..................................* +#P 93 54 +..........**.........* +..*......*..*.......** +.*.*....*..*..**..*.* +**.......*.*..***.*.* +.*...**.......**.**.**...*.*.*................................**.* +.**.******.....*.*.*.***..**.*..........**......*.*....**....*...* +..*.......*.....**.*.*.*..*..*.**........*.....**.*....***......* +...*..*...*.........*......*...***....*....*..*.*....*...*..*.* +.......*...................*.*....*.***...*..***.**..**..**** +...***.*.*..................*...***...*....*..*.*....*...*..*.* +....*...........................**.......*.....**.*....***......* +...................................*....**......*.*....**....*...* +................................**..*.........................**.* +.................................*..* +..................................* +#P 165 -106 +..........**.........*.** +..*......*..*.......**.** +.*.*....*..*..**..*.*...*** +**.......*.*..***.*.*....* +.*...**.......**.**.**...** +.**.******.....*.*.*.***......................**..........* +..*.......*.....**.*.*.*.**.......***....................** +...*..*...*.........*............*..........**..*......*****.***.......*.* +.......*..................*....**....*.....*..........*........*.*...*..* +...***.*.*...............**....***...*.*..**....***...*.*..**....*.*.*..** +....*.....................*..........*......*...**....*.....*..*** +...........................**..*......*****.......*..........* +........................................**.........*** +.............................**..........* +#P 165 -82 +..........**.........*.** +..*......*..*.......**.** +.*.*....*..*..**..*.*...*** +**.......*.*..***.*.*....* +.*...**.......**.**.**...** +.**.******.....*.*.*.*** +..*.......*.....**.*.*.*.** +...*..*...*.........*...............* +.......*..................*....***..***.....* +...***.*.*...............**....**..*.*..*.** +....*.....................*......*.*..*.*...** +...........................**..*..*** +..................................* +.............................** +#P 165 -58 +..........**.........*.** +..*......*..*.......**.**..........* +.*.*....*..*..**..*.*...***......** +**.......*.*..***.*.*....*.......** +.*...**.......**.**.**...** +.**.******.....*.*.*.***..........*** +..*.......*.....**.*.*.*.**.......*** +...*..*...*.........* +.......*..................*....*** +...***.*.*...............**....*** +....*.....................* +...........................**..* +. +.............................** +#P 165 -34 +..........**.........*.** +..*......*..*.......**.** +.*.*....*..*..**..*.*...*** +**.......*.*..***.*.*....* +.*...**.......**.**.**...** +.**.******.....*.*.*.***..................* +..*.......*.....**.*.*.*.**..............** +...*..*...*.........*.................**.* +.......*..................*..........*...* +...***.*.*...............**..........*..* +....*.....................*..**.*..* +............................*****..*.*** +..............................*.*...** +............................*...**..** +...........................*...*....* +............................*....*.*** +.............................**.*...** +#P 165 -10 +..........**.........*.** +..*......*..*.......**.** +.*.*....*..*..**..*.*...*** +**.......*.*..***.*.*....* +.*...**.......**.**.**...**..........** +.**.******.....*.*.*.***.............** +..*.......*.....**.*.*.*.**.........*.**.* +...*..*...*.........*..............***.**.* +.......*..................*........*...**.* +...***.*.*...............**......*..* +....*.....................*..**.*...**..*** +............................**.**....*..* +.............................*.**...*....**** +............................**...*........* +.............................*...*.*......** +..............................*............* +............................................* +#P 165 14 +..........**.........*.** +..*......*..*.......**.** +.*.*....*..*..**..*.*...*** +**.......*.*..***.*.*....* +.*...**.......**.**.**...**..........** +.**.******.....*.*.*.***.............** +..*.......*.....**.*.*.*.**.........*.** +...*..*...*.........*..............***.** +.......*..................*........*...*** +...***.*.*...............**......*..* +....*.....................*..**.*...**.*** +............................**.**....*.** +.............................*.**...*....** +............................**...* +.............................*...*.* +..............................* +#P 165 46 +..........** +..*......*..* +.*.*....*..*..** +**.......*.*..*** +.*...**.......**.* +.**.******.....*..* +..*.......*.....*.* +...*..*...*......**** +.......*...........*.* +...***.*.*.........*.* +....*.............* +..................** +..................*.* +...................* +#P 165 70 +..........** +..*......*..* +.*.*....*..*..** +**.......*.*..*** +.*...**.......**.* +.**.******.....*..* +..*.......*.....*.* +...*..*...*......**** +.......*...........*.* +...***.*.*.........*.* +....*..............* +....................* +....................*.* +.....................* +....................** +.....................*.* +......................* +#P 165 94 +..........**......................*.....................** +..*......*..*....................**.........*** +.*.*....*..*..**...............*****.......*..........**..* +**.......*.*..***.............*......*...**....*.....* +.*...**.......**.*............*.*..**....***...*.*..**....*** +.**.******.....*..*...........*.....*..........*......*...*** +..*.......*.....*.*..................**..*......***** +...*..*...*......***.*....****....................**.........*** +.......*...........**.*....*...........**..........*.........*** +...***.*.*..............**.* +....*.............**.*..**..................................** +..................**........................................** +....................**........................................* diff --git a/programs/demos/life2/lif/AQUA33W.lif b/programs/demos/life2/lif/AQUA33W.lif new file mode 100644 index 000000000..d55430ba1 --- /dev/null +++ b/programs/demos/life2/lif/AQUA33W.lif @@ -0,0 +1,1656 @@ +#Life 1.05 +#D c/3 wide spaceships +#D By Hartmut Holzwart and David Bell. +#D +#D Wide c/3 are used in SAWTOOT5. +#N +#P -134 -58 +....* +...*.* +...** +...* +....*.* +....*.* +..**** +.*.* +.*.* +* +*.* +* +..* +** +** +..* +#P -118 -72 +...........* +.........** +.........** +. +..........*** +..........*** +. +.......*** +.......** +. +........*** +........*** +. +.....*** +.....** +. +......*** +......*** +. +...*** +...** +. +....*** +....*** +. +.*** +.*.* +. +*** +** +..* +** +.*.* +..* +#P -158 -36 +...........................* +.........................** +.........................** +. +..........................*** +..........................*** +. +.......................*** +.......................** +..................*.....................* +................**......***...........** +................**......***...........** +. +.................***.***...............*** +.................***.***...............*** +. +..............***.......***.........*** +..............**........***.........** +. +...............***.....**............*** +...............***.....***...........*** +. +............***...........***.....*** +............**............***.....** +. +.............***.........**........*** +.............***.........***.......*** +. +..........***...............***.*** +..........**................***.*** +.....* +...**......***.............**......*** +...**......***.............**......*** +.............................* +....***.***.......................** +....***.***.......................*** +. +.***.......***.......................*** +.*.*.......***.......................*** +. +***.......**........................** +**........***.......................*** +..*........................* +**...........***.........**............*** +.*.*.........***.........**............*** +..* +............**............***.........** +............***...........***.........** +........................................* +...............***.....*** +...............***.....** +. +..............**........*** +..............***.......*** +. +.................***.*** +.................***.*** +. +................**......*** +................**......*** +..................* +.......................** +.......................*** +. +..........................*** +..........................*** +. +.........................** +.........................** +...........................* +#P -138 41 +....* +..** +..** +....* +..* +.*** +.* +** +..* +.*.* +.*.* +.* +...* +.** +.** +...* +#P -94 -75 +....* +...*.* +..** +....* +..** +..*** +. +..*..* +..*.* +..* +...* +...*.* +....* +...** +. +..*..* +.* +**..* +..**** +..*.** +..*.* +..*** +..** +...*.** +......* +......* +....*** +..** +..**..* +.....* +...** +...*** +#P -105 -36 +.....* +....* +...** +.....*.* +...***..* +...**..* +. +..*** +.*..* +***.** +...*** +. +...* +...*** +. +. +...**** +..*..** +..*.* +..*.* +. +.** +.** +....** +..*.** +..*.* +..*** +. +...* +..* +.*...* +..*..* +....* +..*** +...* +. +....* +..** +..*** +..**.** +. +..** +...*.* +...*.* +. +...* +..** +...* +...*** +....* +......* +....** +....** +. +..** +..*.* +..** +..* +...* +...*.* +....* +...** +. +..*..* +..* +.* +.*** +. +.* +..** +......* +..*.**** +..*.**** +..*..* +...*** +.** +#P -104 40 +..*** +.*..* +.*.**** +.*.**** +.....* +.** +* +. +*** +**.*.* +..** +......* +.....* +..**.* +**.* +** +..*.** +.**.** +.** +.**.** +....* +.*** +.**..* +.*..* +..* +...**** +....* +....** +.....* +......* +#P -86 -36 +.....* +....* +...** +.....*.* +...***..* +...**..* +. +..*** +.*..* +***.** +...*** +. +...* +...*** +. +. +...**** +..*..** +..*.* +..*.* +. +.** +.** +....** +..*.** +..*.* +..*** +. +...* +..* +.*...* +..*..* +....* +..*** +...* +. +....* +..** +..*** +..**.** +. +..** +...*.* +...*.* +. +...* +..** +.....** +...*.** +...*.* +...*** +. +....* +...* +..*...* +...*..* +.....* +...*** +....* +. +.....* +...** +...*** +...**.** +. +...** +....*.* +....*.* +. +....* +...** +......** +....*.** +....*.* +....*** +#P -83 40 +..* +.* +*...* +.*..* +...* +.*** +..* +. +...* +.** +.*** +.**.** +. +.** +..*.* +..*.* +. +..* +.** +....** +..*.** +..*.* +..*** +. +...* +..* +.*...* +..*..* +....* +..*** +...* +. +....* +..** +..*** +.....*.* +...***..* +...** +......* +...**..* +....*..* +.....* +#P -85 -94 +..* +.*.* +.*.*......................*.*...* +.*.......................**.*.*..* +...........***........*.........* +**.........**..*.**...*..**** +.*.*.........****..*.*..**....** +.**........*..*...***.....*** +..*.......*....*..**..**..*..* +...*..*...*....*..***.*.*....** +.......*.**....*..****.....*........................**...*.* +....**...**....*..****.....*...........*............***.*..* +....*.*...*....*..***.*.*....**.......*..........**....**.* +...**.....*....*..**..**..*..*.......**..*.**...*******.** +....*.*....*..*...***.....***............**..*.*........* +.....*.......****..*.*..**....**.....**.*...*...*....** +...........**..*.**...*..****........****....*......**....* +...........***........*.........*...*..**....*..**....**.* +.........................**.*.*..*..*.***....*..***...** +..........................*.*...*...*.***....*..***...** +....................................*..**....*..**....**.* +.....................................****....*......**....* +.....................................**.*...*...*....** +.........................................**..*.*........* +.....................................**..*.**...*******.** +......................................*..........**....**.* +.......................................*............***.*..* +....................................................**...*.* +#P -61 -62 +...* +..*.* +.** +..* +.*.* +.* +* +*.* +*.* +.**** +...*.* +...*.* +..* +..*** +* +*** +.***.* +...* +...* +...** +.........***...........** +...**......*.**..**.........* +...*..*...*.....*....**..*..***.......* +...*.**.*.*...**....*......*.*..*.*.** +....***..*...*.**.*.*....**..*.*..*...** +....**....*.....**...*...***..*** +......*....**.*...............* +....** +.....*.* +......* +#P -62 -24 +.......* +......*.* +.....** +.......*....**.*...............* +.....**....*.....**...*...***..*** +.....***..*...*.**.*.*....**..*.*..*...** +....*.**.*.*...**....*......*.*..*.*.** +....*..*...*.....*....**..*..***.......* +....**......*.**..**.........* +..........***...........** +....** +....* +....* +..***.* +.*** +. +.*.*** +*..* +.*.* +..*..** +.....** +....** +...*.* +..* +...*.* +....** +.....** +..*..** +.*.* +*..* +.*.*** +. +.*** +..***.* +....* +....* +....** +..........***...........** +....**......*.**..**.........* +....*..*...*.....*....**..*..***.......* +....*.**.*.*...**....*......*.*..*.*.** +.....***..*...*.**.*.*....**..*.*..*...** +.....**....*.....**...*...***..*** +.......*....**.*...............* +.....** +......*.* +.......* +#P -67 36 +.....* +....* +...** +.....*.* +...***..* +...**..* +. +..*** +.*..* +***.** +...*** +. +...* +...*** +. +. +...**** +..*..** +..*.* +..*.* +. +.** +.** +....** +..*.** +..*.* +..*** +. +...* +..* +.*...* +..*..* +....* +..*** +...* +. +....* +..** +..*** +.....*.* +...***..* +...** +......* +...**..* +....*..* +.....* +#P -52 35 +..* +.*.* +** +..* +** +*** +. +*..* +*.* +* +.* +.*.* +..** +...**.* +....*** +. +. +....**** +...*..** +...*.* +...*.* +. +..** +..** +.....** +...*.** +...*.* +...*** +. +....* +...* +..*...* +...*..* +.....* +...*** +....* +. +.....* +...** +...*** +......*.* +....***..* +....** +.......* +....**..* +.....*..* +......* +#P -36 35 +...* +..*.* +..** +..* +...*.* +...*.* +.**** +*.* +*.* +* +.* +.*.* +..** +...**.* +....*** +. +. +....**** +...*..** +...*.* +...*.* +. +..** +..** +.....** +...*.** +...*.* +...*** +. +....* +...* +..*...* +...*..* +.....* +...*** +....* +. +.....* +...** +...*** +......*.* +....***..* +....** +.......* +....**..* +.....*..* +......* +#P -18 37 +.....* +....*.* +....*.* +....* +...** +...*.* +. +..*** +..** +. +....*** +...*.** +..* +..* +.*** +* +*..* +*..** +...* +..** +...** +. +. +...**.* +.**.* +.*** +. +.*.* +* +*...* +.*..* +...* +.*** +..* +. +...* +.** +.*** +....*.* +..***..* +..** +.....* +..**..* +...*..* +....* +#P -2 37 +.....* +....*.* +....*.* +....* +...** +...*.* +. +..*** +..** +. +....*** +...*.** +..* +..* +.*** +* +*..* +*..** +...* +..** +...** +. +...** +..** +...* +*..** +*..* +* +.*** +..* +..* +...*.** +....*** +. +..** +..*** +. +...*.* +...** +....* +....*.* +....*.* +.....* +#P -6 -91 +......* +.....* +....** +....* +...**** +..* +.*..* +.**..* +.*** +....* +.**.** +.** +.**.** +..*.** +** +**.* +..**.* +.....* +......* +..** +**.*.* +*** +. +* +.** +.....* +.*.**** +.*.**** +.*..* +..*** +** +..*** +.*..* +.*.**** +.*.**** +.....* +.** +* +. +*** +**.*.* +..** +......* +.....* +..**.* +**.* +** +..*.** +.**.** +.** +.**.** +....* +.*** +.**..* +.*..* +..* +...**** +....* +....** +.....* +......* +#P -6 -17 +......* +.....*.* +....** +......* +....** +....*** +....*** +......*.* +..**...** +..***.** +......** +..*..* +...*** +.....* +...*...* +..*...* +...*...**.* +....*****.* +......* +..........* +.......* +......*.*** +.....** +.....* +....**** +........* +.***..* +.**...*** +.....* +*** +**.**.* +..*.*..* +.....* +..**** +.*..** +..**.* +..*** +.....* +.....*.* +#P 18 -65 +....* +...*.* +..** +...* +..*.* +..* +.* +.*.* +.*.* +..**** +....*.* +....*.* +...* +...*** +.* +.*** +..***.* +....* +....* +....** +. +....** +....* +....* +..***.* +.*** +. +.*.*** +*..* +.*.* +..*..** +.....** +....** +...*.* +..* +...*.* +....** +.....** +..*..** +.*.* +*..* +.*.*** +. +.*** +..***.* +....* +....* +....** +#P 18 -16 +....** +....* +....* +..***.* +.*** +. +.*.*** +*..* +.*.* +..*..** +.....** +....** +...*.* +...* +..*..* +..***.* +.*..* +..***** +..*..* +...**** +.** +...**** +..*..* +..***** +.*..* +..***.* +..*..* +...* +...*.* +....** +.....** +..*..** +.*.* +*..* +.*.*** +. +.*** +..***.* +....* +....* +....** +. +....** +....* +....* +..***.* +.*** +.* +...*** +...* +....*.* +....*.* +..**** +.*.* +.*.* +.* +..* +..*.* +...* +..** +...*.* +....* +#P 43 -67 +..** +.*..*...*** +**.**** +.*..*** +.**.*....* +..*..***** +...**....** +....*****.* +. +....*** +..**.*.* +..*** +.......* +...***.* +..*.**.* +..** +.**.* +. +..* +..* +.*..* +..** +..*.* +. +**.* +.** +..* +..** +..** +. +.*** +*..* +.** +....*** +.*.** +.*....* +.*.*** +....*.* +.** +*..*.* +.*** +...* +..** +..**.** +. +...* +...* +..*..* +...** +...*.* +. +..** +.** +..*** +...*.* +..* +...*.* +....**** +.....*..* +.....*..* +.....* +......*** +. +......*** +...*..** +..*.* +.*..* +#P 43 0 +..*.* +...*..** +......*** +. +......*** +.....* +.....*..* +.....*..* +....**** +...*.* +..* +...*.* +..*** +.** +..** +. +...*.* +...** +..*..* +...* +...* +. +..**.** +..** +...* +.*** +*..*.* +.** +....*.* +.*.*** +.*....* +.*.** +....*** +.** +*..* +.*** +. +..** +..** +..* +.** +**.* +. +..*.* +..** +.*..* +..* +..* +. +.**.* +..** +..*.**.* +...***.* +.......* +..*** +..**.*.* +....*** +. +....*****.* +...**....** +..*..***** +.**.*....* +.*..*** +**.**** +.*..*...*** +..** +#P 71 -66 +.......* +......*.* +......*.* +......* +.....** +.....*.* +. +....*** +....** +. +......*** +.....*.** +....* +....* +...*** +..* +..*..* +..*..** +.....* +....** +.....** +..*.....* +..*..*.* +.*.*..* +*** +....***.* +...***..* +.** +.*** +. +.*.* +.*.* +.*..** +..*.** +..* +....* +..*** +..*** +......** +......*** +. +......*** +...*..* +..*.*.* +.*..*.*.* +..*...* +...** +..**...* +.***** +.*...*** +...* +...** +. +..*..* +..*..** +.**...* +.*....* +.**.*** +..*...* +..**...** +...*.***.....* +....**.*....** +......*...*.* +......****..* +............* +............* +#P 71 0 +............* +......****..* +......*...*.* +....**.*....** +...*.***.....* +..**...** +..*...* +.**.*** +.*....* +.**...* +..*..** +..*..* +. +...** +...* +.*...*** +.***** +..**...* +...** +..*...* +.*..*.*.* +..*.*.* +...*..* +......*** +. +......*** +......** +..*** +..*** +....* +..* +..*.** +.*..** +.*.* +.*.* +. +.*** +.** +...***..* +....***.* +*** +.*.*..* +..*..*.* +..*.....* +.....** +....** +.....* +..*..** +..*..* +..* +...*** +....* +....* +.....*.** +......*** +. +....** +....*** +. +.....*.* +.....** +......* +......*.* +......*.* +.......* +#P 105 -101 +...* +..*.* +.** +...* +.** +.*** +. +..*.* +..*** +. +.....*** +.....*** +. +....** +....** +......* +. +...*** +...*.** +......* +..***.* +.*....* +.**.*** +**.*..* +....** +.*..** +.*..* +.*.** +..*.**.* +.....*.* +. +.....** +....*..* +...*** +.......* +......* +..* +.**.* +.*..** +**...* +*....* +**.*** +.*...* +.**...** +..*.***.....* +...**.*....** +.....*...*.* +.....****..* +...........* +...........* +#P 105 -51 +...........* +.....****..* +.....*...*.* +...**.*....** +..*.***.....* +.**...** +.*...* +**.*** +*....* +**...* +.*..** +.**.* +..* +......* +.......* +...*** +....*..* +.....** +. +.....*.* +..*.**.* +.*.** +.*..* +.*..** +...** +**..** +.** +..**** +......* +..*** +**....* +**..*.* +*..* +**.*** +....** +..*...** +..*.**** +..* +...* +....*** +...**.* +..* +.*..* +..*.*** +. +..*** +...***.* +.....* +.....* +.....** +#P 105 0 +.....** +.....* +.....* +...***.* +..*** +. +..*.*** +.*..* +..* +...**.* +....*** +...* +..* +..*.**** +..*...** +....** +**.*** +*..* +**..*.* +**....* +..*** +......* +..**** +.** +**..** +...** +.*..** +.*..* +.*.** +..*.**.* +.....*.* +. +.....** +....*..* +...*** +.......* +......* +..* +.**.* +.*..** +**...* +*....* +**.*** +.*...* +.**...** +..*.***.....* +...**.*....** +.....*...*.* +.....****..* +...........* +...........* +#P 105 51 +...........* +.....****..* +.....*...*.* +...**.*....** +..*.***.....* +.**...** +.*...* +**.*** +*....* +**...* +.*..** +.**.* +..* +......* +.......* +...*** +....*..* +.....** +. +.....*.* +..*.**.* +.*.** +.*..* +.*..** +....** +**.*..* +.**.*** +.*....* +..***.* +......* +...*.** +...*** +. +......* +....** +....** +. +.....*** +.....*** +. +..*** +..*.* +. +.*** +.** +...* +.** +..*.* +...* +#P 135 -82 +....* +...*.* +..** +....* +..** +..*** +. +..*.* +.*..* +..* +...** +. +.....* +..* +.*.*.** +**......* +.*..*..* +.** +..* +...*.** +......* +. +...*** +...** +.....* +..*..* +..* +.*.** +*** +. +...*** +...*** +..** +. +...*.* +...*.* +..*.***.* +..*.* +.***.*..* +. +....** +....*** +......* +#P 144 -67 +......* +.....*.* +....** +.....* +....*.* +....* +...* +...*.* +...*.* +....*** +.....*.* +....*..* +...** +. +..*** +.*..* +***.** +...*** +. +...* +...*** +. +. +...**** +..*..** +..*.* +..*.* +#P 138 -39 +.*.***.** +.*..* +.***..*.* +......*.* +**.*.** +.*...*** +..*....* +.....*** +..***.*** +.*..*.*..* +.**...* +..*.....* +..****** +...*..**** +.....**....* +.....**...* +......* +.........* +......***** +......*..** +...* +.**.*.*.* +.***** +.......*.* +***....*..* +*..........* +.*..***..** +.*..****.** +.....**.** +..**..*.*.* +..*.*.*...* +.**....* +..*.*..*..*....* +...*.....*....** +.........****.* +..............* +..............* +...........*..* +...........*.**..* +...........*.**..* +...........*..* +..............* +..............* +.........****.* +...*.....*....** +..*.*..*..*....* +.**....* +..*.*.*...* +..**..*.*.* +.....**.** +.*..****.** +.*..***..** +*..........* +***....*..* +.......*.* +.***** +.**.*.*.* +...* +......*..** +......***** +.........* +......* +.....**...* +.....**....* +...*..**** +..****** +..*.....* +.**...* +.*..*.*..* +..***.*** +.....*** +..*....* +.*...*** +**.*.** +......*.* +.***..*.* +.*..* +.*.***.** +#P 135 39 +......* +....*** +....** +. +.***.*..* +..*.* +..*.***.* +...*.* +...*.* +. +..** +...*** +...*** +. +*** +.*.** +..* +..*..* +.....* +...** +...*** +. +......* +...*.** +..* +.** +.*..*..* +**......* +.*.*.** +..* +.....* +. +...** +..* +.*..* +..*.* +. +..*** +..** +....* +..** +...*.* +....* +#P 144 40 +..*.* +..*.* +..*..** +...**** +. +. +...*** +...* +. +...*** +***.** +.*..* +..*** +. +...** +....*..* +.....*.* +....*** +...*.* +...*.* +...* +....* +....*.* +.....* +....** +.....*.* +......* diff --git a/programs/demos/life2/lif/AQUA40.lif b/programs/demos/life2/lif/AQUA40.lif new file mode 100644 index 000000000..f15a320c1 --- /dev/null +++ b/programs/demos/life2/lif/AQUA40.lif @@ -0,0 +1,259 @@ +#Life 1.05 +#D 2c/5 spaceships +#D By Hartmut Holzwart, Dean Hickerson, and Tim Coe. +#N +#P -32 -37 +......*.* +...*....* +..***....* +.*.* +**..**....* +.**..***** +. +. +. +.**..***** +**..**....* +.*.* +..***....* +...*....* +......*.* +#P -22 -22 +.* +.*.* +*..* +.*.* +.* +#P -32 -17 +......*.* +...*....* +..***....* +.*.* +**..**....* +.**..***** +. +. +. +.**..***** +**..**....* +.*.* +..***....* +...*....* +......*.* +#P -22 -2 +.* +.*.* +*..*..*** +.*.*..** +.* +#P -32 3 +......*.* +...*....* +..***....* +.*.* +**..**....* +.**..***** +. +. +. +.**..***** +**..**....* +.*.* +..***....* +...*....* +......*.* +#P -22 18 +.*....** +.*.*..** +*..* +.*.*..** +.*....** +#P -32 23 +......*.* +...*....* +..***....* +.*.* +**..**....* +.**..***** +. +. +. +.**..***** +**..**....* +.*.* +..***....* +...*....* +......*.* +#P 0 -43 +......*.* +...*....* +..***....* +.*.* +**..**....* +.**..***** +. +. +. +.**..***** +**..**....* +.*.* +..***....* +...*....* +......*.* +#P 0 -20 +.............................* +......*.*..................**.* +...*....*.................* +..***....*.........**....* +.*.*..............***...**.*....**** +**..**....*.............**.***...* +.**..*****...*.**.****.......**.* +.............*.*...*.*.**..**..* +............*....*.* +.............*.*...*.*.**..**..* +.**..*****...*.**.****.......**.* +**..**....*.............**.***...* +.*.*..............***...**.*....**** +..***....*.........**....* +...*....*.................* +......*.*..................**.* +.............................* +#P 0 4 +.......................** +......*.*.........***.***.....*......** +...*....*.........*..*.*.....***...****** +..***....*........****.**....***..*...*** +.*.*...................*..*....** +**..**....*.........*..*..**...**.*.** +.**..*****...*.*..*.*..*.*..*......**..* +.............*.**.*..*.*.**.****....*.*** +............*.....*...**.................* +.............*.**.*..*.*.**.****....*.*** +.**..*****...*.*..*.*..*.*..*......**..* +**..**....*.........*..*..**...**.*.** +.*.*...................*..*....** +..***....*........****.**....***..*...*** +...*....*.........*..*.*.....***...****** +......*.*.........***.***.....*......** +.......................** +#P 0 28 +.............................*..* +......*.*....................*..* +...*....*...................*....* +..***....*.................*.** +.*.*.....................*..** +**..**....*.......*...***....* +.**..*****...*.*...*.*......* +.............*.**.**.*..**** +............* +.............*.**.**.*..**** +.**..*****...*.*...*.*......* +**..**....*.......*...***....* +.*.*.....................*..** +..***....*.................*.** +...*....*...................*....* +......*.*....................*..* +.............................*..* +#P 54 -45 +..**......*..* +.*****....*..* +*....*.**** +.**.*..** +..*.*...** +...**.*.*.**..* +....****......* +......*.....* +........**.* +........** +........**.* +......*.....* +....****......* +...**.*.*.**..* +..*.*...** +.**.*..** +*....*.**** +.*****....*..* +..**......*..* +#P 68 -13 +.* +** +.* +#P 54 -21 +..**......*..* +.*****....*..* +*....*.**** +.**.*..** +..*.*...** +...**.*.*.**..* +....****......* +......*.....* +........**.* +........** +........**.* +......*.....* +....****......* +...**.*.*.**..* +..*.*...** +.**.*..** +*....*.**** +.*****....*..* +..**......*..* +#P 53 4 +.............*..........*............*..* +.......***...*...*...*...*...........*..* +..**...**.**...**..***..............*....* +.******...*....**..................*.** +*...*..**...........***..*.......*..** +.**..**..*....*...*..**.**....***....* +..***.*........*.**....**..*.*......* +....*.****....*..*......****.*..**** +...............*** +....*.****....*..*......****.*..**** +..***.*........*.**....**..*.*......* +.**..**..*....*...*..**.**....***....* +*...*..**...........***..*.......*..** +.******...*....**..................*.** +..**...**.**...**..***..............*....* +.......***...*...*...*...*...........*..* +.............*..........*............*..* +#P 56 27 +...* +.*.*....* +**.***...*....* +.**.*........*.* +......**...*** +.....*...* +......**....**** +......**.****.** +. +. +......**.****.** +......**....**** +.....*...* +......**...*** +.**.*........*.* +**.***...*....* +.*.*....* +...* +#P 30 -46 +......*..** +.....* +.....*....* +.....*.** +..**.*** +.****** +*....** +.**.*** +..**......* +....******* +. +....******* +..**......* +.**.*** +*....** +.****** +..**.*** +.....*.** +.....*....* +.....* +......*..** diff --git a/programs/demos/life2/lif/AQUA50.lif b/programs/demos/life2/lif/AQUA50.lif new file mode 100644 index 000000000..2152df5f6 --- /dev/null +++ b/programs/demos/life2/lif/AQUA50.lif @@ -0,0 +1,2452 @@ +#Life 1.05 +#D p2 c/2 spaceships +#D By Hartmut Holzwart and Dean Hickerson. +#D +#D These advance 1 cell every 2 generations. +#D It is particularly easy and fun to mix- +#D and-match these pieces. +#D +#D c/2 p2 spaceships are used in LINEPUF, +#D MAX. See also BARGE2. +#N +#P -232 -81 +............* +.........*.*.* +........*..* +.......** +......*....*..* +.....*****.*.* +..**...........** +.*...***.***......*.* +*...*....***.**.**..* +*.....*...*......* +***...**** +. +***...**** +*.....*...*......* +*...*....***.**.**..* +.*...***.***......*.* +..**...........** +.....*****.*.* +......*....*..* +.......** +........*.* +#P -232 -59 +........*.* +.......**........* +......*....*..*.**..* +.....*****.*.*....*.* +..**...........** +.*...***.*** +*...*....***.** +*.....*...* +***...**** +. +***...**** +*.....*...*.........*.* +*...*....***.*.....*..* +.*...***.***......** +..**...........*.* +.....*****.*.*.*...*** +......*....*....** +.......**....**.*...* +........*.*..***.**.* +#P -232 -39 +........*.*..***.**.* +.......**....**.*...* +......*....*....** +.....*****.*.*.*...*** +..**...........*.* +.*...***.***......** +*...*....***.*.....*..* +*.....*...*.........*.* +***...**** +. +***...**** +*.....*...* +*...*....***.** +.*...***.*** +..**...........** +.....*****.*.*....*.* +......*....*..*.**..* +.......**........* +........*.* +#P -232 -19 +........*.* +.......** +......*....* +.....*****.*.*..*.* +..**...........*.** +.*...***.***...*** +*...*....***.*...* +*.....*...*...** +***...****.....*.* +. +***...****.....*.* +*.....*...*...** +*...*....***.*...* +.*...***.***...*** +..**...........*.** +.....*****.*.*..*.* +......*....* +.......** +........*.* +#P -232 1 +........*.* +.......** +......*....* +.....*****.*.* +..**...........** +.*...***.***...***** +*...*....***.*...* +*.....*...*...** +***...****.....*.* +. +***...****.....*.* +*.....*...*...** +*...*....***.*...* +.*...***.***...***** +..**...........** +.....*****.*.* +......*....* +.......** +........*.* +#P -232 21 +........*.* +.......**...........* +......*....*..*..**** +.....*****.*.*...** +..**...........* +.*...***.***....*****.* +*...*....***.**..*....* +*.....*...*.......** +***...****.........*.* +. +***...****.........*.* +*.....*...*.......** +*...*....***.**..*....* +.*...***.***....*****.* +..**...........* +.....*****.*.*...** +......*....*..*..**** +.......**...........* +........*.* +#P -232 41 +........*.* +.......** +......*....*..* +.....*****.*.* +..**...........** +.*...***.***......*.* +*...*....***.**.**..* +*.....*...*......* +***...**** +. +***...**** +*.....*...*.........* +*...*....***.**..**** +.*...***.***.....** +..**...........* +.....*****.*.*..*****.* +......*....*..*..*....* +.......**.........** +........*.*........*.* +#P -232 61 +........*.*........*.* +.......**.........** +......*....*..*..*....* +.....*****.*.*..*****.* +..**...........* +.*...***.***.....** +*...*....***.**..**** +*.....*...*.........* +***...**** +. +***...**** +*.....*...*......* +*...*....***.**.**..* +.*...***.***......*.* +..**...........** +.....*****.*.* +......*....*..* +.......** +........*..* +.........*.*.* +............* +#P -197 -81 +............*............* +.........*.*.*........**.* +........*..*..........* +.......**........*....* +......*....*..*.**..* +.....*****.*.*....*.*..* +..**...........**....*.* +.*...***.*** +*...*....***.** +*.....*...* +***...**** +. +***...**** +*.....*...* +*...*....***.** +.*...***.*** +..**...........** +.....*****.*.*....*.* +......*....*..*.**..* +.......**........* +........*..* +.........*.*.* +............* +#P -171 -82 +*.* +..* +. +.* +.* +.**.* +....*.* +.......* +.....* +....*** +...** +..** +...*.* +. +...***** +...* +...***.* +....* +.....*** +.....* +.......*** +.......* +.........*** +.........* +...........*** +...........* +............**......* +..................*** +............*.*..** +...........**....* +............**.....* +.............****** +..............*.* +.................****.* +.................*...** +...................** +...................**** +......................* +#P -197 -51 +............* +.........*.*.* +........*..* +.......**........* +......*....*..*.**..* +.....*****.*.*....*.* +..**...........** +.*...***.*** +*...*....***.** +*.....*...* +***...**** +. +***...**** +*.....*...* +*...*....***.** +.*...***.*** +..**...........**........* +.....*****.*.*....*.*...*.* +......*....*..*.**..*.*.* +.......**........* +........*..*........** +.........*.*.*......**.* +............*.........* +....................* +....................*.* +...................* +....................*.* +....................* +............*.........* +.........*.*.*......**.* +........*..*........** +.......**........* +......*....*..*.**..*.*.* +.....*****.*.*....*.*...*.* +..**...........**........* +.*...***.*** +*...*....***.** +*.....*...* +***...**** +. +***...**** +*.....*...* +*...*....***.** +.*...***.*** +..**...........** +.....*****.*.*....*.* +......*....*..*.**..* +.......**........* +........*..* +.........*.*.* +............* +#P -170 30 +...........** +..........* +.........**..* +........*....*.*...*.* +.......*****......*..* +......*......**..** +.....*******.....*..* +..**........**.***..* +.*...*****......***...** +*...*.....*.......* +*.....***.......*...** +***...**........*.* +........*......* +***...**........*.* +*.....***.......*...** +*...*.....*.......* +.*...*****......***...** +..**........**.***..* +.....*******.....*..* +......*......**..** +.......*****......*..* +........*....*.*...*.* +.........**..* +..........* +...........** +#P -197 7 +..............................................* +.................*.*...........*.*..........*** +................*..*..........*..*.........** +...............**............**............* +...........*.............*.............*.....* +.........**********....**********....********........* +........*...*.*....*..*...*.*....*..*...*.*.......**.* +.......**.*...**.*...**.*...**.*...**.*...**.*....* +......*.....*..*...*.*....*..*...*.*....*..*..*...* +.....*******....**********....**********....*...* +..**..............*.............*............*...*** +.*...***.*............**............**........** +*...*...**.............*..*..........*..*........*****.* +*.....***...............*.*...........*.*.........*....* +***...***..........................................** +....................................................*..* +***...***............................................*.* +*.....***.....*.* +*...*...**.*.*.** +.*...***.*.*....** +..**......*..***.* +.....***.***** +......*.....* +.......** +........*.* +. +........*.* +.......** +......*.....* +.....***.***** +..**......*..***.* +.*...***.*.*....** +*...*...**.*.*.** +*.....***.....*.* +***...*** +. +***...*** +*.....***.....*.* +*...*...**.*.*.** +.*...***.*.*....** +..**......*..***.* +.....***.***** +......*.....* +.......** +........*.* +. +........*.* +.......** +......*.....* +.....***.***** +..**......*..***.* +.*...***.*.*....** +*...*...**.*.*.** +*.....***.....*.* +***...***............................................*.* +....................................................*..* +***...***..........................................** +*.....***...............*.*...........*.*.........*....* +*...*...**.............*..*..........*..*........*****.* +.*...***.*............**............**........** +..**..............*.............*............*...*** +.....*******....**********....**********....*...* +......*.....*..*...*.*....*..*...*.*....*..*..*...* +.......**.*...**.*...**.*...**.*...**.*...**.*....* +........*...*.*....*..*...*.*....*..*...*.*.......**.* +.........**********....**********....********........* +...........*.............*.............*.....* +...............**............**............* +................*..*..........*..*.........** +.................*.*...........*.*..........*** +..............................................* +#P -139 -97 +..........................*.* +.........................*..* +........................** +.......................*....* +......................*****.* +...................** +..................*...*** +.................*...* +.................*.....* +.................***...* +..................*....**.* +..................*.......* +.................* +................*** +...............* +..............*** +.............* +............*** +...........* +..........*** +.........* +........*** +.......*....** +......***....*..* +.....*........*.* +....*** +...* +..*** +.*...* +.*.* +*....*...................* +.****.................**.* +.*.......*............* +***...****............* +*.....***...........* +*...*...*........**.* +.*...**..........* +..**....*........*.** +.....*** +......*........*.* +.......***....*..* +........*....** +.........*** +..........* +...........*** +............* +.............*** +..............* +...............*.......* +...............*....**.* +..............***...* +..............*.....* +..............*...* +...............*...*** +................** +...................*****.* +....................*....* +.....................** +......................*..* +.......................*.* +#P -137 -25 +........* +.....**** +.....*** +...*...* +...*** +..*....* +.******...*.* +**.......***.* +.*...****.* +...**...** +...*.* +..***...****.* +..*.....*...** +..*...*....** +...*...***.** +....**.......** +.......******.* +........* +.........** +..........*..* +...........*.* +#P -127 -5 +.....* +......* +....* +...*** +..** +.** +..*.* +.....* +..** +***.*** +*..* +*..**** +.* +..***.* +...*...* +....** +.....*..* +......*.* +#P -122 12 +.....* +......* +....* +...*** +..** +.** +..*.* +.....* +..** +***.*** +*..* +*..**** +.* +..***.*.......* +...*...*...**** +....**.....** +.....*...* +......*** +........** +........* +..........* +.......** +.....***.*** +.....*..* +.....*..**** +......* +.......***.* +........*...* +.........** +..........*...* +...........*** +.............** +.............* +...............* +............** +..........***.*** +..........*..* +..........*..**** +...........* +............***.* +.............*...* +..............** +...............*..* +................*.* +#P -197 88 +.................*.* +................*..*...............*.* +...............**.................*..* +...........*.....................** +.........**********....*.*......* +........*...*.*....*..*..*.....**** +.......**.*...**.*...**.......*....* +......*.....*..*...*.*........*..* +.....*******....*******.......*..* +..**..............*............* +.*...***.*............*** +*...*...**.............*..*..** +*.....***...............**..* +***...***................*.*.** +. +***...***................*.*.** +*.....***...............**..* +*...*...**.............*..*..** +.*...***.*............*** +..**..............*............* +.....*******....*******.......*..* +......*.....*..*...*.*........*..* +.......**.*...**.*...**.......*....* +........*...*.*....*..*..*.....**** +.........**********....*.*......* +...........*.....................** +...............**.................*..* +................*..*...............*.* +.................*.* +#P -149 88 +.................*.* +................*..*...............*.* +...............**.................*..* +...........*.....................** +.........**********....*.*......* +........*...*.*....*..*..*.....**** +.......**.*...**.*...**.......*....* +......*.....*..*...*.*........*..* +.....*******....*******.......*..* +..**..............*............* +.*...*****............*** +*...*.....*............*..*..** +*.....***...............**..* +***...**.................*.*.** +........* +***...**.................*.*.** +*.....***...............**..* +*...*.....*............*..*..** +.*...*****............*** +..**..............*............* +.....*******....*******.......*..* +......*.....*..*...*.*........*..* +.......**.*...**.*...**.......*....* +........*...*.*....*..*..*.....**** +.........**********....*.*......* +...........*.....................** +...............**.................*..* +................*..*...............*.* +.................*.* +#P -88 -96 +.........**.................* +........*...............**.**..* +.......**..*...........*.....*.* +......*....*..........**..** +.....*****...........* +..**.....**....*....***.**.* +.*...***..*..***...*.....* +*...*.....**.**...***....** +*.....*...*...*..*.....**...* +*..*..*.....***.***....*..** +.*.*..**.*..**.....*...*.* +.........*.....***.........*** +***............**.....***..*..* +**...............*....**...** +**...............*....**...** +***............**.....***..*..* +.........*.....***.........*** +.*.*..**.*..**.....*...*.* +*..*..*.....***.***....*..** +*.....*...*...*..*.....**...* +*...*.....**.**...***....** +.*...***..*..***...*.....* +..**.....**....*....***.**.* +.....*****...........* +......*....*..........**..** +.......**..*...........*.....*.* +........*...............**.**..* +.........**.................* +#P -88 -56 +.........**.................* +........*...............**.**..* +.......**..*...........*.....*.* +......*....*..........**..** +.....*****...........*.................* +..**.....**....*....***.**.*.....*.*.** +.*...***..*..***...*.....*....****.*.*.* +*...*.....**.**...***....**...**..* +*.....*...*...*..*.....**...*.....*** +*..*..*.....***.***....*..**......* +.*.*..**.*..**.....*...*.*........*.* +.........*.....***.........*** +***............**.....***..*..*..*** +**...............*....**...**....** +**...............*....**...**....** +***............**.....***..*..*..*** +.........*.....***.........*** +.*.*..**.*..**.....*...*.*........*.* +*..*..*.....***.***....*..**......* +*.....*...*...*..*.....**...*.....*** +*...*.....**.**...***....**...**..* +.*...***..*..***...*.....*....****.*.*.* +..**.....**....*....***.**.*.....*.*.** +.....*****...........*.................* +......*....*..........**..** +.......**..*...........*.....*.* +........*...............**.**..* +.........**.................* +#P -97 -15 +.........*.* +........*..* +.......** +......*....* +.....*****.* +..** +.*...*** +*...* +*.....* +***...* +.*....**.* +.**......* +.*.* +.**...** +..**** +.......*** +....*.* +...*****.* +..**......* +.**....** +..*.*...*..* +.........*.* +..** +..*..* +...*...** +...***** +#P -94 11 +.....*** +..**....* +.*...** +*...*...* +*.....*** +***...**** +.*.......* +.** +.*.* +.**...** +..**** +#P -93 22 +......*** +...*.* +..*****.* +.**......* +**....** +.*.*...*..* +........*.* +.** +.*..* +..*...** +..***** +#P -91 33 +.....*** +..**....* +.*...** +*...*...* +*.....*** +***...**** +.*.......* +.** +.*.* +.**...** +..**** +#P -90 44 +......*** +...*.* +..*****.* +.**......* +**....** +.*.*...*..* +........*.* +.** +.*..* +..*...** +..***** +#P -88 55 +.....*** +..**....* +.*...** +*...*...* +*.....*** +***...**** +.*.......* +.**** +*....* +.*.* +.*...* +..*** +...* +....*** +#P -83 69 +*..........* +.*.......**.* +.*.......**...* +***...**...**.* +*.....***.*.** +*...*....*.** +.*...**.*.* +..**...**.* +.....**.......* +.....**.....**.* +.....*......**...* +...***...**...**.* +...*.....***.*.** +...*...*....*.** +....*...**.*.* +.....**...**.* +........**.......* +........**.....**.* +........*......**...* +......***...**...**.* +......*.....***.*.** +......*...*....*.** +.......*...**.*.* +........**...**.* +...........** +...........**.....* +...........*...**.* +.........***...* +.........*.....* +.........*...* +..........*...*** +...........** +..............*****.* +...............*....* +................** +.................*..* +..................*.* +#P -58 -13 +...........* +........**** +........*** +......*...* +......*** +...*.*....* +..******** +.** +***...**** +.*.....*..* +..*.....* +..*.....** +.***...**.* +.*.....*..* +.*...* +..*...** +...** +......**....* +...**....**** +..*...**.** +.*...* +.*.....**** +.*.....* +..**....** +. +..*.*...*..* +.**....**** +..**....* +...***** +....*.* +......*....*.* +....*.*...*..* +...*****.** +..** +.***...**** +..*.....*..* +...*.....* +...*.....** +..***...**.* +..*.....*..* +..*...* +...*...** +....** +.......**....* +....**....**** +...*...**.** +..*...* +..*.....**** +..*.....* +...**....** +. +...*.*...*..* +..**....**** +...**....* +....***** +.....*.* +.......*....*.* +.....*.*...*..* +....*****.** +...** +..***...**** +...*.....*..* +....*.....* +....*.....** +...***...**.* +...*.....*..* +...*...* +....*...** +.....** +........**....* +.....**....**** +....*...**.** +...*...* +...*.....**** +...*.....* +....**....** +#P -55 64 +.*.*...*..* +**....**** +.**....* +..***** +...*.* +.....*....*.* +...*.*...*..* +..*****.** +.** +***...**** +.*.....*..* +..*.....* +..*.....** +.***...**.* +.*.....*..* +.*...* +..*...** +...** +......****.* +.......*...* +........* +........****** +#P -45 86 +.........* +***...**** +*.....*** +*...*...* +.*...** +..**....* +.....*** +......* +.......*.......* +.......*....**.* +......***...* +......*.....* +......*...* +.......*...*** +........** +...........*****.* +............*....* +.............** +..............*..* +...............*.* +#P -42 21 +......................* +...................**** +...................** +.................*...** +.................****.* +..............*.* +.............****** +............**.....* +...........**....* +............*.*..** +..................*** +............**......* +...........* +...........*** +.........* +.........*** +.......* +.......*** +.....* +.....*** +....* +...***..* +...*....*.* +*..**** +.*......** +.**.*.* +....* +#P -13 -56 +.........*.* +........*..* +.......** +......*....* +.....*****.* +..**...........*.* +.*...***......*..*......* +*...*......**.*......**.* +*.....*....*....*....* +*..*..*....*....*....* +.*.*..**.*......**.* +.........*..*......*..* +***.......*.*.......*.* +** +***.......*.*.......*.* +.........*..*......*..* +.*.*..**.*......**.* +*..*..*....*....*....* +*.....*....*....*....* +*...*......**.*......**.* +.*...***......*..*......* +..**...........*.* +.....*****.* +......*....* +.......** +........*..* +.........*.* +#P 12 -51 +*.*.......*.*.......*.*.......*.*.......*.*.......*.* +..*......*..*......*..*......*..*......*..*......*..* +......**.*......**.*......**.*......**.*......**.* +.*....*....*....*....*....*....*....*....*....*....* +.*....*....*....*....*....*....*....*....*....*....* +.**.*......**.*......**.*......**.*......**.*......**.* +....*..*......*..*......*..*......*..*......*..*......*.* +.....*.*.......*.*.......*.*.......*.*.......*.*.......* +#P -36 -56 +.........*.* +........*..* +.......** +......*....* +.....*****.* +..** +.*...*** +*...* +*.....* +*..*..* +.*.*..**.* +.........* +*** +** +** +*** +.........* +.*.*..**.* +*..*..* +*.....* +*...* +.*...*** +..** +.....*****.* +......*....* +.......** +........*..* +.........*.* +#P -25 -66 +.........*.* +........*..*......* +.....**.*......**.* +.....*....*....* +.....*....*....* +...*......**.* +**.*.........*..* +*.............*.* +*.** +#P -13 -94 +.............................*.........*.........* +...........*..............**.*......**.*......**.* +........****..............*.........*.........* +........**................*.........*.........* +......*.......*.*.......*.........*.........* +......******.*..*....**.*......**.*......**.* +...*.*.......*.......*.........*.........* +..******.**....*....*..*..*...*..*..*...*..*..* +.**.....**.....*....**..**....**..**....**..** +**....**....*..**.*.*.......*.*.......*.*.......* +.**....****.*.....*.*..*.**.*.*..*.**.*.*..*.**.* +....................*...*.....*...*.....*...* +.**....****.*.....*.*..*.**.*.*..*.**.*.*..*.**.* +**....**....*..**.*.*.......*.*.......*.*.......* +.**.....**.....*....**..**....**..**....**..** +..******.**....*....*..*..*...*..*..*...*..*..* +...*.*.......*.......*.........*.........* +......******.*..*....**.*......**.*......**.* +......*.......*.*.......*.........*.........* +........**................*.........*.........* +........****..............*.........*.........* +...........*..............**.*......**.*......**.* +.............................*.........*.........* +#P 2 -15 +.....*.* +....*..* +...** +..* +.**** +*....* +*..* +*..* +.* +..****.* +...*...* +....* +....*.* +. +...*** +...** +...*** +. +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...** +....*..* +.....*.* +#P -13 47 +.....*.* +....*..* +...** +..* +.**** +*....* +*..* +*..* +.* +..****.* +...*...* +....* +....*.* +. +...*** +...** +...**....*.*....*.* +...*****.*..*..*..*.** +.....*....*...** +...*.......*......* +...*.*......*****.*.....* +..*.................**.*.* +...*.*......*****.*....* +...*.......*......* +.....*....*...** +...*****.*..*..*..*.** +...**....*.*....*.*....** +...**..................**** +...***....................* +. +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...** +....*..* +.....*.*.* +........* +#P 25 -31 +......*.* +.....*..* +....** +...* +..**** +.*....* +.*..* +.*..* +..* +...****.* +....*...* +.....* +.....*.* +. +....*** +....** +....*** +. +.....*.* +.....*..* +.....** +.......*** +.......* +....**.*** +...* +..*...**.* +..*...* +.*..**.*** +*** +.**.**** +...* +.*....* +.*.**.* +*.......* +*......* +.*.*...* +.*......*.* +...*....* +.***......* +***.....*** +.***...*** +...*....*** +.*........* +.*.*....* +*.......*.* +*......* +.*.*....*.* +.*......* +...*......* +.***....*** +***....*** +#P 25 20 +.***....*** +...*......* +.*......* +.*.*....*.* +*......* +*.......*.* +.*.*....* +.*........* +...*....*** +.***...*** +***.....*** +.***......* +...*....* +.*......*.* +.*.*...* +*......* +*.......* +.*.**.* +.*....* +...* +.**.**** +*** +.*..**.*** +..*...* +..*...**.* +...* +....**.*** +.......* +.......*** +.....** +.....*..* +.....*.* +. +....*** +....** +....*** +. +.....*.* +.....* +....*...* +...****.* +..* +.*..* +.*..* +.*....* +..**** +...* +....** +.....*..* +......*.* +#P 56 -105 +..............*.* +.............*..* +............** +...........* +..........****** +.......**.......* +......*...***.* +.....*...*....* +.....*.....*....* +.....***...***** +. +.....***...***** +....*......*....* +...*...*...*..* +..*..*......*...* +..*....*.....* +..*****.......*** +. +..*****.......*** +..*....*.....* +..*..*......*...* +...*...*...*..* +....*......*....* +.....***...***** +. +.....***.....***** +....*........*....* +...*...*.....*..* +..*..*........*...* +..*....*.......* +.*.****.........*** +*** +.*.****.........*** +..*....*.......* +..*..*........*...* +...*...*.....*..* +....*........*....* +.....***.....***** +. +.....***...***** +.....*.....*....* +.....*...*....* +......*...***.* +.......**.......* +..........****** +...........* +............** +.............*..* +..............*.* +#P 50 -29 +.....*.* +....*..* +...** +..* +.**** +*....* +*..* +*..* +.* +..****.* +...*...* +....* +....*.* +. +...*** +...** +...** +...***** +.....* +...* +...*.* +..* +..*...* +...*..* +...*.* +. +..*** +..** +..** +..***** +....* +..* +..*.* +.* +.*...* +..*..* +..*.* +. +.*** +.** +.** +.***** +...* +.* +.*.* +* +*...* +.*..* +.*.* +. +*** +** +** +***** +..* +#P 42 26 +........* +........*.* +.......* +.......*...* +........*..* +........*.* +. +.......*** +.......** +.......** +.......***** +.........* +.......* +.......*.* +......* +......*...* +.......*..* +.......*.* +. +......*** +......** +......** +......***** +........* +......* +......*.* +.....* +.....*...* +......*..* +......*.* +. +.....*** +.....** +.....** +.....***** +.......* +.....* +.....*.* +....* +....*...* +.....*..* +.....*.* +. +....*** +....** +....** +....***** +......* +....* +....*.* +...* +...*...* +....*..* +....*.* +. +...*** +...** +...** +...*** +. +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...** +....*..* +.....*.* +#P 58 -6 +......*.*.......*.*.......*.*.......*.* +.....*..*......*..*......*..*......*..* +..**.*......**.*......**.*......**.* +..*....*....*....*....*....*....*....* +..*....*....*....*....*....*....*....* +*......**.*......**.*......**.*......**.* +*..*......*..*......*..*......*..*......* +.*.*.......*.*.......*.*.......*.* +#P 82 -60 +.....*.* +....*..* +...** +..* +.**** +*....* +*..* +*..* +.* +..****.* +...*...* +....* +....*.* +. +...*** +...** +...*** +. +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...** +....*..* +.....*.* +#P 90 -88 +.....................*.........*.........* +..................**.*......**.*......**.* +..................*.........*.........* +..................*.........*.........* +................*.........*.........* +.............**.*......**.*......**.* +.............*.........*.........* +............*..**.....*..**.....*..** +...........***.......***.......*** +............**........**........** +.............***.......***.......*** +..............*.........*.........* +................*.........*.........* +...........*.*.*.....*.*.*.....*.*.* +..........*..*......*..*......*..*......* +.......**.*......**.*......**.*......**.* +.......*....*....*....*....*....*....* +.......*....*....*....*....*....*....* +.....*......**.*......**.*......**.* +..**.*.........*..*......*..*......*..* +..*.............*.*.*.....*.*.*.....*.*.* +.*..**...............*.........*.........* +***................*.........*.........* +.**...............***.......***.......*** +..***............**........**........** +...*............***.......***.......*** +.....*...........*..**.....*..**.....*..** +*.*.*.............*.........*.........* +..*...............**.*......**.*......**.* +.....................*.........*.........* +.*.....................*.........*.........* +.*.....................*.........*.........* +.**.*..................**.*......**.*......**.* +....*.*...................*.........*.........* +.......* +.....* +....*** +...** +..*** +...*..** +....*.............*.*.......*.*.......*.* +....**.*.........*..*......*..*......*..* +.......*......**.*......**.*......**.* +.........*....*....*....*....*....*....* +.........*....*....*....*....*....*....* +.........**.*......**.*......**.*......**.* +............*..*......*..*......*..*......* +.............*.*.*.....*.*.*.....*.*.* +..................*.........*.........* +................*.........*.........* +...............***.......***.......*** +..............**........**........** +.............***.......***.......*** +..............*..**.....*..**.....*..** +...............*.........*.........* +...............**.*......**.*......**.* +..................*.........*.........* +....................*.........*.........* +....................*.........*.........* +....................**.*......**.*......**.* +.......................*.*.......*.*.......*.* +..........................*.........*.........* +........................*.........*.........* +.......................***.......***.......*** +......................**........**........** +.....................***.......***.......*** +......................*..**.....*..**.....*..** +.......................*.........*.........* +.......................**.*......**.*......**.* +..........................*.........*.........* +............................*.........*.........* +............................*.........*.........* +............................**.*......**.*......**.* +...............................*.........*.........* +#P 69 68 +.....*.* +....*..* +...** +..* +.**** +*....* +*..* +*..* +.* +..****.* +...*...* +....* +....*.* +. +...*** +...** +...*** +. +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...** +....*..* +.....*.* +#P 74 20 +............*.* +...........*..* +..........** +.........*....* +........*****.* +.....** +....*...*** +...*...* +...*.....* +...***...* +....*....**.* +....*.......* +...* +..*** +.*...* +.*.* +*....* +.**** +.*.......* +***...**** +*.....** +*...* +.*...***** +..** +.....***.* +.....***.* +.....* +....****** +...* +..*...**** +..*...* +..*...**.* +...* +....*****.* +..........* +..*****.* +.*......* +*...** +*....*..*.** +*.....*.*....** +.**..........**** +................* +.*.* +** +.** +..*** +...* +.....* +....* +#P 102 10 +.......*.* +......*..* +.....** +....*....* +...*****.* +..* +..**** +.* +***..* +.*** +..* +...***.* +...*..** +....*** +......* +....* +....*.* +...* +...* +....*.* +....* +......* +....***** +....** +....** +....*** +. +.....*.* +....*..* +....* +....* +.....*..** +......**** +. +....****** +...* +..*...**.* +..*...* +..*...**** +...* +....**** +.....* +.....*.* +...*.* +..***.* +.**..***** +**.....* +.*.*.* +....* +.*** +..*** +....* +..* +..*.* +.*.......* +.*...*.** +..*..*.*.* +..*.* +. +.*** +.** +.**....* +.*****.*.* +...*....* +.* +.*.* +* +*...* +.*..* +.*.* +. +*** +** +** +*** +#P 99 86 +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...** +....*..* +.....*.* +#P 130 21 +........* +.....**** +.....** +...*...** +...****.* +..* +.**** +*....* +*..* +*..* +.* +..****.* +...*...* +....* +....*.* +. +...*** +...** +...*** +. +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...****.* +..**...** +.*...** +*....**** +*.......* +*..* +.*.* +. +*** +** +** +*** +. +.*.* +*..* +*.......* +*....**** +.*...** +..**...** +...****.* +..* +.**** +*....* +*..* +*..* +.* +..****.* +...*...* +....* +....*.* +. +...*** +...** +...*** +. +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...** +....*..* +.....*.* +#P 166 -90 +............* +.........**.* +.........* +.........* +.......* +....**.* +....* +...*..** +...** +......** +..*...** +..**.** +..*.*.* +.** +**.* +...* +#P 160 -74 +.....* +.....**.* +.....*.* +....** +...**.* +......* +..* +..**.* +..*.* +.** +**.* +...* +#P 154 -62 +.....* +...****.* +..**....* +...** +....*** +.....* +.......* +...*** +..**...*..* +.**..*..*** +***..*.*.* +.**...**.* +..*****.* +...*...**..* +.........*.* +#P 156 -47 +.** +.*** +.*** +...* +.* +.*.*.........* +*.........**** +.*.*......*** +.*......*...* +...*....*** +.***...*....* +***...****** +.** +..******** +...*.*....* +......*** +......*...* +........*** +........**** +...........* +#P 158 0 +.....*.* +....*..* +...** +..* +.**** +*....* +*..* +*..* +.* +..****.* +...*...* +....* +....*.* +. +...*** +...** +...*** +. +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...****.* +...*...** +....*** +.....*.** +......**.* +. +......* +.....**** +....** +...**...* +..** +...****** +. +...**.* +..**..* +.** +*** +.**.**.* +...*...* +.*....* +.*.** +* +#P 158 50 +.*.** +.*....* +...*...* +.**.**.* +*** +.** +..**..* +...**.* +. +...****** +..** +...**...* +....** +.....**** +......* +. +......**.* +.....*.** +....*** +...*...** +...****.* +..* +.**** +*....* +*..* +*..* +.* +..****.* +...*...* +....* +....*.* +. +...*** +...** +...*** +. +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...** +....*..* +.....*.* +#P 183 -55 +.....*.* +....*..* +...** +..* +.**** +*....* +*..* +*..* +.* +..****.* +...*...* +....* +....*.* +#P 186 -41 +*** +** +*** +. +.*.*....* +.*..*.** +*...*.*.* +* +.*.* +.*...*.* +...*...*.* +.***....* +***..* +.**..* +..**...* +...***.* +. +...**.* +..** +.**..** +***.* +.**..** +..** +...***..** +........* +....**..** +..**.......** +.**.***.....*..* +...*.........*.* +.*...**** +.*.*.* +*....*..* +*....*..* +.*.*.* +.*...**** +...* +.**.*** +..** +....** +. +...***** +..** +.**..** +***.* +.**..** +..** +...**.* +. +...**** +..** +.**..** +***.* +.**..*** +..** +...*** +. +....** +..** +.**.*** +...* +.*...**** +.*.*.* +*....*..* +*....*..* +.*.*.* +.*...**** +...* +.**.*** +..** +....** +#P 186 30 +...***** +..** +.**..** +***.* +.**..** +..** +...**.* +. +...**** +..** +.**..** +***.* +.**..*** +..** +...*** +. +....** +..** +.**.*** +...* +.*...**** +.*.*.* +*....*..* +*....*..* +.*.*.* +.*...**** +...* +.**.*** +..** +....**..** +........* +...***..** +..** +.**..** +***.* +.**..** +..** +...**.* +. +...***.* +..**...* +.**..* +***..* +.***....* +...*...*.* +.*...*.* +.*.* +* +*...*.*.* +.*..*.** +.*.*....* +. +*** +** +*** +#P 183 86 +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...** +....*..* +.....*.* +#P 221 -42 +.......* +....**** +....** +..* +..**** +.* +***..* +.*** +..* +...***.* +...*..** +....*** +......* +....* +....*.* +...* +....*.* +....* +......* +....*** +...*** +...*.* +...** +...* +..*** +..*..* +.*..* +.** +#P 220 -13 +..*.* +.**..* +.*.* +.** +.*.......* +***...**** +*.....*** +*...*...* +.*...** +..**....* +.....*** +......* +.......* +.......* +......*** +......*..* +.....*..* +.....** +. +.....*.* +....**..* +....*.* +....** +....* +...*** +...*..* +..*..* +..** +#P 220 16 +..*.* +.**..* +.*.* +.** +.*.......* +***...**** +*.....** +*...* +.*...***** +..** +.....***.* +......* +.......*** +. +.....*.*** +....**..** +....*.* +....** +....* +...*** +...*..* +..*..* +..** +#P 217 40 +.....*.* +....**..* +....*.* +....** +....* +...*** +...*..* +..*..* +..** +. +..*.* +.**..* +.*.* +.** +.*.......* +***...**** +*.....** +*...* +.*...***** +..** +.....***.* +.....***.* +.....* +....****** +...* +..*...**** +..*...* +..*...**.* +...* +....****** +. +......**** +.....*..** +....* +....* +....*..* +.....*.* +. +....*** +....** +....** +....***** +......* +....* +....*.* +...* +...* +....*.* +....* +......* +....*** +...*..** +...***.* +..* +.*** +***..* +.* +..**** +..* +...*****.* +....*....* +.....** +......*..* +.......*.* +#P 250 -34 +.....*.* +....*..* +...** +..* +.**** +*....* +*..* +*..* +.* +..****.* +...*...* +....* +....*.* +. +...*** +...** +...*** +. +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...** +....*..* +.....*.* +#P 255 -4 +....* +.....* +...* +..*** +.** +*** +.* +..* +..* +.*** +.*..* +*..* +** +#P 252 10 +...*.* +..**..* +..*.* +..** +..* +.*** +.*..* +*..* +** +#P 249 20 +...*.* +..**..* +..*.* +..** +..* +.*** +.*..* +*..*..** +**.....*..* +........*.* +#P 246 30 +...*.* +..**..* +..*.* +..** +..* +.*** +.*..* +*..* +** +#P 240 46 +.....*.* +....*..* +...** +..* +.**** +*....* +*..* +*..* +.* +..****.* +...*...* +....* +....*.* +. +...*** +...** +...*** +. +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...** +....*..* +.....*.* +#P 245 40 +.*.* +** +.** +..*** +...* +.....* +....* +#P 274 -24 +.....*.* +....*..* +...** +..* +.**** +*....* +*..* +*..* +.* +..****.* +...*...* +....* +....*.* +. +...*** +...** +...** +...*** +. +....*.* +...*..* +...* +..*..* +.*** +..*** +....* +..* +..*.* +.* +..*.* +..* +....* +..*** +.*** +..** +...**..* +....**.* +#P 274 14 +....**.* +...**..* +..** +.*** +..*** +....* +..* +..*.* +.* +..*.* +..* +....* +..**.* +...** +.....*** +........* +....*** +...**...* +..**..** +.***.* +..**..** +...**...* +....*** +........* +.....*** +...** +..**.* +....* +..* +..*.* +.* +..*.* +..* +....* +..*** +.*** +..*** +....* +..* +..*.* +.* +..*.* +..* +....* +..*** +.*** +..*..* +...* +...*..* +....*.* +. +...*** +...** +...** +...*** +. +....*.* +....* +...*...* +..****.* +.* +*..* +*..* +*....* +.**** +..* +...** +....*..* +.....*.* diff --git a/programs/demos/life2/lif/AQUA50F.lif b/programs/demos/life2/lif/AQUA50F.lif new file mode 100644 index 000000000..da53ef5b5 --- /dev/null +++ b/programs/demos/life2/lif/AQUA50F.lif @@ -0,0 +1,867 @@ +#Life 1.05 +#D c/2 flipper spaceships +#D By Hartmut Holzwart. +#D +#D There are many flippers missing from this +#D collection, due to extreme biodiversity. +#N +#P -125 -17 +**** +*...* +* +.*..* +#P -125 -1 +***** +*....* +* +.*...* +...* +#P -125 15 +****** +*.....* +* +.*....* +...** +#P -115 -41 +**** +*...**.* +*....*.* +.*..* +. +. +.****** +.*.....* +.* +..*....* +....** +#P -111 34 +****** +*.....* +* +.*.....* +...**..* +.....* +....*..* +.....*.* +. +****** +*.....* +* +.*....* +...** +#P -113 -58 +..........*.....* +..........* +.....***..*.....* +.....***...***** +.**...** +**.** +.****** +..***...* +....* +....*...* +....**** +#P -95 -44 +**** +*...*.* +*.....** +.*....** +......* +...********* +...*........* +...* +....*...*...* +. +****.** +*...**.* +*....*.* +.*..* +#P -72 -18 +..***.* +.****.* +** +.*.* +..****.* +...*** +. +. +......***** +......*....* +......* +.......*...* +.........* +#P -105 -21 +.........** +.......*....* +......* +......*.....* +......****** +. +. +. +....************ +....*...........* +....* +.....*..........* +.................** +...*................* +..* +..*.................* +..****************** +. +. +. +************************ +*.......................* +* +.*......................* +.....................** +...*................* +..* +..*.................* +..****************** +. +. +. +....************ +....*...........* +....* +.....*..........* +.............** +.......*....* +......* +......*.....* +......****** +#P -95 32 +..**** +..*...* +..* +...*..*..* +.......**** +.*........* +*.........* +* +********* +........**.** +........* +........*.** +..**** +..*...* +..* +...*..* +#P -98 57 +...........*** +..........***** +******...**.*** +*.....*...** +* +.*....* +...**...**.* +........*** +. +******.....*** +*.....*...***** +*........**.*** +.*....*...** +...** +#P -88 -66 +****........***.*** +*...**.*.**..*..* +*....*.*.....*.*.......*.* +.*..*.....*..***.....**..*.**.* +................***..**.......** +.............***.........* +.******.....******..****.*....** +.*.....*...**.***..........**.* +.*..........**....***.**.* +..*....*.........*.*.*...* +....**...........***.** +..........*..**.*.*...*..*.** +*****.*..**..**.*.*....*.* +*.....*..*..* +*.....*......****.* +.*...........**.*.* +#P -72 -44 +**** +*...*...........*.* +*..............*..* +.*..*..*......** +.....****.....*.* +.*......*....*.*..* +*.......*...***.** +*...........* +*******.....***.** +......**.**..*.*..* +......*.......*.* +......*.**....** +****...........*..* +*...*...........*.* +* +.*..* +#P -74 4 +..****** +..*.....* +..* +...*....* +.....** +. +.....*.* +.**..*.* +**.**.* +.** +..**..* +.......* +....* +....*..* +.....* +.....** +.***.* +.*...*.** +.*.*.* +..**.*.** +.....* +....*** +.....** +....** +..* +.*....* +.*....* +.***** +#P -74 41 +**** +*...* +* +.*..* +......** +....* +...***** +..*.** +.** +..** +...**.* +......* +..* +**...* +*.....* +*...**..* +.**..* +......*.* +#P -73 67 +****** +*.....* +* +.*....* +...** +. +....*** +. +..**...* +.*.* +**..** +.** +..***** +. +.....** +. +.** +**.*** +.***** +..*** +#P -57 68 +.***** +.*....* +.* +..*...* +....* +. +...*** +..* +.** +**.*** +.*.....* +..***..* +....* +.......* +. +..** +.**.**** +..****** +...**** +#P -58 34 +.** +**.**** +.****** +..**** +. +. +.******* +.*......* +.* +..*.....* +....* +......** +....* +...***** +..*.** +.** +..** +...**.* +......* +..* +**...* +*.....* +*...**..* +.**..* +......*.* +#P -56 -18 +..***.* +.****.* +** +.*.* +..****.* +...*** +. +.....* +....*** +. +..**.** +..* +..* +...*** +. +.....*.* +.....*.* +.....** +..*** +.* +**....* +.*** +..***.** +....* +. +...*.* +.**.* +.*..*..** +.*.* +..*** +....*.* +......* +. +. +.****** +.*.....* +.* +..*....* +....** +#P -45 -44 +**** +*...* +* +.*..*.....* +....*...**.* +.*...*..** +*......*....* +*....*.***..* +*****...*.* +.......**.* +.........* +..........* +**** +*...* +* +.*..* +#P -47 -65 +..****....*.* +..*...*..* +..*......*..*..** +...*..*..***..* +......*.......*** +.*.....*....*** +*..........**.* +*......*..**.*.* +*******....*.* +.............* +..........* +........*.....** +..****...*.....* +..*...*..**.* +..*........* +...*..* +#P -40 -18 +..***.* +.****.* +** +.*.* +..****.* +...*** +. +.....* +....*** +. +..**.** +..* +..* +...*** +. +.....*.* +.....*.* +.....** +..*** +.* +**....* +.*** +..***.** +....* +....* +..*** +.*....* +**....** +.**...** +..*..*** +.....** +.....*.* +..*** +.**** +**.** +.**...** +......** +......* +...*** +..*** +.*.* +**.*.**.* +.**.* +..** +. +....* +....* +.**..*.* +**...*** +.**.* +..*...** +...* +.....** +.....* +.....** +....** +..**.* +..* +..*.* +...**.* +....*..* +. +. +.....* +..**.*** +.**..** +**..** +.**.*** +....** +#P -24 -43 +....*..* +..***....** +.*......**** +**.**.*.*..* +.**....*..**.*.* +..*...*....***.*...** +...***......*..*.* +.....*.......*...*...* +....*..*....*..*.*....* +........*...*.....*** +..**.......***.* +.*.**...*.*....* +**...**..** +.**.....** +..***** +.....* +#P -24 -19 +................** +..***.*........* +.****.*...****.*** +**......*.*...** +.*.*....*......* +..****....**...** +...***.**....*.** +..........****.* +.........**.....* +......*..*.**** +.....*......*.** +..**.**.*** +.**..**....*** +**..**...*....* +.**.***..** +....**.........** +................* +#P -18 6 +***** +*....* +* +.*...* +...* +. +....**** +...*..* +...*..* +...*..* +....*** +. +.....* +..*** +.* +.* +.**.** +. +...* +.......* +....** +...* +...*..*.* +...* +....*...* +.....*..* +......* +. +***** +*....* +* +.*...* +...* +#P -24 47 +........* +......***** +.....**...*...*.*..* +..**...*.***.*....*...* +.*...***..*.*.*.**.*..* +*...*.**.****...**** +* +***...**********..** +......* +***...*********..* +*................* +*...*.**.**...*...* +.*...***...**.......** +..**...*.*....**.**** +.....**.......* +......***.* +........*.* +#P 4 -44 +....................* +.**...*...........*...* +**.**...*........* +.****.**.........*....*.....****..* +..*****...**....*.****.....*....*.* +..........***..**........**.** +....**......**...........*..****** +...**.*****.....**.**.**....****** +....******...**....**.....** +.....***...***...*..*.*** +..........**.**.....*** +.........**.*.........**** +.............****.......**...**** +....**......*.***.*******...****** +...**.***..........***...*.*.****.* +....*****.*..*..*.*...*..*..* +.....*...**...*.......*..*.......* +......*.....*..*..........*****.* +.**.............*.....*.....**..* +**.**.***........*****.......*..* +.**** +..** +#P 4 -12 +....................* +.**...*...........*...*....*** +**.**...*........*........***** +.****.**.........*....*..**.*** +..*****...**....*.****....** +..........***..** +....**......** +...**.*****.....**.**.**....** +....******...**....**...* +.....***...***...*..******.*** +..........**.**.....*.* +.........**.*.........*..***.* +.............****........***.* +....**......*.***.*******.** +...**.***..........*** +....*****.*..*..*.*...* +.....*...**...*.......*....*** +......*.....*..*..........***** +.**.............*.....*..**.*** +**.**.***........*****....** +.**** +..** +#P 4 20 +.................*..* +.**...*.........* +**.**...*.......*...*...****** +.****.**...*.*..****....*.....* +..*****...**.*..........* +..........*...........**.*....* +....**........*......***...** +...**.*****....*.....*..* +....*******.*..*.....*** +.....***...**.*......* +.........**..*.*.** +.........***.**....**.** +.............*...* +....**.......*.......*** +...**.***.****..*....*.* +....*****............** +.....*...* +......*...*..*...*..*...****** +.**........**...*.......*.....* +**.**.***.......*...*...* +.****...........****.....*....* +..**.......................** +#P 52 -43 +...........** +..........**** +.........**.** +..........**........**.* +.**................**...* +**.****......**....** +.******....*.....*....** +..*******.**...*.* +......*..**** +......*...* +.....***.* +........*** +..........*..**.*.* +.**.........*...*..*.* +**.****.....*.....**** +.******....**......*...* +..****....****.......* +.........**.**.......* +..........** +#P 52 -19 +...........** +..........**** +.........**.**....................** +..........**........*.....*......***** +.**................*.*..**......*...*** +**.****......**..**...*.*.*.*.*..**..** +.******....*....**....***...***.*.* +..*******.**...**.*.....*.......* +......*..****....*..*.......**.****..* +......*...*.......*.*.......**....*..* +.....***.*.........*.*......*..*** +........***......*.*.........****..** +..........*..**.**.*....*...*....*.** +.**.........*...**.*..**....**.....* +**.****.....*.....**.....**......*.** +.******....**......*....******..**.**.* +..****....****.......**..***.....** +.........**.** +..........** +#P 52 5 +...........** +..........****..............** +.........**.**.............**.** +..........**........*..***.***** +.**................*.*..*.***** +**.****......**..**...*.*** +.******....*....**....*.*** +..*******.**...**.*...****..** +......*..****....*..*.*.*....*** +......*...*.......*.*.***....** +.....***.*.........*.**........* +........***......*.*.........*** +..........*..**.**.*..**....** +.**.........*...**.*....*...* +**.****.....*.....**....*....* +.******....**......*.....* +..****....****.......*.**** +.........**.**..........**.***** +..........**................**** +.............................** +#P 52 29 +.............*..* +............* +............*...* +............****........*..* +.**...............***...*..* +**.****.........**.**...* +.******....*.*..*....*..**.* +..*******.**.....****.* +......*..***.**....*.....** +......*...* +.....***.* +........***..**.......* +..........*...*...**..***** +.**.........***.**..*.* +**.****.....****...*.**....* +.******......*.....***.**.* +..****......*.....***....* +............*...* +............**** +#P 99 -56 +........**.......................*.**..**...** +.......**.**...........**.*.....***...****.**** +.**.....****.........*.**...*.*.....*.*..** +**.**....**.....**.*.*.**.*.*..*.***.....** +.****............****...***.*.*.....*.*..** +..**...******..**........*......***...****.**** +........*.***.*..................*.**..**...** +......*.*......*..***..** +.....**.*..*..**..*...** +.....*...*.......****.** +......**.*..**....***...** +......**.**..........*...........*..*.*....* +.............*....*.....**.*....*..***.**..**..* +.**.....**...*.**........*.*..*.*......**...*** +**.**............*.**.*.....**..**..**..*...* +.****...**...........******...*.*......**...*** +..**...**.**............**......*..***.**..**..* +........****............**.......*..*.*....* +.........** +#P 99 -33 +......................................* +........**......................***...** +.......**.**...........**.*....****...** +.**.....****.........*.**...*.**.............* +**.**....**.....**.*.*.**.*.*...**...*****.** +.****............****...***.*.*.**.**.***** +..**...******..**........*......*...*.**..* +........*.***.*....................*.* +......*.*......*..***..**...............**....* +.....**.*..*..**..*...**................***..*.** +.....*...*.......****.**...................* +......**.*..**....***...**............**...*...** +......**.**..........*...........**...****.* +.............*....*.....**.*.....***...**** +.**.....**...*.**........*.*..***....**.....* +**.**............*.**.*.....**.*..*...*.....** +.****...**...........******....**..*.**.....** +..**...**.**............**....***.***.** +........****............**........**..* +.........**............................* +#P 99 -8 +........**.....................*.*.**....*** +.......**.**.................*****....** +.**.....****........*.......*.....**.***..* +**.**....**.....**...*...*..*..****.** +.****............*.***.**.*..**.**......** +..**...******..**.....*......*........*..** +........*.***.*.........*.*.*.........**.....* +......*.*......*....*......*..........**..**.* +.....**.*..*..**.**...*.*.................** +.....*...*..........**..*.*............*.*** +......**.*..**....*.........**........*....*** +......**.**.......*...****............*..*...* +.............*......**.*.***...*......*** +.**.....**...*.**....................** +**.**............*..*.**..***..**...***.*..* +.****...**........**........**...*...*.....* +..**...**.**..................***.*.....**** +........****....................*.**.....*.** +.........** +#P 99 16 +........**.....................*.*.**..* +.......**.**.................*****...*..* +.**.....****........*.......*.....*.*..** +**.**....**.....**...*...*..*..****.**.***....*** +.****............*.***.**.*..**.***...*.*....*****.* +..**...******..**.....*......*.....***.**......*....* +........*.***.*.........*.*.*..........*....**.*....* +......*.*......*....*......*.....****....***...* +.....**.*..*..**.**...*.*......*....**...***.....*..* +.....*...*..........**..*.*....***.*..*...........*.* +......**.*..**....*.........**......*...*....*...* +......**.**.......*...****........*.....*..****.** +.............*......**.*.***...*...****.****.**..* +.**.....**...*.**..................*.........**....* +**.**............*..*.**..***..**...***........*.* +.****...**........**........**...*..**.* +..**...**.**..................***.*..** +........****....................*.**..* +.........** +#P 99 40 +........** +.......**.** +.**.....****.....................*.**.***..*...* +**.**....**........*.**..**....*******...***.*** +.****...........*******.*...*.*..........**...** +..**...******..***.....*...****.**.*.....*...** +........*.***.*..*...*.......*..*.**.****....** +......*.*......*..*..*..**.....*..*...**...** +.....**.*..*..**....*........*.*..*.....*..**.** +.....*...*.......*........**.*.*.........*.*.**..* +......**.*..**........*...*....*....*.****......* +......**.**.......*******......*........**** +.............*..**..*...*..***.*.****..**.*** +.**.....**...*.*.*..**.*..***.**...*.*...**...* +**.**..............*....*.**....***...*...*...* +.****...**........................*...*....**.* +..**...**.**...........................** +........**** +.........** +#P 168 -43 +............*.*.............*..* +...........* +...........*..*................* +...........*.**.*.......******* +....**......**...*....* +...**.****.*.....****.*..*.....*** +....******.....*..*...........***** +.....*.............*.........**.*** +......*.............**........** +.** +**.**.*** +.**** +..** +#P 168 -27 +............*.*.............*...* +...........* +...........*..*.................* +...........*.**.*.......******** +....**......**...*....* +...**.****.*.....****.*..* +....******.....*..* +.....*.............* +......*.............** +.** +**.**.*** +.**** +..** +#P 168 -11 +............*.* +...........*................** +...........*..*...........***** +...........*.**.*.......***.*** +....**......**...*....*....* +...**.****.*.....****.*..** +....******.....*..* +.....*.............* +......*.............** +.** +**.**.*** +.**** +..** +#P 170 20 +............................*.** +..........................****** +.........................*.....****.* +.........................*..**..*....* +.......***...............**.*.****.*.....* +..******...................**.......****.* +..*...**...**..**.**........**.......* +..*...*.......****..*..**...**.........** +...**.*..**..........*..**.*...**.....* +....****..*....**.*.*..*..*.......**...* +........*...*..**.*..**.***......*.....*...* +..**....**..****...*.*..*.......*.......****** +**.....*.***.*.....*.*.**......*....*.......** +*..*..***..*.*............*....*...*........** +*......**.............*...*....*..*......*..* +.**.....*...**....*****.........**..........* +.........*****.....*..***..........*...**.* +...*...*.*...*..*..*....**...*...*.*...* +...*.*.*.*.....*.**....*..*...*...*...*..* +..**.**...***.***.*....****.*.*........** +..*..*............*..*...***..*......* +..*....*..................**...*..*..*.** +...*..****...............*...*....*.*...* +.....*..**...............*..*****.** +.........................**...*....* +...........................***...* +.............................* diff --git a/programs/demos/life2/lif/AQUA50FA.lif b/programs/demos/life2/lif/AQUA50FA.lif new file mode 100644 index 000000000..487c41231 --- /dev/null +++ b/programs/demos/life2/lif/AQUA50FA.lif @@ -0,0 +1,703 @@ +#Life 1.05 +#D c/2 flipper spaceships with B-heptomino front ends +#D By Hartmut Holzwart. +#D +#D These are set apart by their b-heptomino +#D front ends. Most flipper front ends look +#D like *WSS. +#N +#P -148 -53 +....** +.** +**..*.* +.**.*.*......**......** +..*...**....****....**.*** +...**.***.....*...*.****** +....**.......***..**..*** +......*.**.*.*.......* +....***.....*...*.*..* +....***.**...**..* +......*..**.**.*...* +..**.**.*...***.....****** +.*.**................***** +**....................*** +.**** +..*** +#P -148 -30 +..................** +....**...........**.**.......**** +.**...............****...**.*....* +**..*.*............**...**** +.**.*.*......**..................* +..*...**....****.......**.*.* +...**.***.....*...*...*.*..* +....**.......***..**...* +......*.**.*.*........*.* +....***.....*...*.*.*.** +....***.**...**..*...*.*.* +......*..**.**.*...**..* +..**.**.*...***........*..* +.*.**..................**.** +**......................**...**** +.****.............**.........*...* +..***............**.**.......* +..................****........*..* +...................** +#P -148 -6 +..................** +....**...........**.**.......*** +.**...............****...**.*.....*.* +**..*.*............**...****....** +.**.*.*......**................**....* +..*...**....****.......**.*.*...* +...**.***.....*...*...*.*..*.......* +....**.......***..**...*........** +......*.**.*.*........*.*.......*** +....***.....*...*.*.*.**........** +....***.**...**..*...*.*.*......** +......*..**.**.*...**..*..........* +..**.**.*...***........*..*.....*.* +.*.**..................**.**...*..* +**......................**...**...* +.****.............**.........*....* +..***............**.**.......*...* +..................****........** +...................** +#P -148 18 +..................** +....**...........**.** +.**...............****...* +**..*.*............**...**** +.**.*.*......**.............* +..*...**....****.......**.* +...**.***.....*...*...*.*.*..* +....**.......***..**...*..*.* +......*.**.*.*........*.*...*.** +....***.....*...*.*.*.**.*.*....* +....***.**...**..*...*.*.*.*.*.* +......*..**.**.*...**..*.*..* +..**.**.*...***........*.** +.*.**..................**...* +**......................*..* +.****.............**.....* +..***............**.** +..................**** +...................** +#P -148 42 +..................** +....**...........**.** +.**...............****...*** +**..*.*............**...**.* +.**.*.*......**............** +..*...**....****.......**.*** +...**.***.....*...*...*.*.*.** +....**.......***..**...*..*.* +......*.**.*.*........*.*.*.*.*..* +....***.....*...*.*.*.**.*.*.**.* +....***.**...**..*...*.*.*.*.*.* +......*..**.**.*...**..*.*.* +..**.**.*...***........*.* +.*.**..................** +**......................*.** +.****.............**.....* +..***............**.**....** +..................**** +...................** +#P -100 -79 +......................*..* +.....................* +....**...............*...* +.**..................**** +**..*.* +.**.*.*......** +..*...**....**** +...**.***.....*...*....*** +....**.......***..** +......*.**.*.*......***.** +....***.....*...*.* +....***.**...**..*.....* +......*..**.**.*...*..*.* +..**.**.*...*** +.*.**...................* +**....................*..* +.****................* +..***................*...* +.....................**** +#P -100 -55 +................................* +..............................*..* +....** +.**.........................**.** +**..*.*......................*.** +.**.*.*......**..........***.*.*** +..*...**....****........**.*.*.*.** +...**.***.....*...*........*.*...* +....**.......***..**...***.*.**...* +......*.**.*.*......***.**.* +....***.....*...*.*......*..*..* +....***.**...**..*......**..*...* +......*..**.**.*...*..*.*.*.*.*.*** +..**.**.*...***.........*.*.*.*..*.* +.*.**....................*..*.* +**........................***.* +.****.......................*....* +..***........................**..* +...............................** +#P -100 -23 +......................** +.....................**** +....**..............**.** +.**..................** +**..*.* +.**.*.*......**..........*...* +..*...**....****........*** +...**.***.....*...* +....**.......***..**...***..** +......*.**.*.*......***.** +....***.....*...*.*......* +....***.**...**..*......**** +......*..**.**.*...*..*.*..* +..**.**.*...***.........*...* +.*.**....................*.* +**....................***** +.****................**** +..***...............**.** +.....................** +#P -100 1 +......................** +.....................**** +....**..............**.** +.**..................** +**..*.* +.**.*.*......**..........*...* +..*...**....****........*** +...**.***.....*...* +....**.......***..**...***..*.* +......*.**.*.*......***.**...**.* +....***.....*...*.*......* +....***.**...**..*......****..*.* +......*..**.**.*...*..*.*..* +..**.**.*...***.........*...* +.*.**....................*.* +**....................***** +.****................**** +..***...............**.** +.....................** +#P -100 27 +....** +.**.......................**.* +**..*.*................****...* +.**.*.*......**......** +..*...**....****.....**..**...* +...**.***.....*...*.*....*..** +....**.......***..**.*..* +......*.**.*.* +....***.....*...*.*...*.** +....***.**...**..*...**....* +......*..**.**.*...*.*..**.* +..**.**.*...***.....**.***.* +.*.**.................*.....* +**.....................***..* +.****....................*..* +..*** +#P -100 51 +....** +.**.......................**.* +**..*.*................****...* +.**.*.*......**......** +..*...**....****.....**..**...* +...**.***.....*...*.*....*......**..* +....**.......***..**.*..*......*.** +......*.**.*.*...............*...**** +....***.....*...*.*...*.**...**.* +....***.**...**..*...**....*...**.*** +......*..**.**.*...*.*..**.*.....** +..**.**.*...***.....**.***.*.....** +.*.**.................*.....* +**.....................***..* +.****....................*..* +..*** +#P -100 74 +.......................................................**..........** +....**................................................*****..........* +.**.......................**.*........................*....*....*** +**..*.*................****...*...........*..........*.***...*.**** +.**.*.*......**......**.............*...**.*........**.*...*.*.* +..*...**....****.....**..**...*....*....*...*......**..*.** +...**.***.....*...*.*....*....*...**.....*.*.....*..*.*....*.** +....**.......***..**.*..*......**.***...**.*.**..*..*.*.**....** +......*.**.*.*...............*.**..*.***.*.*....*.*.*.*....*..** +....***.....*...*.*...*.**...**..*........*.*...**.*.*.*...*.** +....***.**...**..*...**....*.........**.*.*.*..***.*.*.*..*..*.* +......*..**.**.*...*.*..**.*......*******.*.*......*.*.*..**..** +..**.**.*...***.....**.***.*.......**....*.........**.*.**..*.*.** +.*.**.................*.....*.......*....*...*......*.*....*.*.*.* +**.....................***..*............*..*.........*.**.....**.** +.****....................*..*........................**.**.*.....* +..***.................................................**..........**.* +...................................................................*.* +#P -44 -79 +..........*..* +.........* +....**...*...* +.**......**** +**..*.* +.**.*.*......** +..*...**....*** +...**.***.....** +....**.......* +......*.**.*.*.* +....***.....*.* +....***.**...** +......*..**.**.* +..**.**.*...** +.*.** +**........* +.****....* +..***....*...* +.........**** +#P -44 -55 +..........* +.........* +....**..**..****........** +.**......***....**.....**.**** +**..*.*...**...**..*....****** +.**.*.*....*.....*.......**** +..*...**...****** +...**.***............** +....**.......**.*****.....* +......*.**.*.**.*******.** +....***.....**.*.........** +....***.**....*.....*.**.* +......*..**.*....**.**.....* +..**.**.*....********* +.*.**.......*.....* +**...........***.***....** +.****....**.*.....*....**.**** +..***...**.**...**......****** +.........****............**** +..........* +#P -44 -31 +..........* +.........*...............*** +....**..**..****........***** +.**......***....**.....**.*** +**..*.*...**...**..*....** +.**.*.*....*.....* +..*...**...****** +...**.***............**....* +....**.......**.*****.....* +......*.**.*.**.*******.** +....***.....**.*.........** +....***.**....*.....*.**.** +......*..**.*....**.** +..**.**.*....********* +.*.**.......*.....*......*** +**...........***.***....***** +.****....**.*.....*....**.*** +..***...**.**...**......** +.........**** +..........* +#P -44 -7 +..........*...............*...* +.........*...............**..*.* +....**..**..****........**.** +.**......***....**.......***..*...** +**..*.*...**...**..*........*.**.**.** +.**.*.*....*.....*.........*..*..***** +..*...**...******......*.**..**.***** +...**.***............*...*.......* +....**.......**.*****.**.*....**.* +......*.**.*.**.******.*.*.....** +....***.....**.*........*......*** +....***.**....*.....*.*.*.**...* +......*..**.*....**.**.**.....* +..**.**.*....*********...*....*** +.*.**.......*.....*........*.* +**...........***.***......**.*.*.***** +.****....**.*.....*......**..*....**** +..***...**.**...**......**...*.....** +.........****............*..**..* +..........*...............*....* +#P -44 17 +..........* +.........* +....**..**..**** +.**......***....** +**..*.*...**...**..*...............** +.**.*.*....*.....*.......**.**....*...* +..*...**...******......*...***....*..* +...**.***............*...*.*....* +....**.......**.*****.**......*.** +......*.**.*.**.******.*.....* +....***.....**.*.........*....*...* +....***.**....*.....*.*......**...* +......*..**.*....**.**.*...*.*..* +..**.**.*....*********..**..*.*..** +.*.**.......*.....*.......*........*** +**...........***.***................** +.****....**.*.....* +..***...**.**...** +.........**** +..........* +#P 4 -78 +............* +....**....*..* +.**.......* +**..*.*...*.*** +.**.*.*.*..* +..*...***..* +...**.** +....** +......*..** +....*** +....***.* +......*.** +..**.**..*.* +.*.**.......*.* +**......*......* +.****....**..* +..***......** +#P 4 -54 +............*............** +....**....*..*..........**.**.* +.**.......*........****.***.*..* +**..*.*...*.****..*............*.* +.**.*.*.*..*...*....*....**.*.*.*..* +..*...***..*....*.*.****.*...**.....* +...**.**.............****.**..**.* +....**................*...........*** +......*..**................**..*..** +....***......................*....** +....***.*.............*....*.*....*** +......*.**..........**....**.*......* +..**.**..*.*.....*..**..*...*....** +.*.**.......*.*.**..***.***....*.* +**......*.......*...*..*...*** +.****....**..*.*....*.*.***.*....* +..***......**.......*.*.*.......* +.........................***** +..........................** +#P 4 -30 +............*............** +....**....*..*..........**.**.* +.**.......*........****.***.*..* +**..*.*...*.****..*............* +.**.*.*.*..*...*....*....**.*.* +..*...***..*....*.*.****.*...** +...**.**.............****.**..**..** +....**................*..........* +......*..**................**..*..*.* +....***......................* +....***.*.............*....*.*...** +......*.**..........**....**.*....* +..**.**..*.*.....*..**..*...* +.*.**.......*.*.**..***.***.....* +**......*.......*...*..*...***...* +.****....**..*.*....*.*.***.*...* +..***......**.......*.*.* +.........................***** +..........................** +#P 4 -7 +.......................** +............*..........** +....**....*..*......** +.**.......*........*..**.* +**..*.*...*.****.*.*..*.* +.**.*.*.*..*...***.**.*.*.*.*..** +..*...***..*.....*...*.*..**...** +...**.**..........***..*.*.*...* +....**..............**.**....** +......*..**...........*......*** +....***..............*...*...*.* +....***.*............**...*...**** +......*.**.........**.*.*...*..** +..**.**..*.*.....**...*.*.**.*** +.*.**.......*.*.*.*.**.*.**.....* +**......*.......*.*....*.* +.****....**..*.*...**..*.* +..***......**.......*** +......................**.* +.......................*.* +#P 4 18 +............* +....**....*..*.....* +.**.......*.......*.** +**..*.*...*.****.*....*..**.......**.* +.**.*.*.*..*...***....***...*....**...* +..*...***..*.....*.*.*..***.*....** +...**.**..........**.*.........*....** +....**...............*...***.*.* +......*..**..........**..* +....***..............** +....***.*...........*.**.***..*.* +......*.**.........**.****..*.*..*.* +..**.**..*.*.....**.*....**.....**** +.*.**.......*.*.*.*..***...*.....*...* +**......*.......*.*....**..........* +.****....**..*.*..*...*............* +..***......**......*..* +#P 4 41 +........................*..* +............*..........* +....**....*..*......*..*...* +.**.......*........*...**** +**..*.*...*.****.*.*..* +.**.*.*.*..*...***...* +..*...***..*.....*...* +...**.**..........*..*.* +....**.............***.* +......*..**..........*.* +....***...............* +....***.*..........**.*.** +......*.**........*...* +..**.**..*.*.....** +.*.**.......*.*.*.*......* +**......*.......*.*........* +.****....**..*.*...*** +..***......**.......*.*....* +.......................**** +#P 4 66 +............*................*** +....**....*..*.....**** +.**.......*.......*...*.....****.* +**..*.*...*.****.*.*.*.**.*.* +.**.*.*.*..*...***...*....* +..*...***..*.....*..* +...**.**..........*.* +....**.............* +......*..** +....*** +....***.*...........* +......*.**........*...* +..**.**..*.*.....**....* +.*.**.......*.*.*.*......*.* +**......*.......*.**.**..*.....* +.****....**..*.*...*........*..** +..***......**.......*..*....**.** +....................*..*......*.* +#P 62 -55 +....................*.* +............*....****.*** +....**....*..*...**..**.** +.**.......*..........*.*** +**..*.*...*.***.**.*..* +.**.*.*.*..*...**....** +..*...***..**...****.* +...**.**...........*.** +....** +......*..** +....*** +....***.* +......*.**........*.** +..**.**..*.**...***.* +.*.**..........*....*.* +**......*....*.*.**.*..* +.****....**..*.*.*...** +..***......**....**..**..** +..................***.* +....................*.* +#P 60 -31 +....................*.* +............*....****.*** +....**....*..*...**..**.** +.**.......*..........*.*** +**..*.*...*.***.**.*..*..*.***** +.**.*.*.*..*...**....**...*.....* +..*...***..**...****.*....* +...**.**...........*.**....*....* +....**.......................** +......*..** +....*** +....***.* +......*.**........*.** +..**.**..*.**...***.*.....****** +.*.**..........*....*.*...*.....* +**......*....*.*.**.*..*..* +.****....**..*.*.*...**.....*...* +..***......**....**..**.......* +..................***.* +....................*.* +#P 60 -7 +....................*.* +............*....****.*** +....**....*..*...**..**.** +.**.......*..........*.*** +**..*.*...*.***.**.*..*..*.** +.**.*.*.*..*...**....**...*..*.*** +..*...***..**...****.*....*.....**..* +...**.**...........*.**....**.*.**...* +....**........................*.**..* +......*..**....................* +....***.......................** +....***.*....................*** +......*.**........*.**......*.....*** +..**.**..*.**...***.*.....**...*..*** +.*.**..........*....*.*...*....**** +**......*....*.*.**.*..*..*.**...* +.****....**..*.*.*...** +..***......**....**..** +..................***.* +....................*.* +#P 60 17 +....................*.* +............*....****.*** +....**....*..*...**..**.**.........** +.**.......*..........*.***........*...* +**..*.*...*.***.**.*..*..*.**.....*..* +.**.*.*.*..*...**....**...*..*.** +..*...***..**...****.*....*.....*.* +...**.**...........*.**....**.*.** +....**........................*.** +......*..**....................* +....***.......................** +....***.*....................*** +......*.**........*.**......* +..**.**..*.**...***.*.....**...** +.*.**..........*....*.*...*....*** +**......*....*.*.**.*..*..*.**...** +.****....**..*.*.*...**............*** +..***......**....**..**.............** +..................***.* +....................*.* +#P 108 -78 +............*...............* +....**....*..*...****....****...*..* +.**.......*....*......*.*.*....* +**..*.*...*.***.*....**........*...* +.**.*.*.*..*...**..*....**.*...**** +..*...***..**...**.*.**.** +...**.**.............**.**..** +....**............**.........*** +......*..**.......**........* +....***...........*..*.......*.* +....***.*.........*..........*.* +......*.**.............**....** +..**.**..*.**...**..****...****.*..* +.*.**..........*...*.....*.**..* +**......*....*.*.*...***.*.**..*...* +.****....**..*.***...*.***.*...**** +..***......**....*........** +...................**.....** +#P 108 -55 +..................................** +............*...............*....* +....**....*..*...****......**.**.* +.**.......*....*......*..*..* +**..*.*...*.***.*....**..*....*.* +.**.*.*.*..*...**..*....*....** +..*...***..**...**.*.**.**..**..** +...**.**.............**.**..*****....* +....**............**......*..*..*.*.** +......*..**.......**.........*..****** +....***...........*..*....***.***.*.* +....***.*.........*.......*.*.........* +......*.**.............**.**......*...* +..**.**..*.**...**..****..*.*...*** +.*.**..........*...*.....**...**..* +**......*....*.*.*...***.***.*.*..* +.****....**..*.***...*.*.***.*.*.* +..***......**....*...............* +...................**.......*.*..** +.............................*....* +#P 108 -31 +..............................*.* +............*...............*...* +....**....*..*...****......**...***.* +.**.......*....*......*..*..*.*.....* +**..*.*...*.***.*....**..*....**....* +.**.*.*.*..*...**..*....*....** +..*...***..**...**.*.**.**..***....* +...**.**.............**.**..***..* +....**............**......*..*..*.* +......*..**.......**.........*.** +....***...........*..*....***.*.* +....***.*.........*.......*.*...** +......*.**.............**.**....*.* +..**.**..*.**...**..****..*.*....* +.*.**..........*...*.....** +**......*....*.*.*...***.***.**.** +.****....**..*.***...*.*.***.***..**.* +..***......**....*.............*...*.* +...................**.......*.**..* +.............................* +#P 108 -7 +.............................** +............*...............*...* +....**....*..*...****......**....*.** +.**.......*....*......*..*..*.**.* +**..*.*...*.***.*....**..*..*.**.*.** +.**.*.*.*..*...**..*....**......** +..*...***..**...**.*.***....*....*..* +...**.**.............*.....*........* +....**............**...******..* +......*..**.......**..*...**.** +....***...........*..*.*........* +....***.*.........*....****...*.* +......*.**................* +..**.**..*.**...**..*****........*** +.*.**..........*...*.......*...**.* +**......*....*.*.*...****..**.....* +.****....**..*.***...*.**.**.*.**.* +..***......**....*.........*...**.** +...................**.......*.* +.............................* +#P 108 18 +............*..................*.* +....**....*..*...****.........**.* +.**.......*....*......*......**** +**..*.*...*.***.*....**...**..* +.**.*.*.*..*...**..*...*...*.* +..*...***..**...**.*.*****..*....** +...**.**.............**....*.....** +....**............**.......*...**.*** +......*..**.......**..**.....**.* +....***...........*..*.......*...**** +....***.*.........*.....*......*.** +......*.**............*.**.*....**..* +..**.**..*.**...**..**...*....* +.*.**..........*...*..*.*** +**......*....*.*.*...****..** +.****....**..*.***...*.**....* +..***......**....*............*.** +...................**..........* +#P 108 41 +...............................* +............*..............**....* +....**....*..*...****....** +.**.......*....*......*..**......* +**..*.*...*.***.*....**...******* +.**.*.*.*..*...**..*...* +..*...***..**...**.*.****.* +...**.**.............**..*..* +....**............**.......**.*.* +......*..**.......**..**..***.*.*** +....***...........*..*...*.......* +....***.*.........*.....**.*.**...* +......*.**............*.*..* +..**.**..*.**...**..**..* +.*.**..........*...*..*..........* +**......*....*.*.*...**** +.****....**..*.***...*.****......* +..***......**....*.........****** +...................**......* +#P 108 65 +...............................* +............*..............**....* +....**....*..*...****....** +.**.......*....*......*..**......* +**..*.*...*.***.*....**...******* +.**.*.*.*..*...**..*...* +..*...***..**...**.*.****.* +...**.**.............**..*..* +....**............**.......**.* +......*..**.......**..**..***.* +....***...........*..*...* +....***.*.........*.....**.*.** +......*.**............*.*..* +..**.**..*.**...**..**..* +.*.**..........*...*..*..........* +**......*....*.*.*...**** +.****....**..*.***...*.****......* +..***......**....*.........****** +...................**......* diff --git a/programs/demos/life2/lif/AQUA50FN.lif b/programs/demos/life2/lif/AQUA50FN.lif new file mode 100644 index 000000000..5e7ac6733 --- /dev/null +++ b/programs/demos/life2/lif/AQUA50FN.lif @@ -0,0 +1,668 @@ +#Life 1.05 +#D c/2 flipper spaceships with narrow necks +#D By Hartmut Holzwart. +#D +#D These all have narrow necks. +#N +#P -157 -63 +..........** +.**......**.**** +**.***....****** +.****..*...****** +..**...........*.* +....*...*......* +.....*.*.......*.*.* +.....*.*.*****..**.*..* +.....*..*.......*.***.* +..........*..* +....***....*....** +.....*........** +.** +**.**.*...** +.*****...**.**** +..***.....****** +...........**** +#P -157 -40 +..........** +.........**.**..............*.**.* +.**.......****.........*.*.*.* +**.***.....**..............*.** +.****..*.......**.*.*.**...*.*** +..**...........**.*.**.*.....*.** +....*...*...*****...**..**....** +.....*.*......*...**............* +.....*.*.***.*..* +.....*..*.......*...* +..........*.*...*...*** +....***....*.*...*.******.....*** +.....*.........****......*....*.* +.**............*......*......*..** +**.**.*...............**.*.**...** +.*****....**............*..**.*.* +..***....**.**..............**** +..........****................* +...........** +#P -157 -9 +..........** +.........****.......* +........**.**.....****.* +.**......**......*....*...* +**.***..........**.**.*.* +.****..*.........**.*.*...** +..**......**.**...**...*..* +....*...*.**.**...***..*..* +.....*.*...*..**.....*.*.* +.....*.*.*.*.***.*...*.*.*.*..* +.....*..*.*.*...*.....*.*.**.* +..........*..*....***.*.*.*.* +....***...*.**....**.*..* +.....*....**........**..* +.**........*....*...** +**.**.*...**....**..**.**.*.* +.*****...****....**....**..* +..***...**.**.....***..* +.........**............* +#P -157 15 +..........** +.........****.......*.........** +........**.**.....****.*....*....* +.**......**......*....*...* +**.***..........**.**.*.*...*....* +.****..*.........**.*.*...**.**** +..**......**.**...**...*..* +....*...*.**.**...***..*..* +.....*.*...*..**.....*.*.* +.....*.*.*.*.***.*...*.*.*.*..* +.....*..*.*.*...*.....*.*.**.* +..........*..*....***.*.*.*.* +....***...*.**....**.*..* +.....*....**........**..*....*...* +.**........*....*...** +**.**.*...**....**..**.**.*......* +.*****...****....**....**..****** +..***...**.**.....***..* +.........**............* +#P -157 48 +..........**** +..........*...* +.**.......* +**.***.....*..* +.****..*.....* +..** +....*...*....**.* +.....*.*..*..*** +.....*.*.*.*..** +.....*..*.*** +..........** +....***......*** +.....*........** +.** +**.**.* +.*****....**** +..***.....*...* +..........* +...........*..* +#P -109 -57 +.........................* +.......................*..*......*.* +..............**...............*.* +.**..........*****...**.**....*...* +**.***.......*..***.*.*.**...*.*.*** +.****..*....*.**....*.*.**.*.*..*** +..**.......**.*...*...**.***..*..** +....*...*.**..*.*.........*...* +.....*.*...*.*.*.*.*.**.....*.* +.....*.*.*.*.*.*.*......*..* +.....*..*.*.*.*.*.*.*.*.*.**** +..........*.*.*.*....***.*..*..* +....***...**.*.*.*.*..*.**.*.....* +.....*.....*.*.*...*..*.**..*....* +.**..........*.**.**.*......* +**.**.*.....**.**..*.*.*.....**.** +.*****.......**....*.*....*...***..* +..***.................**..*......*** +........................**.......* +#P -109 -24 +.........**** +.........*...*....**** +.**......*.......****** +**.***....*..*..******* +.****..*....* +..**.........** +....*...*..**.** +.....*.*....*.* +.....*.*.*..*.*.*.* +.....*..*.**.*.** +.........*.*.*.*.* +....***.....**..* +.....*......*..***.*** +.**...........**.****** +**.**.*.........**.**** +.*****...****....** +..***....*...* +.........* +..........*..* +#P -86 -24 +.........*...** +......***..** +.....****......* +.....*....**.* +....*.**.**.* +...**.*.** +.**.*...** +.**.*...* +*....*...*.* +**.*....* +.*.*..*..* +..**.* +...*.*.** +.....*.**....* +....**.***.*.* +.....**..* +.......**..***.* +.........*...*.* +#P -109 -1 +.............................** +................**..........* +...............**.**.......*.** +.**.............****....**.* +**.***...........*****.....** +.****..*............*.***...*.*.** +..**........**.....*..*.*.*.*...** +....*...*..**.**.*.*....*.......* +.....*.*....*.**...*.**.*.**.* +.....*.*.*..*....*.*..***.* +.....*..*.**.*...*..*....** +.........*.*.*.*...**....*.** +....***.....*....*.......*.*.* +.....*......*****..**....*.**.*.* +.**..........**.....*....*.....*.* +**.**.*...............*****...**.* +.*****..........**........*...** +..***..........**.**.......**.* +................****........*** +.................** +#P -109 23 +......................*....* +.....................*..*** +....................**.....* +.**..................*** +**.***................*..**..** +.****..*................**...*** +..**........**...******.**...*** +....*...*..**.**..........*...** +.....*.*....*.**.........**....*...* +.....*.*.*..*....*....*.*.*.*..*...*..* +.....*..*.**.*..............*.***..*..* +.........*.*.*.*.**.**.....**..****.* +....***.....*....*.*..****.**....** +.....*......*****.......**..* +.**..........**....*.....*.** +**.**.*................**.*** +.*****...............*..*...* +..***...............**..* +.....................****...* +......................*...*.* +#P -53 -57 +...........*..* +..........* +..........*...*...........***...* +.**.......****............**..*.* +**.***...........*..*...**.**.*** +.****..*........**..*.**.*...*.** +..**..........***.*.*.*.....*....**** +....*...*.....*......**....*......** +.....*.*.....*.............*......*.* +.....*.*.*........**.*.*..*...**..** +.....*..*.***.*....*...*.***......*** +.........*.**..*........*.**** +....***.......***...*..*...*.*...** +.....*........***...**..*.....*...*** +.**.............**.*.*.**.*...*..*.** +**.**.*....*..*...*...*.*.*.***..** +.*****....*..............***.**.*** +..***.....*...*.............*...** +..........****..............* +#P -53 -32 +..........*..* +.........* +.........*...*............***...* +.**......****.............**..*.* +**.***...........*..*...**.**.*** +.****..*........**..*.**.*...*.** +..**..........***.*.*.*.....*....**** +....*...*.....*......**....*......** +.....*.*.....*.............*......*.* +.....*.*.*........**.*.*..*...**..** +.....*..*.***.*....*...*.***......*** +.........*.**..*........*.**** +....***.......***...*..*...*.*...** +.....*........***...**..*.....*...*** +.**.............**.*.*.**.*...*..*.** +**.**.*...*..*....*...*.*.*.***..** +.*****...*...............***.**.*** +..***....*...*..............*...** +.........****...............* +#P -53 0 +.............** +...........*....* +..........* +.**.......*.....* +**.***....****** +.****..* +..**................*.* +....*...*.....*.*.*.**..* +.....*.*.....***** +.....*.*.*............*..* +.....*..*.***..*.......*.* +.........*.**....**...* +....***.......**.****.* +.....*..........*...*.* +.**........*....* +**.**.*...* +.*****....*.....* +..***.....****** +#P -53 26 +..........******....****** +.**.......*.....*...*.....* +**.***....*.....*...* +.****..*...*.........*....* +..**...........****....** +....*...*.....***..* +.....*.*..........***.* +.....*.*.*...*...***.* +.....*..*.***..*.......* +.........*.**.****...** +....***.......**.** +.....*.........** +.** +**.**.*...*******...****** +.*****....*.........*.....* +..***.....*.........* +...........*....*....*....* +.............**........** +#P 11 -55 +.......................****** +.**....................*.....* +**.***.................* +.****..*........*.......* +..**...........**.........** +....*...*.....****..........**..* +.....*.*.........*****.****.**.* +.....*.*.*...*....**....***..*.....* +.....*..*.***..*.**.*.**...*..*.**** +.........*.**.***...**........*.** +....***.......**....**......*** +.....*.........*.............** +.**.............* +**.**.*................****** +.*****.................*.....* +..***..................* +........................*....* +..........................** +#P 11 -30 +.**.......................**.* +**.***...................*...*......* +.****..*........*........*........** +..**...........**........**..*..***.* +....*...*.....****...........*.** +.....*.*.........*****.....*...** +.....*.*.*...*....**...*...*....*** +.....*..*.***..*.**.*.****......*.* +.........*.**.***...**........* +....***.......**....**....**...* +.....*.........*.........*.**...*.*.* +.**.............*........*......*.** +**.**.*..................****.......* +.*****......................* +..*** +#P 11 -9 +.........................*.** +.......................******.......* +......................*......*.....*** +.**...................*..*.*.....** +**.***................***.*.*....** +.****..*........*........*.**....** +..**...........**.........**.....** +....*...*.....****.......*...****.* +.....*.*.........*****..*.*...*.*.*.* +.....*.*.*...*....**...*....*.*.*.* +.....*..*.***..*.**.*.**.....***.*.*.** +.........*.**.***...**..*.**.....*.* +....***.......**....**....*...*..*.** +.....*.........*..........*.*....**** +.**.............*......*..****.*.*.*** +**.**.*...............*......**..***** +.*****................*..*****....*...* +..***.................**....**.....* +........................***........*..* +..........................*..........* +#P 11 16 +........................* +......................*...* +.**..................* +**.***...............*....*....**.* +.****..*........*....*****....*...* +..**...........**............** +....*...*.....******.......****..**..* +.....*.*.........**.**..**.*....***.*.* +.....*.*.*...*......**..**.* +.....*..*.***..*.***.*.**.**.*....**** +.........*.**.***....*....*.*..*.*.** +....***.......**....****...***.* +.....*.........*....**.....*..*.....* +.**.............*....*.........**.* +**.**.*..............*....*....*.* +.*****...............***** +..*** +#P 67 -86 +.** +**.***...............*..* +.****..*........*....*...* +..**...........**....* +....*...*.....*******.*.* +.....*.*.........**.*.*.* +.....*.*.*...*........*.* +.....*..*.***..*.***.*.* +.........*.**.***...**.*.** +....***.......**.....*.* +.....*.........*....*...* +.**.............*...**.* +**.**.*...............* +.***** +..*** +#P 67 -54 +.** +**.***...............*..***...* +.****..*........*....*....***** +..**...........**....*......** +....*...*.....*******.*.* +.....*.*.........**.*.*.* +.....*.*.*...*........*.* +.....*..*.***..*.***.*.* +.........*.**.***...**.*.** +....***.......**.....*.* +.....*.........*....*...* +.**.............*...**.*..***..** +**.**.*...............*...***.* +.*****....................** +..*** +#P 67 -31 +.................................**.** +.**..............................****** +**.***...............*..***...*.*.***** +.****..*........*....*....*****.** +..**...........**....*......** +....*...*.....*******.*.* +.....*.*.........**.*.*.* +.....*.*.*...*........*.* +.....*..*.***..*.***.*.* +.........*.**.***...**.*.** +....***.......**.....*.* +.....*.........*....*...*.......*.**** +.**.............*...**.*..***..*.****** +**.**.*...............*...***.*..*.**** +.*****....................**....*** +..*** +#P 67 -7 +.................................**.** +.**..............................****** +**.***...............*..***...*.*.***** +.****..*........*....*....*****.** +..**...........**....*......** +....*...*.....*******.*.* +.....*.*.........**.*.*.* +.....*.*.*...*........*.* +.....*..*.***..*.***.*.* +.........*.**.***...**.*.** +....***.......**.....*.* +.....*.........*....*...*.......*.**** +.**.............*...**.*..***..*.****** +**.**.*...............*...***.*..*.**** +.*****....................**....*** +..*** +#P 106 -8 +.........*...** +......***..** +.....****......* +.....*....**.* +....*.**.**.* +...**.*.** +.**.*...** +.**.*...* +*....*...*.* +**.*....* +.*.*..*..* +..**.* +...*.*.** +.....*.**....* +....**.***.*.* +.....**..* +.......**..***.* +.........*...*.* +#P 67 25 +..............................** +.**...........................*** +**.***...............*..***.....* +.****..*........*....*....******** +..**...........**....*......**...* +....*...*.....*******.*.* +.....*.*.........**.*.*.* +.....*.*.*...*........*.* +.....*..*.***..*.***.*.* +.........*.**.***...**.*.** +....***.......**.....*.* +.....*.........*....*...*......** +.**.............*...**.*..***..** +**.**.*...............*...***.**.* +.*****....................**..* +..*** +#P 67 48 +..........................................* +..............................***.......*..* +.**...........................***......*...* +**.***...............*..***......*.*.*.*...* +.****..*........*....*....*******.****.*...* +..**...........**....*......**..*.....*.**.* +....*...*.....*******.*.*.........***......** +.....*.*.........**.*.*.*..........*.......** +.....*.*.*...*........*.*...........*.***.**** +.....*..*.***..*.***.*.*...........*....**...* +.........*.**.***...**.*.**........*..**** +....***.......**.....*.*..........*****..* +.....*.........*....*...*........*....****..** +.**.............*...**.*..***...**.**.*...* +**.**.*...............*...***.**..*.*.*.......* +.*****....................**..*.****...*.* +..***..........................*.*......*.**.* +................................* +#P 131 -56 +................................*......*..* +..............................**.*....* +.**...........................*...**..*...* +**.***...............*..***.*.*.*.....**** +.****..*........*....*....**.*..*.*..* +..**...........**....*......*.*.*...* +....*...*.....*******.*.*....**.*.....*.* +.....*.*.........**.*.*.*.......*..*.*..* +.....*.*.*...*........*.*......*......* +.....*..*.***..*.***.*.*.......*..*.....* +.........*.**.***...**.*.**...**.....**.* +....***.......**.....*.*.....*.*.**..* +.....*.........*....*...*...**.*.*.......* +.**.............*...**.*..**.*.*..*.......* +**.**.*...............*...***..*.*.** +.*****....................**...*.....*....* +..***..........................*...*..**** +...............................* +#P 131 -32 +................................*.........*** +..............................**.* +.**...........................*...**..****...* +**.***...............*..***.*.*.*.....*** +.****..*........*....*....**.*..*.*..*...**.* +..**...........**....*......*.*.*...*.....*.* +....*...*.....*******.*.*....**.* +.....*.*.........**.*.*.*.......*..* +.....*.*.*...*........*.*......* +.....*..*.***..*.***.*.*.......*..* +.........*.**.***...**.*.**...** +....***.......**.....*.*.....*.*.** +.....*.........*....*...*...**.*.*.....**..* +.**.............*...**.*..**.*.*..*..*****..* +**.**.*...............*...***..*.*.****....* +.*****....................**...*.......** +..***..........................*...*....***.** +...............................*.........** +#P 131 -8 +................................*....* +..............................**.*...* +.**...........................*....* +**.***...............*..***.*.*.*.*.***.* +.****..*........*....*....**.*..*.*.** +..**...........**....*......*.*.*.....*** +....*...*.....*******.*.*....**.*......*.* +.....*.*.........**.*.*.*.......*..*...*** +.....*.*.*...*........*.*......*.......***...* +.....*..*.***..*.***.*.*.......*..*....**..*** +.........*.**.***...**.*.**...**..........** +....***.......**.....*.*.....*.*.**...*..** +.....*.........*....*...*...**.*.*....***** +.**.............*...**.*..**.*.*..*......* +**.**.*...............*...***..*.*.*..*.* +.*****....................**...*.*.**.* +..***..........................*...** +...............................*.* +#P 131 25 +...............................***......* +.**...........................*.**.**.*.* +**.***...............*..***.***.*.***....* +.****..*........*....*....**..*.*.*.***....** +..**...........**....*......*.*.*.....*...**** +....*...*.....*******.*.*....**.*.......****** +.....*.*.........**.*.*.*.......*..*..* +.....*.*.*...*........*.*......*.....*..* +.....*..*.***..*.***.*.*.......*..*..*....*** +.........*.**.***...**.*.**...**......*.****** +....***.......**.....*.*.....*.*.**.......**** +.....*.........*....*...*...**.*.*....**** +.**.............*...**.*..**.*.*.* +**.**.*...............*...***..*..*.** +.*****....................**..**.**...* +..***...........................***....** +.................................** +#P 131 48 +...............................**...........*.* +..............................***..........*..* +.**.........................*.*...........** +**.***...............*..***..**..........*....* +.****..*........*....*....***.**..*.....*****.* +..**...........**....*......*.**.*** +....*...*.....*******.*.*...*...*...**.**** +.....*.*.........**.*.*.*...*****.....* +.....*.*.*...*........*.*.....*.*.....***.* +.....*..*.***..*.***.*.*......*..**...***.* +.........*.**.***...**.*.**.***.***** +....***.......**.....*.*....**..**....***** +.....*.........*....*...*....*...* +.**.............*...**.*..**..*..*...*..*****.* +**.**.*...............*...***.....**.....*....* +.*****....................**..............** +..***.........................**...........*..* +..............................**............*.* +#P 187 -56 +..................................*** +. +.**..............................****.* +**.***...............*....****.** +.****..*........*....*...*...**** +..**...........**....*....***..* +....*...*.....*******.*.*..* +.....*.*.........**.*.*.*..* +.....*.*.*...*........*.*.* +.....*..*.***..*.***.*.*.* +.........*.**.***...**.*.*.** +....***.......**.....*.*.* +.....*.........*....*...***.** +.**.............*...**.*..*....* +**.**.*...............*....*..*.....* +.*****.....................*..*..*..** +..***............................**.** +...................................*.* +#P 187 -32 +.......................................*.....*** +...................................*.**.*.**.*** +.**..............................**.***..***.*.*..* +**.***...............*....****.***.......*..**...* +.****..*........*....*...*...****.*******.*..* +..**...........**....*....***..*.......*.* +....*...*.....*******.*.*..*.......**.....*..* +.....*.*.........**.*.*.*..*......**.*....*** +.....*.*.*...*........*.*.*.......**...** +.....*..*.***..*.***.*.*.*..........*..**** +.........*.**.***...**.*.*.**......*.....**..* +....***.......**.....*.*.*........***........* +.....*.........*....*...***.**..........*....** +.**.............*...**.*..*....*..************* +**.**.*...............*....*..*...*......*...*** +.*****.....................*..*...*..*..**......** +..***.............................*..**..*...*.*.* +........................................*....**** +..............................................** +#P 187 -8 +.................................** +.................................**...........* +.**.............................*......**.....*.** +**.***...............*....****.**..**....***.*...* +.****..*........*....*...*...****..**..*...** +..**...........**....*....***..*...*.*.**......* +....*...*.....*******.*.*..*.........*.**...* +.....*.*.........**.*.*.*..*.......*.*.*......* +.....*.*.*...*........*.*.*.......**.*.*.**...* +.....*..*.***..*.***.*.*.*........*...*....*..** +.........*.**.***...**.*.*.**......**.*.*.*...** +....***.......**.....*.*.*.........**.*......* +.....*.........*....*...***.**........*....*** +.**.............*...**.*..*....*.***..*.*.*...* +**.**.*...............*....*..*..**..**.*.....*...* +.*****.....................*..*.**...*...*..***...* +..***...........................**........*.....* +..................................** +#P 187 24 +...............................................*.* +..................................**..........**.* +.**..............................**.**.*.....* +**.***...............*..*.........*.**.....**.** +.****..*........*....*...*......*.*....*.*.*.* +..**...........**....*.........**.*.**..*.*.** +....*...*.....*******.*.*......*.*.*..**..** +.....*.*.........**.*.*.*..***.*.*.*..*..*.* +.....*.*.*...*........*.*...**.*.*.*...*.** +.....*..*.***..*.***.*.*....*.*.*.*....*..** +.........*.**.***...**.*.**..*..*.*.**....** +....***.......**.....*.*.....*..*.*....*.** +.....*.........*....*...*......**..*.** +.**.............*...**.*........**.*...*.*.* +**.**.*...............*..........*.***...*.**** +.*****............................*....*....*** +..***.............................*****..........* +...................................**..........** +#P 187 48 +....................................* +..................................**.*.***.* +.**..............................**.***.*..* +**.***...............*..*.........*.*...***...**.** +.****..*........*....*...*......*.*.*.*.*.******....* +..**...........**....*.........**.*.****..**.* +....*...*.....*******.*.*......*.*.*..*.....*..*.*...* +.....*.*.........**.*.*.*..***.*.*.*..*.......*.*....* +.....*.*.*...*........*.*...**.*.*.*.***.....*.**...*** +.....*..*.***..*.***.*.*....*.*.*.*.*..*......*...*...* +.........*.**.***...**.*.**..*..*.*.*.............* +....***.......**.....*.*.....*..*.*.**.....***....* +.....*.........*....*...*......**..*.**...*****...* +.**.............*...**.*........**.*.*...*.....*..* +**.**.*...............*..........*.*...*........** +.*****............................*.*.**...* +..***.............................***...**** +...................................**...** diff --git a/programs/demos/life2/lif/AQUA50S.lif b/programs/demos/life2/lif/AQUA50S.lif new file mode 100644 index 000000000..0382bec54 --- /dev/null +++ b/programs/demos/life2/lif/AQUA50S.lif @@ -0,0 +1,1206 @@ +#Life 1.05 +#D c/2 symmetrical spaceships +#D By Hartmut Holzwart. +#D +#D One of the front ends came +#D in handy for MAX. +#N +#P -154 -105 +..* +.***** +**...**.* +.*.......* +..**..*.* +. +..**..*.* +.*.......* +**...**.* +.***** +..* +#P -154 -88 +**** +*...* +* +.*..*..** +......*** +.*..*..** +* +*...* +**** +#P -154 -64 +**** +*...* +* +.*..* +. +.*..* +* +*...* +**** +#P -148 -71 +....**** +...****** +..**.**** +...** +. +........* +......* +.....*...* +....**....* +..*..* +.***.*..* +**..**..*..* +.***.*..* +..*..* +....**....* +.....*...* +......* +........* +. +...** +..**.**** +...****** +....**** +#P -154 -37 +.** +**.** +.**** +..** +. +. +. +..** +.**** +**.** +.** +#P -148 -41 +..............*.* +.............*..* +........**..** +.......****........* +.........**.** +.....*.**...*......* +....**.*..*.*.***** +..*..*...*....* +.***.*....*..* +**..** +.***.*....*..* +..*..*...*....* +....**.*..*.*.***** +.....*.**...*......* +.........**.** +.......****........* +........**..** +.............*..* +..............*.* +#P -154 -17 +****.....*..* +*...*...* +*.......*...* +.*..*...**** +. +.....** +.....** +.....** +. +.*..*...**** +*.......*...* +*...*...* +****.....*..* +#P -156 2 +..**** +..*...* +..* +...* +......* +...* +..** +.*.*...* +**..*..* +.**...* +..** +. +..** +.**...* +**..*..* +.*.*...* +..** +...* +......* +...* +..* +..*...* +..**** +#P -141 22 +..**.****** +.****......* +** +.*.........* +..***.* +....* +....* +.....* +....* +....* +..***.* +.*.........* +** +.****......* +..**.****** +#P -156 34 +****** +*.....* +* +.* +......* +...* +..** +.*.*...* +**..*..* +.**...* +..** +. +..** +.**...* +**..*..* +.*.*...* +..** +...* +......* +.* +* +*.....* +****** +#P -148 70 +...* +..*..* +.*...* +* +*..** +* +.*...* +..*..* +...* +#P -152 66 +.*..* +* +*...* +**** +#P -152 79 +**** +*...* +* +.*..* +#P -149 94 +...* +..*..* +.*...* +* +*..** +* +.*...* +..*..* +...* +#P -152 88 +...* +.*...* +* +*....* +***** +#P -152 104 +***** +*....* +* +.*...* +...* +#P -115 -65 +............**** +............*...* +............* +...........**...* +.........****** +.*.......**.* +*.....*...* +*.....**.* +*****.*.* +.......***** +. +.......***** +*****.*.* +*.....**.* +*.....*...* +.*.......**.* +.........****** +...........**...* +............* +............*...* +............**** +#P -115 -40 +........** +.......**.*** +........***** +.........*** +.* +*.....* +*.....***.* +*****.*.*..*.* +........*.*.* +........*.*.** +........*.*.* +*****.*.*..*.* +*.....***.* +*.....* +.* +.........*** +........***** +.......**.*** +........** +#P -115 -17 +.......*..* +......* +......*...* +......**** +............** +.*.........*....** +*.....*..*..*..**.**** +*.....***.*.*.**.***** +*****.*.*.*.*.***.*** +........*.*.*.*.* +........*.*.*.* +........*.*.*.*.* +*****.*.*.*.*.***.*** +*.....***.*.*.**.***** +*.....*..*..*..**.**** +.*.........*....** +............** +......**** +......*...* +......* +.......*..* +#P -115 9 +....................*.* +...........**.....**....* +..........****....**.....** +.*.......*.*.**.*....***.**** +*.....*.**.....*..***.** +*.....***....*......**.*.*.* +*****.*.*..**....*....** +........*.*.*...*......*.* +........*.* +........*.*.*...*......*.* +*****.*.*..**....*....** +*.....***....*......**.*.*.* +*.....*.**.....*..***.** +.*.......*.*.**.*....***.**** +..........****....**.....** +...........**.....**....* +....................*.* +#P -115 30 +........*..*....*..* +.......*.......* +.......*...*...*...* +.......****....**** +. +.............* +.*..........*** +*.....*......*..* +*.....***.**.*.* +*****.*.*..**..** +........*.*.*...* +........*.**....* +........*.*.*...* +*****.*.*..**..** +*.....***.**.*.* +*.....*......*..* +.*..........*** +.............* +. +.......****....**** +.......*...*...*...* +.......*.......* +........*..*....*..* +#P -83 -105 +....................**....**** +..................**...*..*...**.* +..................*....*..*....*.* +...............*.*.*.*.....*..* +................**.*.*.** +.*.......***.**.....*.*..*** +*.....*...**...*.....***.* +*.....***.**..............** +*****.*.*..* +........* +........**.*.* +........* +*****.*.*..* +*.....***.**..............** +*.....*...**...*.....***.* +.*.......***.**.....*.*..*** +................**.*.*.** +...............*.*.*.*.....*..* +..................*....*..*....*.* +..................**...*..*...**.* +....................**....**** +#P -83 -81 +....................**....****...** +..................**...*..*...**...* +..................*....*..*.....* +...............*.*.*.*.....*..**** +................**.*.*.** +.*.......***.**.....*.*..*** +*.....*...**...*.....***.* +*.....***.**..............** +*****.*.*..* +........* +........**.*.* +........* +*****.*.*..* +*.....***.**..............** +*.....*...**...*.....***.* +.*.......***.**.....*.*..*** +................**.*.*.** +...............*.*.*.*.....*..**** +..................*....*..*.....* +..................**...*..*...**...* +....................**....****...** +#P -83 -57 +...................*.* +..................* +..................*..* +...............*.*.**......** +................**...**..*.**** +.*.......***.**.....*...*....*** +*.....*...**...*.....*..*.**..** +*.....***.**..........*.*.*..**...* +*****.*.*..*............*..........*.* +........*................***********.* +........**.*.* +........*................***********.* +*****.*.*..*............*..........*.* +*.....***.**..........*.*.*..**...* +*.....*...**...*.....*..*.**..** +.*.......***.**.....*...*....*** +................**...**..*.**** +...............*.*.**......** +..................*..* +..................* +...................*.* +#P -83 -33 +...................*.* +..................* +..................*..*...............*.* +...............*.*.**......**....**.*.** +................**...**..*.****..**.** +.*.......***.**.....*...*....**.**...* +*.....*...**...*.....*..*.**.***..*** +*.....***.**..........*.*.*...**.*...* +*****.*.*..*............*......*..**.* +........*................*******..**.**.* +........**.*.*...........................* +........*................*******..**.**.* +*****.*.*..*............*......*..**.* +*.....***.**..........*.*.*...**.*...* +*.....*...**...*.....*..*.**.***..*** +.*.......***.**.....*...*....**.**...* +................**...**..*.****..**.** +...............*.*.**......**....**.*.** +..................*..*...............*.* +..................* +...................*.* +#P -83 -9 +...................*.* +..................* +..................*..* +...............*.*.**......** +................**...**..*.****....*** +.*.......***.**.....*...*....**.......* +*.....*...**...*.....*..*.**.***..*...* +*.....***.**..........*.*.*...**.** +*****.*.*..*............*......*......* +........*................*******...**.* +........**.*.* +........*................*******...**.* +*****.*.*..*............*......*......* +*.....***.**..........*.*.*...**.** +*.....*...**...*.....*..*.**.***..*...* +.*.......***.**.....*...*....**.......* +................**...**..*.****....*** +...............*.*.**......** +..................*..* +..................* +...................*.* +#P -83 25 +.....................*..*.*.* +.....................*....*.* +..............**.**..*.....* +.*........***...**.*..*...* +*.....*..**...........*...* +*.....***.*.*..*.......**.* +*****.*.*.*.*..*..........**..* +........*.*...*............**** +........*.* +........*.*...*............**** +*****.*.*.*.*..*..........**..* +*.....***.*.*..*.......**.* +*.....*..**...........*...* +.*........***...**.*..*...* +..............**.**..*.....* +.....................*....*.* +.....................*..*.*.* +#P -83 49 +.....................*..*.*.* +.....................*....*.* +..............**.**..*.....* +.*........***...**.*..*...* +*.....*..**...........*...* +*.....***.*.*..*.......**.* +*****.*.*.*.*..*..........**..* +........*.*...*............**** +........*.* +........*.*...*............**** +*****.*.*.*.*..*..........**..* +*.....***.*.*..*.......**.* +*.....*..**...........*...* +.*........***...**.*..*...* +..............**.**..*.....* +.....................*....*.* +.....................*..*.*.* +#P -52 49 +****** +*.....* +* +..*...* +....* +#P -52 61 +....* +..*...* +* +*.....* +****** +#P -83 73 +.....................*..*.*.* +.....................*....*.* +..............**.**..*.....* +.*........***...**.*..*...* +*.....*..**...........*...* +*.....***.*.*..*.......**.* +*****.*.*.*.*..*..........**..* +........*.*...*............**** +........*.* +........*.*...*............**** +*****.*.*.*.*..*..........**..* +*.....***.*.*..*.......**.* +*.....*..**...........*...* +.*........***...**.*..*...* +..............**.**..*.....* +.....................*....*.* +.....................*..*.*.* +#P -51 76 +..**** +..*...* +.* +****..* +** +. +** +****..* +.* +..*...* +..**** +#P -35 -56 +**** +*...*.......*** +*.......***..*** +.*..*..****..*** +......***.....** +....**....**..*** +...*.**.*.**..*.** +..*......*..*.*.* +..*..*.....*..*.** +..*......*..*.*.* +...*.**.*.**..*.** +....**....**..*** +......***.....** +.*..*..****..*** +*.......***..*** +*...*.......*** +**** +#P -35 -32 +**** +*...*.......*** +*.......***..*** +.*..*..****..*** +......***.....** +....**....**..*** +...*.**.*.**..*.** +..*......*..*.*.* +..*..*.....*..*.** +..*......*..*.*.* +...*.**.*.**..*.** +....**....**..*** +......***.....** +.*..*..****..*** +*.......***..*** +*...*.......*** +**** +#P -16 -32 +.** +**.*** +.***** +..*** +. +. +..**.** +..* +..* +..* +..**.** +. +. +..*** +.***** +**.*** +.** +#P -35 -8 +**** +*...*.......*** +*.......***..*** +.*..*..****..*** +......***.....** +....**....**..*** +...*.**.*.**..*.** +..*......*..*.*.* +..*..*.....*..*.** +..*......*..*.*.* +...*.**.*.**..*.** +....**....**..*** +......***.....** +.*..*..****..*** +*.......***..*** +*...*.......*** +**** +#P -17 -9 +.*.*.......*.* +*.........*.** +*..*....*..............*.* +***.**.*.*.*..........*..* +....**.*.*.**........** +...*...*.*.**..***..*...* +....**.*...**.*....***.* +.....**.....*.*...* +.......*****...********* +. +.......*****...********* +.....**.....*.*...* +....**.*...**.*....***.* +...*...*.*.**..***..*...* +....**.*.*.**........** +***.**.*.*.*..........*..* +*..*....*..............*.* +*.........*.** +.*.*.......*.* +#P -35 16 +**** +*...*.......*** +*.......***..*** +.*..*..****..*** +......***.....** +....**....**..*** +...*.**.*.**..*.** +..*......*..*.*.* +..*..*.....*..*.** +..*......*..*.*.* +...*.**.*.**..*.** +....**....**..*** +......***.....** +.*..*..****..*** +*.......***..*** +*...*.......*** +**** +#P -17 15 +.*.*.......*.*...........*.* +*.........*.**..........*..* +*..*....*..............** +***.**.*.*.*..........*...* +....**.*.*.**........***.* +...*...*.*.**..***..* +....**.*...**.*....******* +.....**.....*.*...*........*.* +.......*****...*************** +. +.......*****...*************** +.....**.....*.*...*........*.* +....**.*...**.*....******* +...*...*.*.**..***..* +....**.*.*.**........***.* +***.**.*.*.*..........*...* +*..*....*..............** +*.........*.**..........*..* +.*.*.......*.*...........*.* +#P -35 40 +**** +*...*.......*** +*.......***..*** +.*..*..****..*** +......***.....** +....**....**..*** +...*.**.*.**..*.** +..*......*..*.*.* +..*..*.....*..*.** +..*......*..*.*.* +...*.**.*.**..*.** +....**....**..*** +......***.....** +.*..*..****..*** +*.......***..*** +*...*.......*** +**** +#P -17 39 +.*.*...................*.* +*.....................*..*.* +*..*....***..........**.....* +***.**.*.**.**......*....*..* +....**.*.*.**...**.*****.*.* +...*...*.* +....**.*********...***.***..* +.....**................***..* +.......************..* +.....................** +.......************..* +.....**................***..* +....**.*********...***.***..* +...*...*.* +....**.*.*.**...**.*****.*.* +***.**.*.**.**......*....*..* +*..*....***..........**.....* +*.....................*..*.* +.*.*...................*.* +#P 21 -63 +*****...........* +*....* +*....*...*..****..*.**...** +.*......*.*......**...* +...**......**.....**...**.* +....**..***.**.*...****.*.....* +....***.*.....*.......*.*.**** +....*** +....***.*.....*.......*.*.**** +....**..***.**.*...****.*.....* +...**......**.....**...**.* +.*......*.*......**...* +*....*...*..****..*.**...** +*....* +*****...........* +#P 21 -40 +..............................**** +*****...........*...........*.....* +*....*.....................** +*....*...*..****..*.**...**.*.....* +.*......*.*......**...*.....**.* +...**......**.....**...**.* +....**..***.**.*...****.*....* +....***.*.....*.......*.*.*** +....*** +....***.*.....*.......*.*.*** +....**..***.**.*...****.*....* +...**......**.....**...**.* +.*......*.*......**...*.....**.* +*....*...*..****..*.**...**.*.....* +*....*.....................** +*****...........*...........*.....* +..............................**** +#P 21 -16 +..............................**** +*****...........*...........*.....**.* +*....*.....................**......*.* +*....*...*..****..*.**...**.*.....* +.*......*.*......**...*.....**.* +...**......**.....**...**.* +....**..***.**.*...****.*....* +....***.*.....*.......*.*.*** +....*** +....***.*.....*.......*.*.*** +....**..***.**.*...****.*....* +...**......**.....**...**.* +.*......*.*......**...*.....**.* +*....*...*..****..*.**...**.*.....* +*....*.....................**......*.* +*****...........*...........*.....**.* +..............................**** +#P 21 7 +.........................................** +..............................****....*.....* +*****...........*...........*.....**.* +*....*.....................**......*.*......* +*....*...*..****..*.**...**.*.....*...****** +.*......*.*......**...*.....**.*.......* +...**......**.....**...**.* +....**..***.**.*...****.*....* +....***.*.....*.......*.*.*** +....*** +....***.*.....*.......*.*.*** +....**..***.**.*...****.*....* +...**......**.....**...**.* +.*......*.*......**...*.....**.*.......* +*....*...*..****..*.**...**.*.....*...****** +*....*.....................**......*.*......* +*****...........*...........*.....**.* +..............................****....*.....* +.........................................** +#P 21 32 +..............................****...** +*****...........*...........*.....**...* +*....*.....................**.......* +*....*...*..****..*.**...**.*.....**** +.*......*.*......**...*.....**.* +...**......**.....**...**.* +....**..***.**.*...****.*....* +....***.*.....*.......*.*.*** +....*** +....***.*.....*.......*.*.*** +....**..***.**.*...****.*....* +...**......**.....**...**.* +.*......*.*......**...*.....**.* +*....*...*..****..*.**...**.*.....**** +*....*.....................**.......* +*****...........*...........*.....**...* +..............................****...** +#P 21 56 +..............................****...** +*****...........*...........*.....**...* +*....*.....................**.......* +*....*...*..****..*.**...**.*.....**** +.*......*.*......**...*.....**.*.........* +...**......**.....**...**.*.............*..* +....**..***.**.*...****.*....*.........*...* +....***.*.....*.......*.*.***.........* +....***...............................*..** +....***.*.....*.......*.*.***.........* +....**..***.**.*...****.*....*.........*...* +...**......**.....**...**.*.............*..* +.*......*.*......**...*.....**.*.........* +*....*...*..****..*.**...**.*.....**** +*....*.....................**.......* +*****...........*...........*.....**...* +..............................****...** +#P 77 -64 +..............................**** +*****...........*...........*.....* +*....*.....................** +*....*...*..****..*.**...**.* +.*......*.*......**...*.....**....*..* +...**......**.....**...**.*.......*..* +....**..***.**.*...****.*....*.***..* +....***.*.....*.......*.*.***....** +....*** +....***.*.....*.......*.*.***....** +....**..***.**.*...****.*....*.***..* +...**......**.....**...**.*.......*..* +.*......*.*......**...*.....**....*..* +*....*...*..****..*.**...**.* +*....*.....................** +*****...........*...........*.....* +..............................**** +#P 77 -40 +..............................**** +*****...........*...........*.....* +*....*.....................** +*....*...*..****..*.**...**.*.......*.* +.*......*.*......**...*.....**....** +...**......**.....**...**.*.......**..* +....**..***.**.*...****.*....*.***...* +....***.*.....*.......*.*.***....*** +....*** +....***.*.....*.......*.*.***....*** +....**..***.**.*...****.*....*.***...* +...**......**.....**...**.*.......**..* +.*......*.*......**...*.....**....** +*....*...*..****..*.**...**.*.......*.* +*....*.....................** +*****...........*...........*.....* +..............................**** +#P 77 -15 +*****...........* +*....* +*....*...*..****..*.**...**..**.**** +.*......*.*......**...*......******** +...**......**.....**...**.*..******** +....**..***.**.*...****.*...* +....***.*.....*.......*.*.** +....*** +....***.*.....*.......*.*.** +....**..***.**.*...****.*...* +...**......**.....**...**.*..******** +.*......*.*......**...*......******** +*....*...*..****..*.**...**..**.**** +*....* +*****...........* +#P 77 9 +*****...........*....................* +*....*.....................**...***...* +*....*...*..****..*.**.....***.***** +.*......*.*......**...*....*........** +...**......**.....**...*****..*...* +....**..***.**.*...****.*.**......* +....***.*.....*.......*.*.*....** +....***........................*** +....***.*.....*.......*.*.*....** +....**..***.**.*...****.*.**......* +...**......**.....**...*****..*...* +.*......*.*......**...*....*........** +*....*...*..****..*.**.....***.***** +*....*.....................**...***...* +*****...........*....................* +#P 77 39 +.......................* +.....................*.* +*****...........*..**.* +*....*............* +*....*...*..****....* +.*......*.*......**.** +...**......**.....* +....**..***.**.*...*..** +....***.*.....*.....*.** +....*** +....***.*.....*.....*.** +....**..***.**.*...*..** +...**......**.....* +.*......*.*......**.** +*....*...*..****....* +*....*............* +*****...........*..**.* +.....................*.* +.......................* +#P 77 63 +.......................* +.....................*.* +*****...........*..**.* +*....*............* +*....*...*..****....* +.*......*.*......**.** +...**......**.....* +....**..***.**.*...*..** +....***.*.....*.....*.** +....*** +....***.*.....*.....*.** +....**..***.**.*...*..** +...**......**.....* +.*......*.*......**.** +*....*...*..****....* +*....*............* +*****...........*..**.* +.....................*.* +.......................* +#P 102 63 +.......*....** +.......**...*** +..*......*.*..** +.******..*......*** +**.**....*..*....** +.*..*....* +...**....* +...*..* +.......*** +......* +.......*** +...*..* +...**....* +.*..*....* +**.**....*..*....** +.******..*......*** +..*......*.*..** +.......**...*** +.......*....** +#P 133 -83 +........** +.......***** +....*.* +..***.**.** +.*........* +**.**.** +.**.*.*...** +..*.*.*.*.* +...**.*.*.** +......* +.....* +.....* +......* +...**.*.*.** +..*.*.*.*.* +.**.*.*...** +**.**.** +.*........* +..***.**.** +....*.* +.......***** +........** +#P 133 -51 +........** +.......**** +....*.* +..***.**.** +.*........* +**.**.** +.**.*.*...** +..*.*.*.*.* +...**.*.*.** +......* +.....* +.....* +......* +...**.*.*.** +..*.*.*.*.* +.**.*.*...** +**.**.** +.*........* +..***.**.** +....*.* +.......**** +........** +#P 145 -51 +**.** +. +*...* +.** +#P 145 -33 +.** +*...* +. +**.** +#P 133 -19 +........** +.......***** +....*.* +..***.**.** +.*........* +**.**.** +.**.*.*...** +..*.*.*.*.* +...**.*.*.** +......* +.....* +.....* +......* +...**.*.*.** +..*.*.*.*.* +.**.*.*...** +**.**.** +.*........* +..***.**.** +....*.* +.......***** +........** +#P 146 -19 +..* +.*****.* +......** +***.*.*........*** +..**..*...***.**** +....**.*..**..** +......**.*.*.*...* +.......*.*..*.**** +........*..** +.........** +. +. +.........** +........*..** +.......*.*..*.**** +......**.*.*.*...* +....**.*..**..** +..**..*...***.**** +***.*.*........*** +......** +.*****.* +..* +#P 133 13 +........** +.......***** +....*.* +..***.**.** +.*........* +**.**.** +.**.*.*...** +..*.*.*.*.* +...**.*.*.** +......* +.....* +.....* +......* +...**.*.*.** +..*.*.*.*.* +.**.*.*...** +**.**.** +.*........* +..***.**.** +....*.* +.......***** +........** +#P 146 13 +..* +.*****.* +......** +***.*.*........*** +..**..*...***.**** +....**.*..**..** +......**.*.*.*...* +.......*.*..*.**** +........*..** +.........** +. +. +.........** +........*..** +.......*.*..*.**** +......**.*.*.*...* +....**.*..**..** +..**..*...***.**** +***.*.*........*** +......** +.*****.* +..* +#P 166 15 +....** +...**.*** +....***** +.....*** +** +..*** +*....* +** +. +. +** +*....* +..*** +** +.....*** +....***** +...**.*** +....** +#P 133 45 +........** +.......***** +....*.* +..***.**.** +.*........* +**.**.** +.**.*.*...** +..*.*.*.*.* +...**.*.*.** +......* +.....* +.....* +......* +...**.*.*.** +..*.*.*.*.* +.**.*.*...** +**.**.** +.*........* +..***.**.** +....*.* +.......***** +........** +#P 146 45 +..* +.*****.* +......** +***.*.*........*** +..**..*...***.**** +....**.*..**..** +......**.*.*.*...* +.......*.*..*.**** +........*..** +.........** +. +. +.........** +........*..** +.......*.*..*.**** +......**.*.*.*...* +....**.*..**..** +..**..*...***.**** +***.*.*........*** +......** +.*****.* +..* +#P 166 45 +...*..* +..* +..*...* +..**** +. +. +** +..******** +*.........* +** +. +. +** +*.........* +..******** +** +. +. +..**** +..*...* +..* +...*..* +#P 133 77 +........** +.......***** +....*.* +..***.**.** +.*........* +**.**.** +.**.*.*...** +..*.*.*.*.* +...**.*.*.** +......* +.....* +.....* +......* +...**.*.*.** +..*.*.*.*.* +.**.*.*...** +**.**.** +.*........* +..***.**.** +....*.* +.......***** +........** +#P 146 77 +..* +.*****.* +......** +***.*.*........*** +..**..*...***.**** +....**.*..**..** +......**.*.*.*...* +.......*.*..*.**** +........*..** +.........** +. +. +.........** +........*..** +.......*.*..*.**** +......**.*.*.*...* +....**.*..**..** +..**..*...***.**** +***.*.*........*** +......** +.*****.* +..* +#P 166 83 +.** +.* +**.* +....* +.*..* +.*..* +....* +**.* +.* +.** diff --git a/programs/demos/life2/lif/AQUA50SB.lif b/programs/demos/life2/lif/AQUA50SB.lif new file mode 100644 index 000000000..5fa978228 --- /dev/null +++ b/programs/demos/life2/lif/AQUA50SB.lif @@ -0,0 +1,645 @@ +#Life 1.05 +#D c/2 symmetrical spaceships, "B" front end +#D By Hartmut Holzwart. +#N +#P -144 -70 +.....................................** +.................**.................**** +.**.............**.**..............**.** +**.***...........****...............** +.*****............**.............** +..***....*.........**.......*....** +.........*..*.....*****...**..*.*.....* +......**..***.....******.*.*.***.** +.....**........**........*.*..*..* +.....****....*.*.......*.*...** +.....*.*.*..*...***......*...**..**....* +.....*.*.*..*...***......*...**..**....* +.....****....*.*.......*.*...** +.....**........**........*.*..*..* +......**..***.....******.*.*.***.** +.........*..*.....*****...**..*.*.....* +..***....*.........**.......*....** +.*****............**.............** +**.***...........****...............** +.**.............**.**..............**.** +.................**.................**** +.....................................** +#P -144 -45 +.................**.......** +.**.............**.**....**.** +**.***...........****.....****......** +.*****............**.......**....*** +..***....*.........*...........* +.........*..*.....****.........* +......**..***.....******...**.* +.....**........**.......*....*....*** +.....****....*.*......**.*.....*.***.* +.....*.*.*..*...***...*....*.*......*** +.....*.*.*..*...***...*....*.*......*** +.....****....*.*......**.*.....*.***.* +.....**........**.......*....*....*** +......**..***.....******...**.* +.........*..*.....****.........* +..***....*.........*...........* +.*****............**.......**....*** +**.***...........****.....****......** +.**.............**.**....**.** +.................**.......** +#P -144 -21 +.................**.......**.......*** +.**.............**.**....**.**....***** +**.***...........****.....****...**.*** +.*****............**.......**.....** +..***....*.........*...........* +.........*..*.....****.........* +......**..***.....******...**.*.....** +.....**........**.......*....*....**** +.....****....*.*......**.*.....*.*....* +.....*.*.*..*...***...*....*.*....*....* +.....*.*.*..*...***...*....*.*....*....* +.....****....*.*......**.*.....*.*....* +.....**........**.......*....*....**** +......**..***.....******...**.*.....** +.........*..*.....****.........* +..***....*.........*...........* +.*****............**.......**.....** +**.***...........****.....****...**.*** +.**.............**.**....**.**....***** +.................**.......**.......*** +#P -144 10 +....................................** +.................**......*.*.......*** +.**.............**.**...*.........*** +**.***...........****...*..*....*.*..** +.*****............**....***.**.*.** +..***....*.........***......**.*......* +.........*..*.....*****....*...*.**..** +......**..***.....*****.....**.*.....* +.....**........**............**..**.**.* +.....****....*.*...............***.** +.....*.*.*..*...***.............* +.....*.*.*..*...***.............* +.....****....*.*...............***.** +.....**........**............**..**.**.* +......**..***.....*****.....**.*.....* +.........*..*.....*****....*...*.**..** +..***....*.........***......**.*......* +.*****............**....***.**.*.** +**.***...........****...*..*....*.*..** +.**.............**.**...*.........*** +.................**......*.*.......*** +....................................** +#P -144 34 +.....................................** +.................**......*.*............* +.**.............**.**...*.........* +**.***...........****...*..*....*.......* +.*****............**....***.**.*.*.***** +..***....*.........***......**.*...* +.........*..*.....*****....*...*..* +......**..***.....*****.....**..* +.....**........**............** +.....****....*.*...............*** +.....*.*.*..*...***...........*..* +.....*.*.*..*...***...........*..* +.....****....*.*...............*** +.....**........**............** +......**..***.....*****.....**..* +.........*..*.....*****....*...*..* +..***....*.........***......**.*...* +.*****............**....***.**.*.*.***** +**.***...........****...*..*....*.......* +.**.............**.**...*.........* +.................**......*.*............* +.....................................** +#P -144 59 +.................** +.**.............**.** +**.***...........**** +.*****............**.......* +..***....*.........*.....*** +.........*..*.....******.*.*** +......**..***.....**...*.*.*.** +.....**........**...**.**.**...* +.....****....*.*.....*..*....* +.....*.*.*..*...***...*** +.....*.*.*..*...***...*** +.....****....*.*.....*..*....* +.....**........**...**.**.**...* +......**..***.....**...*.*.*.** +.........*..*.....******.*.*** +..***....*.........*.....*** +.*****............**.......* +**.***...........**** +.**.............**.** +.................** +#P -88 -77 +.............**** +.**..........*...* +**.***.......* +.*****........*..* +..***....*.........**** +.........*..*.....****** +......**..***.....****** +.....**........** +.....****....*.* +.....*.*.*..*...***....* +.....*.*.*..*...***....* +.....****....*.* +.....**........** +......**..***.....****** +.........*..*.....****** +..***....*.........**** +.*****........*..* +**.***.......* +.**..........*...* +.............**** +#P -88 -46 +.....................................** +.............****...................**** +.**..........*...*.................**.** +**.***.......*......................** +.*****........*..*...............** +..***....*.........**.......*....** +.........*..*.....*****...**..*.*.....* +......**..***.....******.*.*.***.** +.....**........**........*.*..*..* +.....****....*.*.......*.*...** +.....*.*.*..*...***......*...**..**....* +.....*.*.*..*...***......*...**..**....* +.....****....*.*.......*.*...** +.....**........**........*.*..*..* +......**..***.....******.*.*.***.** +.........*..*.....*****...**..*.*.....* +..***....*.........**.......*....** +.*****........*..*...............** +**.***.......*......................** +.**..........*...*.................**.** +.............****...................**** +.....................................** +#P -88 -21 +.............****......**** +.**..........*...*.....*...*.....** +**.***.......*.........*........**** +.*****........*..*......*...*..**.** +..***....*.........**...........** +.........*..*.....*****...** +......**..***.....******.*.*.......* +.....**........**........*.*.......* +.....****....*.*.......*.*...*****.* +.....*.*.*..*...***......*.....*..*** +.....*.*.*..*...***......*.....*..*** +.....****....*.*.......*.*...*****.* +.....**........**........*.*.......* +......**..***.....******.*.*.......* +.........*..*.....*****...** +..***....*.........**...........** +.*****........*..*......*...*..**.** +**.***.......*.........*........**** +.**..........*...*.....*...*.....** +.............****......**** +#P -88 10 +........................** +.............****......****....** +.**..........*...*....**.**...**** +**.***.......*.........**....**.** +.*****........*..*............** +..***....*.........* +.........*..*.....**.....** +......**..***.....****.*..*.** +.....**........**......*..** +.....****....*.*....*....* +.....*.*.*..*...***.*..* +.....*.*.*..*...***.*..* +.....****....*.*....*....* +.....**........**......*..** +......**..***.....****.*..*.** +.........*..*.....**.....** +..***....*.........* +.*****........*..*............** +**.***.......*.........**....**.** +.**..........*...*....**.**...**** +.............****......****....** +........................** +#P -88 35 +.............****....**** +.**..........*...*...*...* +**.***.......*.......* +.*****........*..*....*....*...****** +..***....*.........*..........*......* +.........*..*.....**....***..** +......**..***.....****.**.*..**......* +.....**........**......****.......** +.....****....*.*....*....* +.....*.*.*..*...***.*..*.** +.....*.*.*..*...***.*..*.** +.....****....*.*....*....* +.....**........**......****.......** +......**..***.....****.**.*..**......* +.........*..*.....**....***..** +..***....*.........*..........*......* +.*****........*..*....*....*...****** +**.***.......*.......* +.**..........*...*...*...* +.............****....**** +#P -88 58 +......................**.*..* +.............****....*...*.*..............** +.**..........*...*...*.....*.**..........**.** +**.***.......*.......**....*.***...****...**** +.*****........*..*.....*..*...**..*........** +..***....*.........*..............*.* +.........*..*.....**....***......**.*....* +......**..***.....****.**..***.**..**....** +.....**........**......**.****.....*.****** +.....****....*.*....*....**..*.*****...* +.....*.*.*..*...***.*..*.**.....*.** +.....*.*.*..*...***.*..*.**.....*.** +.....****....*.*....*....**..*.*****...* +.....**........**......**.****.....*.****** +......**..***.....****.**..***.**..**....** +.........*..*.....**....***......**.*....* +..***....*.........*..............*.* +.*****........*..*.....*..*...**..*........** +**.***.......*.......**....*.***...****...**** +.**..........*...*...*.....*.**..........**.** +.............****....*...*.*..............** +......................**.*..* +#P -24 -70 +................** +...............**** +.**...........**.** +**.***.........** +.***** +..***....*..........* +.........*..* +......**..***.....**....* +.....**........*...*.**** +.....****....*.*.***.*** +.....*.*.*..*...****.* +.....*.*.*..*...****.* +.....****....*.*.***.*** +.....**........*...*.**** +......**..***.....**....* +.........*..* +..***....*..........* +.***** +**.***.........** +.**...........**.** +...............**** +................** +#P -24 -46 +................**.......* +...............****.....* +.**...........**.**.....*.....** +**.***.........**.......***** +.*****........................*.* +..***....*..........*........*...* +.........*..*.....................* +......**..***.....**....*..**....** +.....**........*...*.****..*..*..**.** +.....****....*.*.***.***......** +.....*.*.*..*...****.*.......* +.....*.*.*..*...****.*.......* +.....****....*.*.***.***......** +.....**........*...*.****..*..*..**.** +......**..***.....**....*..**....** +.........*..*.....................* +..***....*..........*........*...* +.*****........................*.* +**.***.........**.......***** +.**...........**.**.....*.....** +...............****.....* +................**.......* +#P -24 -22 +................**.....................*..* +...............****............*..*...* +.**...........**.**...........*.......*...* +**.***.........**.............*...*...**** +.*****........................**** +..***....*..........* +.........*..*...........................*** +......**..***.....**....*..*...*......**** +.....**........*...*.****...*.*......*....* +.....****....*.*.***.***...**..*..**** +.....*.*.*..*...****.*.........*.*..* +.....*.*.*..*...****.*.........*.*..* +.....****....*.*.***.***...**..*..**** +.....**........*...*.****...*.*......*....* +......**..***.....**....*..*...*......**** +.........*..*...........................*** +..***....*..........* +.*****........................**** +**.***.........**.............*...*...**** +.**...........**.**...........*.......*...* +...............****............*..*...* +................**.....................*..* +#P -24 12 +.**............** +**.***........**.*** +.*****.........***** +..***....*......***** +.........*..*......**** +......**..***.....*..*** +.....**........*..**..** +.....****....*.*.*.* +.....*.*.*..*...*** +.....*.*.*..*...*** +.....****....*.*.*.* +.....**........*..**..** +......**..***.....*..*** +.........*..*......**** +..***....*......***** +.*****.........***** +**.***........**.*** +.**............** +#P -24 34 +.................** +................****...................* +.**............**.**................***** +**.***..........**..........**....** +.*****...............*.....*......**.** +..***....*............*....*...*.*...* +.........*..*......*****...**....**...****** +......**..***.....*....**.....**.*...*......* +.....**........*..**....**.*....*.*..* +.....****....*.*.*.*....**........*..*......* +.....*.*.*..*...***.....*.................* +.....*.*.*..*...***.....*.................* +.....****....*.*.*.*....**........*..*......* +.....**........*..**....**.*....*.*..* +......**..***.....*....**.....**.*...*......* +.........*..*......*****...**....**...****** +..***....*............*....*...*.*...* +.*****...............*.....*......**.** +**.***..........**..........**....** +.**............**.**................***** +................****...................* +.................** +#P -24 59 +..............**** +.**...........*...* +**.***........* +.*****.........*..*..** +..***....*..........**.*.** +.........*..*......*.*** +......**..***.....*.***...* +.....**........*...*.....* +.....****....*.*.*** +.....*.*.*..*...*** +.....*.*.*..*...*** +.....****....*.*.*** +.....**........*...*.....* +......**..***.....*.***...* +.........*..*......*.*** +..***....*..........**.*.** +.*****.........*..*..** +**.***........* +.**...........*...* +..............**** +#P 32 -78 +................**......**** +...............****....****** +.**...........**.**...**.**** +**.***.........**......** +.*****........................* +..***....*..........*.........* +.........*..* +......**..***.....** +.....**........*...*.************ +.....****....*.*.***.************ +.....*.*.*..*...****.*********** +.....*.*.*..*...****.*********** +.....****....*.*.***.************ +.....**........*...*.************ +......**..***.....** +.........*..* +..***....*..........*.........* +.*****........................* +**.***.........**......** +.**...........**.**...**.**** +...............****....****** +................**......**** +#P 32 -46 +................** +...............**** +.**...........**.** +**.***.........** +.***** +..***....*..........* +.........*..* +......**..***.....** +.....**........*...*.******** +.....****....*.*.***.******** +.....*.*.*..*...****.******* +.....*.*.*..*...****.******* +.....****....*.*.***.******** +.....**........*...*.******** +......**..***.....** +.........*..* +..***....*..........* +.***** +**.***.........** +.**...........**.** +...............**** +................** +#P 32 -22 +................**......** +...............****....**** +.**...........**.**...**.**...*** +**.***.........**......**....**.***...******** +.*****........................***..*.*..****** +..***....*..........*......**..**..*.*...*.** +.........*..*....................*...** +......**..***.....**..............**.* +.....**........*...*.*******......***..* +.....****....*.*.***.*******.......*.*** +.....*.*.*..*...****.******.........*..** +.....*.*.*..*...****.******.........*..** +.....****....*.*.***.*******.......*.*** +.....**........*...*.*******......***..* +......**..***.....**..............**.* +.........*..*....................*...** +..***....*..........*......**..**..*.*...*.** +.*****........................***..*.*..****** +**.***.........**......**....**.***...******** +.**...........**.**...**.**...*** +...............****....**** +................**......** +#P 32 2 +................**......**...............*.* +...............****....****.............* +.**...........**.**...**.**...***......**...* +**.***.........**......**....**.***...*...** +.*****........................***..*.*.**..** +..***....*..........*......**..**..*.*.....** +.........*..*....................*...*.....** +......**..***.....**..............**.*...* +.....**........*...*.*******......**...**..** +.....****....*.*.***.*******........**...*** +.....*.*.*..*...****.****** +.....*.*.*..*...****.****** +.....****....*.*.***.*******........**...*** +.....**........*...*.*******......**...**..** +......**..***.....**..............**.*...* +.........*..*....................*...*.....** +..***....*..........*......**..**..*.*.....** +.*****........................***..*.*.**..** +**.***.........**......**....**.***...*...** +.**...........**.**...**.**...***......**...* +...............****....****.............* +................**......**...............*.* +#P 32 34 +................**......**.........**.* +...............****....****......**......* +.**...........**.**...**.**......***.*...* +**.***.........**......**.....**..**..**.* +.*****.......................*..*.** +..***....*..........*.......**....** +.........*..*................*..*.** +......**..***.....**..........**..* +.....**........*...*.******......***.**.* +.....****....*.*.***.******......***.**.* +.....*.*.*..*...****.***** +.....*.*.*..*...****.***** +.....****....*.*.***.******......***.**.* +.....**........*...*.******......***.**.* +......**..***.....**..........**..* +.........*..*................*..*.** +..***....*..........*.......**....** +.*****.......................*..*.** +**.***.........**......**.....**..**..**.* +.**...........**.**...**.**......***.*...* +...............****....****......**......* +................**......**.........**.* +#P 32 58 +................**......**.........**.* +...............****....****......**......*.** +.**...........**.**...**.**......***.*...*...* +**.***.........**......**.....**..**..**.* +.*****.......................*..*.**.......* +..***....*..........*.......**....** +.........*..*................*..*.**....** +......**..***.....**..........**..*....**.** +.....**........*...*.******......***....**** +.....****....*.*.***.******......***.....** +.....*.*.*..*...****.***** +.....*.*.*..*...****.***** +.....****....*.*.***.******......***.....** +.....**........*...*.******......***....**** +......**..***.....**..........**..*....**.** +.........*..*................*..*.**....** +..***....*..........*.......**....** +.*****.......................*..*.**.......* +**.***.........**......**.....**..**..**.* +.**...........**.**...**.**......***.*...*...* +...............****....****......**......*.** +................**......**.........**.* +#P 96 -76 +.**...............*** +**.***...........**.*** +.*****.........*..*.***** +..***....*....***.**....** +.........*..**...**.....* +......**..*****.*.....* +.....**...............***.** +.....****....*.**.*....***.* +.....*.*.*..*.* +.....*.*.*..*.* +.....****....*.**.*....***.* +.....**...............***.** +......**..*****.*.....* +.........*..**...**.....* +..***....*....***.**....** +.*****.........*..*.***** +**.***...........**.*** +.**...............*** +#P 96 -46 +....................** +...................****.......* +.**...............**.**......** +**.***.............**.......**.** +.*****.......................***** +..***....*.............*.........* +.........*..***..*.....*.* +......**..******..*...*...*.*..* +.....**.............***..*..* +.....****....*..***.*****....** +.....*.*.*..*.**....*.........* +.....*.*.*..*.**....*.........* +.....****....*..***.*****....** +.....**.............***..*..* +......**..******..*...*...*.*..* +.........*..***..*.....*.* +..***....*.............*.........* +.*****.......................***** +**.***.............**.......**.** +.**...............**.**......** +...................****.......* +....................** +#P 96 -22 +........................................** +.......................................*** +.**.........................*........**.*** +**.***.....................*.**....**.* +.*****...................**....*.**...**..* +..***....*..............*......*.**.*** +.........*..***..*......*.......**** +......**..******..*...**...*.*.**.* +.....**.............**.**.****...** +.....****....*..***.**.*..*...**.*.** +.....*.*.*..*.**....*..*..*....*.* +.....*.*.*..*.**....*..*..*....*.* +.....****....*..***.**.*..*...**.*.** +.....**.............**.**.****...** +......**..******..*...**...*.*.**.* +.........*..***..*......*.......**** +..***....*..............*......*.**.*** +.*****...................**....*.**...**..* +**.***.....................*.**....**.* +.**.........................*........**.*** +.......................................*** +........................................** +#P 96 4 +.**.........................* +**.***.....................*.** +.*****...................**....*.** +..***....*..............*......*.*.....** +.........*..***..*......*.......***....** +......**..******..*...**...*.*.***.***.***...* +.....**.............**.**.****....*......**.* +.....****....*..***.**.*..*...*****.....***..* +.....*.*.*..*.**....*..*..*......*...****** +.....*.*.*..*.**....*..*..*......*...****** +.....****....*..***.**.*..*...*****.....***..* +.....**.............**.**.****....*......**.* +......**..******..*...**...*.*.***.***.***...* +.........*..***..*......*.......***....** +..***....*..............*......*.*.....** +.*****...................**....*.** +**.***.....................*.** +.**.........................* +#P 96 58 +................* +.............****.......**..........** +.**.........**.....******..........* +**.***.....**..*****....*.*..*.....*....* +.*****......*.*........*...*.***...**...* +..***....*....**...***....*.****.....**.* +.........*.........****..**...**** +......**..**...*......*..****...*.* +.....**.....*....*...*.*.*.*.*.**.*.*.* +.....****...*..*.*..**.**..**...*....* +.....*.*.*.**.*...**.*.....*..*..** +.....*.*.*.**.*...**.*.....*..*..** +.....****...*..*.*..**.**..**...*....* +.....**.....*....*...*.*.*.*.*.**.*.*.* +......**..**...*......*..****...*.* +.........*.........****..**...**** +..***....*....**...***....*.****.....**.* +.*****......*.*........*...*.***...**...* +**.***.....**..*****....*.*..*.....*....* +.**.........**.....******..........* +.............****.......**..........** +................* diff --git a/programs/demos/life2/lif/AQUA50SH.lif b/programs/demos/life2/lif/AQUA50SH.lif new file mode 100644 index 000000000..b90a36ca4 --- /dev/null +++ b/programs/demos/life2/lif/AQUA50SH.lif @@ -0,0 +1,805 @@ +#Life 1.05 +#D c/2 symmetrical spaceships, hammerhead front end +#D By Hartmut Holzwart. +#N +#P -120 -108 +................* +.**...........*...* +**.***.......* +.*****.......*....* +..*****.....*.**** +......***.*.** +......***....* +......***.*** +..........** +..........** +......***.*** +......***....* +......***.*.** +..*****.....*.**** +.*****.......*....* +**.***.......* +.**...........*...* +................* +#P -120 -86 +.........................................** +........................................**** +.......................................**.** +.**...........*........**....*...*......** +**.***.......*.....*..**.....** +.*****.......*.....***.**......****..* +..*****.....*.****.*.*.**.**..*.*.*......** +......***.*.**.......*....**.***...*..*.**.* +......***....*......**.*...*.***....**..**.* +......***.***.........**.....*........*** +..........**..........***..............** +..........**..........***..............** +......***.***.........**.....*........*** +......***....*......**.*...*.***....**..**.* +......***.*.**.......*....**.***...*..*.**.* +..*****.....*.****.*.*.**.**..*.*.*......** +.*****.......*.....***.**......****..* +**.***.......*.....*..**.....** +.**...........*........**....*...*......** +.......................................**.** +........................................**** +.........................................** +#P -120 -62 +.........................................** +........................................**** +.......................................**.** +.**...........*........**....*...*......** +**.***.......*.....*..**.....** +.*****.......*.....***.**......****..* +..*****.....*.****.*.*.**.**..*.*.*......** +......***.*.**.......*....**.***...*..*.**.**** +......***....*......**.*...*.***....**..**.**** +......***.***.........**.....*........***...** +..........**..........***..............** +..........**..........***..............** +......***.***.........**.....*........***...** +......***....*......**.*...*.***....**..**.**** +......***.*.**.......*....**.***...*..*.**.**** +..*****.....*.****.*.*.**.**..*.*.*......** +.*****.......*.....***.**......****..* +**.***.......*.....*..**.....** +.**...........*........**....*...*......** +.......................................**.** +........................................**** +.........................................** +#P -120 11 +........................*** +. +.**...................**.**.* +**.***............*.**...**** +.*****.....**...**..***....*** +..*****....**...* +......***.*.**.*** +......***.*........**************** +......***.**..**...**************** +....................************** +....................************** +......***.**..**...**************** +......***.*........**************** +......***.*.**.*** +..*****....**...* +.*****.....**...**..***....*** +**.***............*.**...**** +.**...................**.**.* +. +........................*** +#P -120 34 +................................**.* +........................***....*..**** +...............................*..*.** +.**...................**.**.*..**...**.** +**.***............*.**...****....* +.*****.....**...**..***....*** +..*****....**...* +......***.*.**.*** +......***.*........*********************** +......***.**..**...*********************** +....................********************* +....................********************* +......***.**..**...*********************** +......***.*........*********************** +......***.*.**.*** +..*****....**...* +.*****.....**...**..***....*** +**.***............*.**...****....* +.**...................**.**.*..**...**.** +...............................*..*.** +........................***....*..**** +................................**.* +#P -120 58 +......................................** +........................***..........**** +....................................**.** +.**...................**.**.*........** +**.***............*.**...****...**........* +.*****.....**...**..***....***.***........* +..*****....**...* +......***.*.**.*** +......***.*........************************** +......***.**..**...************************** +....................************************ +....................************************ +......***.**..**...************************** +......***.*........************************** +......***.*.**.*** +..*****....**...* +.*****.....**...**..***....***.***........* +**.***............*.**...****...**........* +.**...................**.**.*........** +....................................**.** +........................***..........**** +......................................** +#P -120 90 +.....................................* +...................................**** +..................................* +.**....................****.....*.*..*.*** +**.***............*...*....**.*.*.*.*.*...* +.*****.....**...**.*.**......**.*..**.....* +..*****....**...*...***....**.*.*....* +......***.*.**.**.*.**..............**..*.* +......***.*......*..*..*.******......**.*.* +......***.**..**...***...*****........*.** +.....................*.**....*.........** +.....................*.**....*.........** +......***.**..**...***...*****........*.** +......***.*......*..*..*.******......**.*.* +......***.*.**.**.*.**..............**..*.* +..*****....**...*...***....**.*.*....* +.*****.....**...**.*.**......**.*..**.....* +**.***............*...*....**.*.*.*.*.*...* +.**....................****.....*.*..*.*** +..................................* +...................................**** +.....................................* +#P -64 -109 +.................*.* +................**.**..* +.**...........*****.**...* +**.***.......*...........*.* +.*****.......*..*...*..*..* +..*****.....*.****...* +......***.*.**...* +......***....* +......***.*** +..........** +..........** +......***.*** +......***....* +......***.*.**...* +..*****.....*.****...* +.*****.......*..*...*..*..* +**.***.......*...........*.* +.**...........*****.**...* +................**.**..* +.................*.* +#P -64 -86 +..................................**.....** +.................*.*.............* +................**.**..*........**..*.*** +.**...........*****.**...*.....* +**.***.......*...........*.**.****.*.****..* +.*****.......*..*...*..*..***....*.*..*...* +..*****.....*.****...*.......*.*.......* +......***.*.**...*...........**........*.* +......***....*.................*........* +......***.*** +..........** +..........** +......***.*** +......***....*.................*........* +......***.*.**...*...........**........*.* +..*****.....*.****...*.......*.*.......* +.*****.......*..*...*..*..***....*.*..*...* +**.***.......*...........*.**.****.*.****..* +.**...........*****.**...*.....* +................**.**..*........**..*.*** +.................*.*.............* +..................................**.....** +#P -64 -62 +..................................**.....* +.................*.*.............*......** +................**.**..*........**..*...* +.**...........*****.**...*.....*...***..* +**.***.......*...........*.**.******...** +.*****.......*..*...*..*..***....*...*...* +..*****.....*.****...*.......*.*......**.* +......***.*.**...*...........**........* +......***....*.................* +......***.*** +..........** +..........** +......***.*** +......***....*.................* +......***.*.**...*...........**........* +..*****.....*.****...*.......*.*......**.* +.*****.......*..*...*..*..***....*...*...* +**.***.......*...........*.**.******...** +.**...........*****.**...*.....*...***..* +................**.**..*........**..*...* +.................*.*.............*......** +..................................**.....* +#P -64 -21 +.................*.*......* +................**.**..*.*.* +.**...........*****.**...* +**.***.......* +.*****.......*..*...*..* +..*****.....*.****...* +......***.*.**...* +......***....* +......***.*** +..........** +..........** +......***.*** +......***....* +......***.*.**...* +..*****.....*.****...* +.*****.......*..*...*..* +**.***.......* +.**...........*****.**...* +................**.**..*.*.* +.................*.*......* +#P -64 3 +.................*.*......*.* +................**.**..*.*..*......* +.**...........*****.**...*......**.* +**.***.......*.............*....* +.*****.......*..*...*..*...*....* +..*****.....*.****...*.....**.* +......***.*.**...*............*..* +......***....*.................*.* +......***.*** +..........** +..........** +......***.*** +......***....*.................*.* +......***.*.**...*............*..* +..*****.....*.****...*.....**.* +.*****.......*..*...*..*...*....* +**.***.......*.............*....* +.**...........*****.**...*......**.* +................**.**..*.*..*......* +.................*.*......*.* +#P -64 42 +..........................*..* +.................*.*.....*...** +................**.**..*.*...* +.**...........*****.**...**.* +**.***.......*...........*...* +.*****.......*..*...*..*.*...** +..*****.....*.****...*....*..* +......***.*.**...* +......***....* +......***.*** +..........** +..........** +......***.*** +......***....* +......***.*.**...* +..*****.....*.****...*....*..* +.*****.......*..*...*..*.*...** +**.***.......*...........*...* +.**...........*****.**...**.* +................**.**..*.*...* +.................*.*.....*...** +..........................*..* +#P -64 66 +..........................*..* +.................*.*.....*...** +................**.**..*.*...* +.**...........*****.**...**.* +**.***.......*...........*...* +.*****.......*..*...*..*.*...** +..*****.....*.****...*....*..* +......***.*.**...* +......***....* +......***.*** +..........** +..........** +......***.*** +......***....* +......***.*.**...* +..*****.....*.****...*....*..* +.*****.......*..*...*..*.*...** +**.***.......*...........*...* +.**...........*****.**...**.* +................**.**..*.*...* +.................*.*.....*...** +..........................*..* +#P -32 69 +.** +* +.** +#P -32 82 +.** +* +.** +#P -64 90 +..........................*..* +.................*.*.....*...**.....** +................**.**..*.*...*.....**.** +.**...........*****.**...**.*.......**** +**.***.......*...........*...*.......** +.*****.......*..*...*..*.*...* +..*****.....*.****...*....*..*.....* +......***.*.**...*............**...** +......***....*..................***** +......***.***....................* +..........** +..........** +......***.***....................* +......***....*..................***** +......***.*.**...*............**...** +..*****.....*.****...*....*..*.....* +.*****.......*..*...*..*.*...* +**.***.......*...........*...*.......** +.**...........*****.**...**.*.......**** +................**.**..*.*...*.....**.** +.................*.*.....*...**.....** +..........................*..* +#P -15 -109 +.................*.*......*.* +................**.**..*.*..* +.**...........*****.**...* +**.***.......*.............*....* +.*****.......*..*...*..*..*...**.*.** +..*****.....*.****...*.....*..**...**** +......***.*.**...*.........*.*...*....* +......***....*.................** +......***.***.............***..* +..........**..............**...** +..........**..............**...** +......***.***.............***..* +......***....*.................** +......***.*.**...*.........*.*...*....* +..*****.....*.****...*.....*..**...**** +.*****.......*..*...*..*..*...**.*.** +**.***.......*.............*....* +.**...........*****.**...* +................**.**..*.*..* +.................*.*......*.* +#P -15 -85 +.................*.*......*.* +................**.**..*.*..*.........* +.**...........*****.**...*.........**** +**.***.......*.............*....*..** +.*****.......*..*...*..*..*...**.* +..*****.....*.****...*.....*..** +......***.*.**...*.........*.*...* +......***....*.................** +......***.***.............***..* +..........**..............**...** +..........**..............**...** +......***.***.............***..* +......***....*.................** +......***.*.**...*.........*.*...* +..*****.....*.****...*.....*..** +.*****.......*..*...*..*..*...**.* +**.***.......*.............*....*..** +.**...........*****.**...*.........**** +................**.**..*.*..*.........* +.................*.*......*.* +#P -15 -61 +.................*.*......*.*...............* +................**.**..*.*..*.........*.*.** +.**...........*****.**...*.........****.*.*.* +**.***.......*.............*....*..**..* +.*****.......*..*...*..*..*...**.*.....*** +..*****.....*.****...*.....*..**.......* +......***.*.**...*.........*.*...*.....*.* +......***....*.................** +......***.***.............***..*......*** +..........**..............**...**.....** +..........**..............**...**.....** +......***.***.............***..*......*** +......***....*.................** +......***.*.**...*.........*.*...*.....*.* +..*****.....*.****...*.....*..**.......* +.*****.......*..*...*..*..*...**.*.....*** +**.***.......*.............*....*..**..* +.**...........*****.**...*.........****.*.*.* +................**.**..*.*..*.........*.*.** +.................*.*......*.*...............* +#P -15 -38 +........................................* +.................*.*......*.*........**.*.* +................**.**..*.*..*........*...* +.**...........*****.**...*...........* +**.***.......*.............*....*......* +.*****.......*..*...*..*..*...**.*..*** +..*****.....*.****...*.....*..** +......***.*.**...*.........*.*...*.** +......***....*.................**.....* +......***.***.............***..*....*** +..........**..............**...**...** +..........**..............**...**...** +......***.***.............***..*....*** +......***....*.................**.....* +......***.*.**...*.........*.*...*.** +..*****.....*.****...*.....*..** +.*****.......*..*...*..*..*...**.*..*** +**.***.......*.............*....*......* +.**...........*****.**...*...........* +................**.**..*.*..*........*...* +.................*.*......*.*........**.*.* +........................................* +#P -16 -5 +.................*.*......*.* +................**.**..*.*..*....* +.**...........*****.**...*.....**.* +**.***.......*.............*...**...* +.*****.......*..*...*..*..*..*...**.* +..*****.....*.****...*.....*..***.** +......***.*.**...*.........*.*....* +......***....*.................** +......***.***.............***..* +..........**..............**...** +..........**..............**...** +......***.***.............***..* +......***....*.................** +......***.*.**...*.........*.*....* +..*****.....*.****...*.....*..***.** +.*****.......*..*...*..*..*..*...**.* +**.***.......*.............*...**...* +.**...........*****.**...*.....**.* +................**.**..*.*..*....* +.................*.*......*.* +#P -16 19 +.................*.*......*.* +................**.**..*.*..*....* +.**...........*****.**...*.....**.* +**.***.......*.............*...**...* +.*****.......*..*...*..*..*..*...**.* +..*****.....*.****...*.....*..***.** +......***.*.**...*.........*.*....* +......***....*.................** +......***.***.............***..* +..........**..............**...** +..........**..............**...** +......***.***.............***..* +......***....*.................** +......***.*.**...*.........*.*....* +..*****.....*.****...*.....*..***.** +.*****.......*..*...*..*..*..*...**.* +**.***.......*.............*...**...* +.**...........*****.**...*.....**.* +................**.**..*.*..*....* +.................*.*......*.* +#P 22 23 +* +* +** +.*** +...* +. +. +...* +.*** +** +* +* +#P -16 42 +....................................* +.................*.*......*.*....**** +................**.**..*.*..*....*** +.**...........*****.**...*.....*...* +**.***.......*.............*...*** +.*****.......*..*...*..*..*..*.....* +..*****.....*.****...*.....*..***** +......***.*.**...*.........*.* +......***....*.................** +......***.***.............***..* +..........**..............**...** +..........**..............**...** +......***.***.............***..* +......***....*.................** +......***.*.**...*.........*.* +..*****.....*.****...*.....*..***** +.*****.......*..*...*..*..*..*.....* +**.***.......*.............*...*** +.**...........*****.**...*.....*...* +................**.**..*.*..*....*** +.................*.*......*.*....**** +....................................* +#P -16 66 +.............................................* +.................*.*......*.*........*....**** +................**.**..*.*..*.....****....** +.**...........*****.**...*.....****.*...*...** +**.***.......*.............*...**...*...****.* +.*****.......*..*...*..*..*..*...**.*.* +..*****.....*.****...*.....*..***.*....****** +......***.*.**...*.........*.*....*....*.....* +......***....*.................**........*** +......***.***.............***..*.........** +..........**..............**...**..........* +..........**..............**...**..........* +......***.***.............***..*.........** +......***....*.................**........*** +......***.*.**...*.........*.*....*....*.....* +..*****.....*.****...*.....*..***.*....****** +.*****.......*..*...*..*..*..*...**.*.* +**.***.......*.............*...**...*...****.* +.**...........*****.**...*.....****.*...*...** +................**.**..*.*..*.....****....** +.................*.*......*.*........*....**** +.............................................* +#P -16 91 +.................*.*......*.* +................**.**..*.*..*.....* +.**...........*****.**...*.....**** +**.***.......*.............*...** +.*****.......*..*...*..*..*..*...** +..*****.....*.****...*.....*..***.* +......***.*.**...*.........*.* +......***....*.................*** +......***.***.............***..*..* +..........**..............**...** +..........**..............**...** +......***.***.............***..*..* +......***....*.................*** +......***.*.**...*.........*.* +..*****.....*.****...*.....*..***.* +.*****.......*..*...*..*..*..*...** +**.***.......*.............*...** +.**...........*****.**...*.....**** +................**.**..*.*..*.....* +.................*.*......*.* +#P 40 -77 +.......................**** +......................****** +.**..................**.**** +**.***.........*.**...** +.*****.......***.** +..*****.....*....* +......***.*.*.**.........** +......***...*.*.*.....** +......***.**..**....**** +..........**...*..*.* +..........**...*..*.* +......***.**..**....**** +......***...*.*.*.....** +......***.*.*.**.........** +..*****.....*....* +.*****.......***.** +**.***.........*.**...** +.**..................**.**** +......................****** +.......................**** +#P 40 -53 +......................*..* +.....................* +.**..................*...* +**.***.........*.**..**** +.*****.......***.** +..*****.....*....*.......*** +......***.*.*.**.........*** +......***...*.*.*.....**.** +......***.**..**....**** +..........**...*..*.* +..........**...*..*.* +......***.**..**....**** +......***...*.*.*.....**.** +......***.*.*.**.........*** +..*****.....*....*.......*** +.*****.......***.** +**.***.........*.**..**** +.**..................*...* +.....................* +......................*..* +#P 40 -20 +......................**....* +.**..................**.***...*.....* +**.***.........*.**...*****.**....*..* +.*****.......***.**....***.**....*...* +..*****.....*....*..............**...* +......***.*.*.**.........**.*.**.*...* +......***...*.*.*.....**.**..*.*.*.***.* +......***.**..**....****....**....***..* +..........**...*..*.*....* +..........**...*..*.*....* +......***.**..**....****....**....***..* +......***...*.*.*.....**.**..*.*.*.***.* +......***.*.*.**.........**.*.**.*...* +..*****.....*....*..............**...* +.*****.......***.**....***.**....*...* +**.***.........*.**...*****.**....*..* +.**..................**.***...*.....* +......................**....* +#P 40 4 +......................**....* +.**..................**.***...*.....* +**.***.........*.**...*****.**....*..* +.*****.......***.**....***.**....*...* +..*****.....*....*..............**...* +......***.*.*.**.........**.*.**.*...* +......***...*.*.*.....**.**..*.*.*.***.* +......***.**..**....****....**....***..* +..........**...*..*.*....* +..........**...*..*.*....* +......***.**..**....****....**....***..* +......***...*.*.*.....**.**..*.*.*.***.* +......***.*.*.**.........**.*.**.*...* +..*****.....*....*..............**...* +.*****.......***.**....***.**....*...* +**.***.........*.**...*****.**....*..* +.**..................**.***...*.....* +......................**....* +#P 80 4 +..**** +.*....* +** +**....* +#P 80 18 +**....* +** +.*....* +..**** +#P 40 28 +......................**....*.............** +.**..................**.***...*.....*....**.*** +**.***.........*.**...*****.**....*..*....***** +.*****.......***.**....***.**....*...*.....*** +..*****.....*....*..............**...* +......***.*.*.**.........**.*.**.*...*..*** +......***...*.*.*.....**.**..*.*.*.***.*.** +......***.**..**....****....**....*** +..........**...*..*.*....* +..........**...*..*.*....* +......***.**..**....****....**....*** +......***...*.*.*.....**.**..*.*.*.***.*.** +......***.*.*.**.........**.*.**.*...*..*** +..*****.....*....*..............**...* +.*****.......***.**....***.**....*...*.....*** +**.***.........*.**...*****.**....*..*....***** +.**..................**.***...*.....*....**.*** +......................**....*.............** +#P 40 60 +......................**....*......**.* +.**..................**.***...*...*..**** +**.***.........*.**...*****.**....*..*.** +.*****.......***.**....***.**.....**...**.** +..*****.....*....*.................* +......***.*.*.**.........**.*.***..* +......***...*.*.*.....**.**..*......* +......***.**..**....****....**...*..** +..........**...*..*.*....*........*..* +..........**...*..*.*....*........*..* +......***.**..**....****....**...*..** +......***...*.*.*.....**.**..*......* +......***.*.*.**.........**.*.***..* +..*****.....*....*.................* +.*****.......***.**....***.**.....**...**.** +**.***.........*.**...*****.**....*..*.** +.**..................**.***...*...*..**** +......................**....*......**.* +#P 96 -53 +..........................** +..................***.***.*** +.**...............****.**.** +**.***.........*.*.....***** +.*****.......***.*...*...* +..*****.....*....*...** +......***.*.*.**....*........** +......***...*.*.*........**.....*.***..* +......***.**..**....**.**.*.*...*..** +..........**...*..*..**.*..***.*...** +..........**...*..*..**.*..***.*...** +......***.**..**....**.**.*.*...*..** +......***...*.*.*........**.....*.***..* +......***.*.*.**....*........** +..*****.....*....*...** +.*****.......***.*...*...* +**.***.........*.*.....***** +.**...............****.**.** +..................***.***.*** +..........................** +#P 96 -29 +..........................** +..................***.***.*** +.**...............****.**.** +**.***.........*.*.....***** +.*****.......***.*...*...* +..*****.....*....*...** +......***.*.*.**....*........** +......***...*.*.*........**.....*.*** +......***.**..**....**.**.*.*...*..** +..........**...*..*..**.*..***.*...** +..........**...*..*..**.*..***.*...** +......***.**..**....**.**.*.*...*..** +......***...*.*.*........**.....*.*** +......***.*.*.**....*........** +..*****.....*....*...** +.*****.......***.*...*...* +**.***.........*.*.....***** +.**...............****.**.** +..................***.***.*** +..........................** +#P 135 -28 +**** +*...* +* +.*..* +.....* +*..*.** +**.....* +.***** +.** +.** +.***** +**.....* +*..*.** +.....* +.*..* +* +*...* +**** +#P 96 -5 +..........................**.....** +..................***.***.***...**.** +.**...............****.**.**.....**** +**.***.........*.*.....*****......** +.*****.......***.*...*...* +..*****.....*....*...** +......***.*.*.**....*........** +......***...*.*.*........**.....*.*** +......***.**..**....**.**.*.*...*..** +..........**...*..*..**.*..***.*...** +..........**...*..*..**.*..***.*...** +......***.**..**....**.**.*.*...*..** +......***...*.*.*........**.....*.*** +......***.*.*.**....*........** +..*****.....*....*...** +.*****.......***.*...*...* +**.***.........*.*.....*****......** +.**...............****.**.**.....**** +..................***.***.***...**.** +..........................**.....** +#P 135 -5 +..* +.* +** +.*** +..*.** +...* +***.** +*** +......* +.** +.** +......* +*** +***.** +...* +..*.** +.*** +** +.* +..* +#P 96 27 +..........................** +..................***.***.***.....*..* +.**...............****.**.**.....* +**.***.........*.*.....*****.....*...* +.*****.......***.*...*...*.......**** +..*****.....*....*...** +......***.*.*.**....*........**......**.* +......***...*.*.*........**.....*.**.....* +......***.**..**....**.**.*.*...*.**.** +..........**...*..*..**.*..***.*.....**.* +..........**...*..*..**.*..***.*.....**.* +......***.**..**....**.**.*.*...*.**.** +......***...*.*.*........**.....*.**.....* +......***.*.*.**....*........**......**.* +..*****.....*....*...** +.*****.......***.*...*...*.......**** +**.***.........*.*.....*****.....*...* +.**...............****.**.**.....* +..................***.***.***.....*..* +..........................** diff --git a/programs/demos/life2/lif/BARGE.lif b/programs/demos/life2/lif/BARGE.lif new file mode 100644 index 000000000..be6317d4f --- /dev/null +++ b/programs/demos/life2/lif/BARGE.lif @@ -0,0 +1,406 @@ +#Life 1.05 +#D c/3 spaceship extensible in 2 dimensions +#D Hartmut Holzwart, David Bell +#N +#P -32 -50 +...* +..*.* +.** +..* +.*.* +.* +* +*.* +*.* +.**** +...*.* +...*.* +..* +..*** +* +*** +.***.* +...* +...* +...** +#P -29 -29 +** +*..* +*.** +.*** +.** +...* +.** +..*.* +...* +. +...* +..*.* +.** +...* +.** +.*** +*.** +*..* +** +. +** +*..* +*.** +.*** +.** +...* +.** +..*.* +...* +. +...* +..*.* +.** +...* +.** +.*** +*.** +*..* +** +. +** +*..* +*.** +.*** +.** +...* +.** +..*.* +...* +. +...* +..*.* +.** +...* +.** +.*** +*.** +*..* +** +#P -32 31 +...** +...* +...* +.***.* +*** +* +..*** +..* +...*.* +...*.* +.**** +*.* +*.* +* +.* +.*.* +..* +.** +..*.* +...* +#P -24 -29 +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +. +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +. +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +#P -12 -29 +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +. +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +. +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +#P 0 -29 +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +. +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +. +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +#P 12 -29 +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +. +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +. +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +#P 24 -29 +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +. +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* +. +..**.*.*.* +.*...*..** +*.....* +.*......*.* +...**..**.* +..*...* +..*.***...* +..* +...******** +. +...******** +..* +..*.***...* +..*...* +...**..**.* +.*......*.* +*.....* +.*...*..** +..**.*.*.* diff --git a/programs/demos/life2/lif/BARGE2.lif b/programs/demos/life2/lif/BARGE2.lif new file mode 100644 index 000000000..2e21ec57e --- /dev/null +++ b/programs/demos/life2/lif/BARGE2.lif @@ -0,0 +1,334 @@ +#Life 1.05 +#D c/2 spaceship extensible in 2 dimensions +#D Hartmut Holzwart +#N +#P -20 -52 +............*.* +...........*..* +..........** +.........*....* +........*****.* +.....** +....*...*** +...*...* +...*.....* +...***...* +.........**.* +...***......* +..* +.*...* +*..* +*....* +***** +. +***** +*....* +*..* +.*...* +..* +...*** +#P -19 -27 +..*** +.*.....* +*...**.* +*...* +*...**.* +.*.....* +..*** +. +..*** +.*.....* +*...**.* +*...* +*...**.* +.*.....* +..*** +. +..*** +.*.....* +*...**.* +*...* +*...**.* +.*.....* +..*** +. +..*** +.*.....* +*...**.* +*...* +*...**.* +.*.....* +..*** +. +..*** +.*.....* +*...**.* +*...* +*...**.* +.*.....* +..*** +. +..*** +.*.....* +*...**.* +*...* +*...**.* +.*.....* +..*** +. +..*** +.*.....* +*...**.* +*...* +*...**.* +.*.....* +..*** +#P -20 29 +...*** +..* +.*...* +*..* +*....* +***** +. +***** +*....* +*..* +.*...* +..* +...***......* +.........**.* +...***...* +...*.....* +...*...* +....*...*** +.....** +........*****.* +.........*....* +..........** +...........*..* +............*.* +#P -10 -27 +.........* +......**.* +......* +......* +....* +.**.* +.* +*..*..* +**..** +*.......* +*..*.**.* +*...* +*..*.**.* +*.......* +**..** +*..*..* +.* +.**.* +....* +......** +....* +.**.* +.* +*..*..* +**..** +*.......* +*..*.**.* +*...* +*..*.**.* +*.......* +**..** +*..*..* +.* +.**.* +....* +......** +....* +.**.* +.* +*..*..* +**..** +*.......* +*..*.**.* +*...* +*..*.**.* +*.......* +**..** +*..*..* +.* +.**.* +....* +......* +......* +......**.* +.........* +#P 0 -27 +.........* +......**.* +......* +......* +....* +.**.* +.* +*..*..* +**..** +*.......* +*..*.**.* +*...* +*..*.**.* +*.......* +**..** +*..*..* +.* +.**.* +....* +......** +....* +.**.* +.* +*..*..* +**..** +*.......* +*..*.**.* +*...* +*..*.**.* +*.......* +**..** +*..*..* +.* +.**.* +....* +......** +....* +.**.* +.* +*..*..* +**..** +*.......* +*..*.**.* +*...* +*..*.**.* +*.......* +**..** +*..*..* +.* +.**.* +....* +......* +......* +......**.* +.........* +#P 10 -27 +.........* +......**.* +......* +......* +....* +.**.* +.* +*..*..* +**..** +*.......* +*..*.**.* +*...* +*..*.**.* +*.......* +**..** +*..*..* +.* +.**.* +....* +......** +....* +.**.* +.* +*..*..* +**..** +*.......* +*..*.**.* +*...* +*..*.**.* +*.......* +**..** +*..*..* +.* +.**.* +....* +......** +....* +.**.* +.* +*..*..* +**..** +*.......* +*..*.**.* +*...* +*..*.**.* +*.......* +**..** +*..*..* +.* +.**.* +....* +......* +......* +......**.* +.........* +#P 20 -27 +.........* +......**.* +......* +......* +....* +.**.* +.* +*..*..* +**..** +*.......* +*..*.**.* +*...* +*..*.**.* +*.......* +**..** +*..*..* +.* +.**.* +....* +......** +....* +.**.* +.* +*..*..* +**..** +*.......* +*..*.**.* +*...* +*..*.**.* +*.......* +**..** +*..*..* +.* +.**.* +....* +......** +....* +.**.* +.* +*..*..* +**..** +*.......* +*..*.**.* +*...* +*..*.**.* +*.......* +**..** +*..*..* +.* +.**.* +....* +......* +......* +......**.* +.........* diff --git a/programs/demos/life2/lif/BHEPTO.lif b/programs/demos/life2/lif/BHEPTO.lif new file mode 100644 index 000000000..f3feae502 --- /dev/null +++ b/programs/demos/life2/lif/BHEPTO.lif @@ -0,0 +1,14 @@ +#Life 1.05 +#D B-heptomino +#D A somewhat vigorous, commonly seen bit of +#D fluff, which lends to Life's growth +#D tendencies. This piece is used in PUFTRAIN, +#D RAKE, RAKE2, RAKE3, BHEPTPUF, GUN46, TRACK, +#D GUNSTAR, GUNSTAR2, GUNSTAR3, BI-GUN, and the +#D p46, p54, and p100 shuttles in OSCSPN2 and +#D OSCSPN3, and in many other patterns. +#N +#P -1 -1 +.* +*** +*.** diff --git a/programs/demos/life2/lif/BHEPTPUF.lif b/programs/demos/life2/lif/BHEPTPUF.lif new file mode 100644 index 000000000..1dd139099 --- /dev/null +++ b/programs/demos/life2/lif/BHEPTPUF.lif @@ -0,0 +1,225 @@ +#Life 1.05 +#D B-heptomino puffer (well known) +#D An extension of PUFTRAIN, but at these +#D lengths, the ends need to be hit by +#D rakes. Even with the rakes, there are +#D only a finite number of lengths that +#D don't eventually self-destruct. For a +#D stable dirty puffer, see LINEPUF. +#N +#P 8 -53 +* +** +.** +** +. +. +. +** +.** +** +* +. +* +** +.** +** +. +. +. +** +.** +** +* +. +* +** +.** +** +. +. +. +** +.** +** +* +. +* +** +.** +** +. +. +. +** +.** +** +* +. +* +** +.** +** +#P 8 2 +** +.** +** +* +. +* +** +.** +** +. +. +. +** +.** +** +* +. +* +** +.** +** +. +. +. +** +.** +** +* +. +* +** +.** +** +. +. +. +** +.** +** +* +. +* +** +.** +** +. +. +. +** +.** +** +* +#P 32 -73 +*..* +....* +*...* +.**** +. +. +. +* +.** +..* +..* +.* +. +. +*..* +....* +*...* +.**** +#P 24 -67 +.....** +. +...** +..** +.** +..*...* +.......* +. +.** +**** +**.** +..** +#P 15 -74 +.**** +*...* +....* +*..* +#P 11 -69 +.*** +. +*..* +*.* +#P 8 -59 +..** +**.** +**** +.** +#P 5 -65 +.* +..* +*** +#P 0 -60 +.* +..* +*** +#P 32 56 +.**** +*...* +....* +*..* +. +. +.* +..* +..* +.** +* +. +. +. +.**** +*...* +....* +*..* +#P 24 56 +..** +**.** +**** +.** +. +.......* +..*...* +.** +..** +...** +. +.....** +#P 15 71 +*..* +....* +*...* +.**** +#P 11 66 +*.* +*..* +. +.*** +#P 5 63 +*** +..* +.* +#P 0 58 +*** +..* +.* +#P 8 56 +.** +**** +**.** +..** diff --git a/programs/demos/life2/lif/BI-GUN.lif b/programs/demos/life2/lif/BI-GUN.lif new file mode 100644 index 000000000..fa2711cef --- /dev/null +++ b/programs/demos/life2/lif/BI-GUN.lif @@ -0,0 +1,30 @@ +#Life 1.05 +#D Two-barrelled p46 glider gun +#D found by Bill Gosper. +#N +#P -9 -7 +*** +..* +..* +.* +. +.* +..* +..* +*** +#P 6 -3 +*** +* +* +.* +. +.* +* +* +*** +#P 23 -3 +** +.* +#P -25 0 +* +** diff --git a/programs/demos/life2/lif/BLKRAKE.lif b/programs/demos/life2/lif/BLKRAKE.lif new file mode 100644 index 000000000..c0debad29 --- /dev/null +++ b/programs/demos/life2/lif/BLKRAKE.lif @@ -0,0 +1,65 @@ +#Life 1.05 +#D Programmable rake +#D Based on Tim Coe's rakes. +#N +#P -29 9 +....** +****.** +.***** +..*** +. +. +..**** +.*...* +.....* +....* +#P -37 2 +.****** +*.....* +......* +.....* +#P -42 17 +....* +.....* +*....* +.***** +#P -85 -6 +.** +**** +**.** +..** +#P -109 -4 +....** +..**.** +..**** +...** +...* +.*...* +*.....* +*.....* +.****** +#P -116 9 +....** +****.** +****** +.**** +#P -121 -8 +.*** +***** +***.** +...** +#P 0 -4 +** +** +#P 16 -4 +** +** +#P 48 -4 +** +** +#P 64 -4 +** +** +#P 96 -4 +** +** diff --git a/programs/demos/life2/lif/BREEDER.lif b/programs/demos/life2/lif/BREEDER.lif new file mode 100644 index 000000000..76acb1cb3 --- /dev/null +++ b/programs/demos/life2/lif/BREEDER.lif @@ -0,0 +1,2523 @@ +#Life 1.05 +#D Breeder, the classic original +#D by Bill Gosper, early 1970's. +#D +#D This is the first pattern to +#D demonstrate that quadratic +#D growth was possible in the +#D Game of Life. Much better +#D results have been achieved +#D since then (see MAX). +#N +#P -368 -2 +*** +..* +.* +#P -374 -16 +...** +...** +. +. +. +...* +..*** +.*...* +*.***.* +.***** +. +. +. +. +. +. +. +. +. +. +. +. +. +....*** +...*...* +..*.....* +..**.*.** +. +. +.....* +....*.* +....*.* +.....* +. +.....** +.....** +#P -339 -16 +** +** +. +. +. +. +. +. +. +. +. +** +*.* +.** +. +. +. +. +. +. +. +. +...** +..*.* +..** +. +. +. +. +. +. +. +. +. +..** +..** +#P -334 -15 +*.* +** +.* +#P -333 15 +** +*.* +* +#P -307 -16 +** +** +. +. +. +. +. +. +. +. +. +** +*.* +.** +. +. +. +. +. +. +. +. +...** +..*.* +..** +. +. +. +. +. +. +. +. +. +..** +..** +#P -286 -31 +*.* +** +.* +#P -285 31 +** +*.* +* +#P -275 -16 +** +** +. +. +. +. +. +. +. +. +. +** +*.* +.** +. +. +. +. +. +. +. +. +...** +..*.* +..** +. +. +. +. +. +. +. +. +. +..** +..** +#P -238 -47 +*.* +** +.* +#P -237 47 +** +*.* +* +#P -243 -16 +** +** +. +. +. +. +. +. +. +. +. +** +*.* +.** +. +. +. +. +. +. +. +. +...** +..*.* +..** +. +. +. +. +. +. +. +. +. +..** +..** +#P -190 -63 +*.* +** +.* +#P -189 63 +** +*.* +* +#P -211 -16 +** +** +. +. +. +. +. +. +. +. +. +** +*.* +.** +. +. +. +. +. +. +. +. +...** +..*.* +..** +. +. +. +. +. +. +. +. +. +..** +..** +#P -179 -16 +** +** +. +. +. +. +. +.....* +.....*.* +.....** +.** +*..* +*..* +.** +. +. +. +. +. +. +. +. +...** +..*..* +..*..* +...** +.......** +.......*.* +.......* +. +. +. +. +. +..** +..** +#P -142 -79 +*.* +** +.* +#P -141 79 +** +*.* +* +#P -147 -16 +** +** +. +. +. +. +. +. +. +. +.** +*..* +*..* +.** +. +. +. +. +. +. +. +. +...** +..*..* +..*..* +...** +. +. +. +. +. +. +. +. +..** +..** +#P -126 -25 +* +*.* +** +#P -124 26 +** +*.* +* +#P -94 -95 +*.* +** +.* +#P -93 95 +** +*.* +* +#P -115 -16 +** +** +. +. +. +. +. +. +. +. +.** +*..* +*..* +.** +. +. +. +. +. +. +. +. +...** +..*..* +..*..* +...** +. +. +. +. +. +. +. +. +..** +..** +#P -78 -41 +* +*.* +** +#P -76 42 +** +*.* +* +#P -46 -111 +*.* +** +.* +#P -45 111 +** +*.* +* +#P -83 -16 +** +** +. +. +. +. +. +. +. +. +.** +*..* +*..* +.** +. +. +. +. +. +. +. +. +...** +..*..* +..*..* +...** +. +. +. +. +. +. +. +. +..** +..** +#P -30 -57 +* +*.* +** +#P -28 58 +** +*.* +* +#P 3 127 +** +*.* +* +#P 2 -127 +*.* +** +.* +#P -51 -16 +** +** +. +. +. +. +. +. +. +. +.** +*..* +*..* +.** +. +. +. +. +. +. +. +. +...** +..*..* +..*..* +...** +. +. +. +. +. +. +. +. +..** +..** +#P 18 -73 +* +*.* +** +#P -4 66 +** +*.* +* +#P -19 -16 +** +** +. +. +. +. +. +. +. +. +.** +*..* +*..* +.** +. +. +. +. +. +. +. +. +...** +..*..* +..*..* +...** +. +. +. +. +. +. +. +. +..** +..** +#P 66 -89 +* +*.* +** +#P 44 82 +** +*.* +* +#P 13 -16 +** +** +. +. +. +. +. +. +. +. +.** +*..* +*..* +.** +#P 15 18 +** +** +#P 26 -8 +.* +* +*** +#P 25 16 +.** +** +..* +#P -14 54 +** +** +#P -33 -110 +** +** +#P -22 -119 +*.* +** +.* +#P -1 -110 +** +** +#P 20 74 +** +*.* +* +#P 68 90 +** +*.* +* +#P -31 112 +** +** +#P -21 119 +** +*.* +* +#P 1 112 +** +** +#P 45 -16 +** +** +. +. +. +. +. +. +. +. +.** +*..* +*..* +.** +#P 47 18 +** +** +#P 48 23 +* +* +..** +#P 74 -24 +.* +* +*** +#P 73 32 +.** +** +..* +#P 77 -16 +** +** +. +. +. +. +. +. +. +. +.** +*..* +*..* +.** +#P 79 18 +** +** +. +. +. +** +** +#P 109 -16 +** +** +. +. +. +. +. +. +. +. +.** +*..* +*..* +.** +#P 111 18 +** +** +. +. +. +** +** +#P 122 -40 +.* +* +*** +#P 141 -16 +** +** +. +. +. +. +. +. +. +. +.** +*..* +*..* +.** +#P 143 18 +** +** +. +. +. +** +** +#P 173 -16 +** +** +. +. +. +. +. +. +. +. +.** +*..* +*..* +.** +#P 175 18 +** +** +. +. +. +** +** +#P 205 -16 +** +** +#P 207 18 +** +** +. +. +. +** +** +#P 215 -14 +* +*.* +** +#P 215 8 +.** +** +..* +#P 237 -16 +** +** +#P 239 18 +** +** +. +. +. +** +** +#P 263 -30 +* +*.* +** +#P 263 24 +.** +** +..* +#P 269 -21 +** +** +. +. +. +** +** +#P 271 18 +** +** +. +. +. +** +** +#P 287 -38 +* +*.* +** +#P 311 -46 +* +*.* +** +#P 311 40 +.** +** +..* +#P 335 48 +.** +** +..* +#P 170 -56 +.* +* +*** +#P 194 -64 +.* +* +*** +#P 188 -59 +** +** +#P 220 -59 +** +** +#P 252 -64 +** +** +. +. +. +** +** +#P 139 -80 +** +** +#P 107 -80 +** +** +#P 75 -80 +** +** +#P 31 -115 +** +** +. +. +. +** +** +#P -19 -151 +** +** +. +. +. +** +** +#P 50 49 +** +** +. +. +. +** +** +#P 74 49 +** +** +. +. +. +** +** +#P 90 49 +** +** +. +. +. +** +** +#P -34 147 +** +** +. +. +. +** +** +#P 22 147 +** +** +. +. +. +** +** +#P 38 147 +** +** +. +. +. +** +** +#P 105 112 +** +** +. +. +. +** +** +#P 89 112 +** +** +. +. +. +** +** +#P 33 112 +** +** +. +. +. +** +** +#P 21 -151 +** +** +. +. +. +** +** +#P 37 -151 +** +** +. +. +. +** +** +#P 26 -135 +*.* +** +.* +#P 87 -115 +** +** +. +. +. +** +** +#P 103 -115 +** +** +. +. +. +** +** +#P 171 -85 +** +** +. +. +. +** +** +#P 195 -85 +** +** +. +. +. +** +** +#P 211 -85 +** +** +. +. +. +** +** +#P 308 -64 +** +** +. +. +. +** +** +#P 324 -64 +** +** +. +. +. +** +** +#P 301 -21 +** +** +. +. +. +** +** +#P 325 -21 +** +** +. +. +. +** +** +#P 341 -21 +** +** +. +. +. +** +** +#P 343 18 +** +** +. +. +. +** +** +#P 327 18 +** +** +. +. +. +** +** +#P 303 18 +** +** +. +. +. +** +** +#P 333 62 +** +** +. +. +. +** +** +#P 349 62 +** +** +. +. +. +** +** +#P 277 62 +** +** +. +. +. +** +** +#P 362 -30 +.....** +.****.** +.****** +..**** +.* +*.* +*.* +....** +....*.* +......* +....*** +. +. +. +....*** +......* +....*.* +....** +*.* +*.* +.* +..**** +.****** +.****.** +.....** +#P 346 -28 +...** +..*.* +.*..* +......* +* +.....*.*.* +..*..*.*..* +...**.....*..* +........*.*.*..* +.....**.*...*..* +. +.....**.*...*..* +........*.*.*..* +...**.....*..* +..*..*.*..* +.....*.*.* +* +......* +.*..* +..*.* +...** +#P 352 -33 +.**** +****** +****.** +....** +#P 352 -6 +....** +****.** +****** +.**** +#P 331 -23 +.** +*..* +*.* +.* +. +. +. +.* +*.* +*..* +.** +#P 327 -30 +.*** +***** +***.** +...** +#P 327 -9 +...** +***.** +***** +.*** + +#P 313 -22 +.** +*..*....* +.**.....* +. +. +. +.**.....* +*..*....* +.** + +#P 294 -20 +** +** +. +** +** +#P 287 -27 +....** +...*..* +**.* +.....** +*...** +..*.* +. +. +. +. +. +. +. +..*.* +*...** +.....** +**.* +...*..* +....** +#P 364 9 +.......** +...****.** +...****** +....**** +..* +** +.*..* +..***.** +........* +........* +....*..** +.....** +. +.....** +....*..** +........* +........* +..***.** +.*..* +** +..* +....**** +...****** +...****.** +.......** +#P 350 10 +.*** +.* +....* +...* +. +......* +.....**** +........* +****..*.** +*.*.*.*....** +.**..*.* +. +.**..*.* +*.*.*.*....** +****..*.** +........* +.....**** +......* +. +...* +....* +.* +.*** +#P 356 6 +.**** +****** +****.** +....** +#P 342 -38 +.** +**** +**.** +..** +#P 356 33 +....** +****.** +****** +.**** +#P 346 38 +..** +**.** +**** +.** +#P 326 -2 +.* +* +. +.*.* +...* +.* +..* +#P 331 9 +.*** +***** +***.** +...** +#P 331 30 +...** +***.** +***** +.*** +#P 333 16 +.** +*..* +*.* +.* +. +. +. +.* +*.* +*..* +.** +#P 315 17 +.** +*..* +.** +. +. +. +.** +*..* +.** +#P 296 19 +** +** +. +** +** +#P 290 11 +..** +...** +.*.* +*** +*..* +*.*** +.*..* +..** +. +. +. +. +. +..** +.*..* +*.*** +*..* +*** +.*.* +...** +..** +#P 287 32 +.** +** +..* +#P 367 51 +...** +.*....* +.......* +.*.....* +..****** +. +. +. +. +...*** +.*...** +.*.*..** +*.....* +.***** +. +.***** +*.....* +.*.*..** +.*...** +...*** +. +. +. +. +..****** +.*.....* +.......* +.*....* +...** +#P 355 57 +..*..* +.***.** +**...*.** +.*...* +.*.*.*.** +..*****.*.* +...*....** +.........* +. +.........* +...*....** +..*****.*.* +.*.*.*.** +.*...* +**...*.** +.***.** +..*..* +#P 357 51 +.****** +*.....* +......* +*....* +.*.* +#P 357 75 +.*.* +*....* +......* +*.....* +.****** +#P 339 60 +.** +*..* +*.* +.* +. +. +. +.* +*.* +*..* +.** +#P 332 54 +.***** +*....* +.....* +*...* +..* +#P 332 72 +..* +*...* +.....* +*....* +.***** +#P 322 60 +..**.* +.****.** +*....** +*.* +.* +. +.* +*.* +*....** +.****.** +..**.* +#P 306 62 +**.** +.*** +.** +. +.** +.*** +**.** +#P 302 63 +* +** +. +** +* +#P 292 57 +.......* +......*.* +.........* +....*.** +..*.** +***..** +.**..** +. +. +. +.**..** +***..** +..*.** +....*.** +.........* +......*.* +.......* +#P 272 56 +.***** +*....* +.....* +*...* +..* +#P 272 70 +..* +*...* +.....* +*....* +.***** +#P 347 81 +*..* +....* +*...* +.**** +#P 343 -74 +.**** +****** +****.** +....** +. +. +. +. +..** +.*..** +***..* +*....* +***** +. +***** +*....* +***..* +.*..** +..** +. +. +. +. +....** +****.** +****** +.**** +#P 330 -70 +...* +....* +..**** +**...*.** +.*.*.*.* +.*...***..* +..*.*...* +...*....*** +. +. +. +...*....*** +..*.*...* +.*...***..* +.*.*.*.* +**...*.** +..**** +....* +...* +#P 332 -75 +....** +****.** +****** +.**** +#P 332 -50 +.**** +****** +****.** +....** +#P 314 -66 +.** +*..* +*.* +.* +. +. +. +.* +*.* +*..* +.** +#P 307 -72 +...** +***.** +***** +.*** +#P 307 -53 +.*** +***** +***.** +...** +#P 297 -69 +..* +..* +. +......* +.****.* +*..*.** +*.* +.* +. +.* +*.* +*..*.** +.****.* +......* +. +..* +..* +#P 281 -65 +.*.* +....* +**.* +..* +. +..* +**.* +....* +.*.* +#P 277 -63 +* +*** +. +*** +* +#P 268 -68 +.....*** +...*..** +..*...*.* +*...* +*...** +* +.*...* +. +.*...* +* +*...** +*...* +..*...*.* +...*..** +.....*** +#P 322 -80 +..** +**.** +**** +.** +#P 247 -70 +...** +***.** +***** +.*** +#P 236 -94 +.....** +.****.** +.****** +..**** +. +. +..** +.*...* +.*....* +*.....* +.**.*** +. +. +. +.**.*** +*.....* +.*....* +.*...* +..** +. +. +..**** +.****** +.****.** +.....** +#P 232 -91 +.* +*..* +. +. +. +.* +..* +. +. +. +. +. +..* +.* +. +. +. +*..* +.* +#P 226 -97 +.**** +****** +****.** +....** +#P 226 -70 +....** +****.** +****** +.**** +#P 218 -89 +.....*** +...***** +..*** +.*...* +**..*....** +*......*** +.******** +. +.******** +*......*** +**..*....** +.*...* +..*** +...***** +.....*** +#P 216 -102 +.** +**** +**.** +..** +#P 218 -94 +*** +* +.* +#P 218 -72 +.* +* +*** +#P 201 -73 +...** +***.** +***** +.*** +#P 201 -94 +.*** +***** +***.** +...** +#P 201 -88 +.** +.** +*..* +*.* +.* +. +. +. +.* +*.* +*..* +.** +.** +#P 183 -86 +.** +*..* +.** +. +. +. +.** +*..* +.**. +#P 156 -93 +....*.* +...**..* +..***..* +.*** +.*.*..** +**.***.* +.*......* +..*....* +....***** +........** +........** +. +........** +........** +....***** +..*....* +.*......* +**.***.* +.*.*..** +.*** +..***..* +...**..* +....*.* +#P 141 -92 +.*** +***** +***.** +...** +#P 122 -125 +.**** +****** +****.** +....** +. +. +. +. +..** +.*..** +***..* +*....* +***** +. +***** +*....* +***..* +.*..** +..** +. +. +. +. +....** +****.** +****** +.**** +#P 109 -121 +...* +....* +..**** +**...*.** +.*.*.*.* +.*...***..* +..*.*...* +...*....*** +. +. +. +...*....*** +..*.*...* +.*...***..* +.*.*.*.* +**...*.** +..**** +....* +...* +#P 111 -126 +....** +****.** +****** +.**** +#P 111 -101 +.**** +****** +****.** +....** +#P 93 -117 +.** +*..* +*.* +.* +. +. +. +.* +*.* +*..* +.** +#P 86 -123 +...** +***.** +***** +.*** +#P 86 -104 +.*** +***** +***.** +...** +#P 76 -120 +..* +..* +. +......* +.****.* +*..*.** +*.* +.* +. +.* +*.* +*..*.** +.****.* +......* +. +..* +..* +#P 60 -116 +.*.* +....* +**.* +..* +. +..* +**.* +....* +.*.* +#P 56 -114 +* +*** +. +*** +* +#P 47 -119 +.....*** +...*..** +..*...*.* +*...* +*...** +* +.*...* +. +.*...* +* +*...** +*...* +..*...*.* +...*..** +.....*** +#P 101 -131 +..** +**.** +**** +.** +#P 90 -97 +* +*.* +** +#P 26 -121 +...** +***.** +***** +.*** +#P 51 -160 +.****** +*.....* +......* +*....* +..** +. +..** +.*.** +**.*.* +*.**.** +*...** +..*** +. +..*** +*...** +*.**.** +**.*.* +.*.** +..** +. +..** +*....* +......* +*.....* +.****** +#P 43 -154 +..*** +*...* +* +* +.*..* +..*.* +. +..*.* +.*..* +* +* +*...* +..*** +#P 40 -164 +..** +*....* +......* +*.....* +.****** +#P 40 -136 +.****** +*.....* +......* +*....* +..** +#P 27 -153 +..* +.*.* +* +.* +. +. +. +.* +* +.*.* +..* +#P 26 -163 +..* +*.* +*.* +#P 15 -161 +..* +*...* +.....* +*....* +.***** +#P 15 -139 +.***** +*....* +.....* +*...* +..* +#P 15 -153 +* +.* +.* +* +. +. +. +* +.* +.* +* +#P 8 -155 +...** +...** +...** +**.** +.*.* +.*** +. +. +. +.*** +.*.* +**.** +...** +...** +...** +#P 5 -151 +** +** +. +. +. +** +** +#P -7 -152 +.** +*..* +.** +. +. +. +.** +*..* +.** +#P -33 -161 +.*.* +.*.* +.*.** +...** +*..* +.** +#P -33 -140 +.** +*..* +...** +.*.** +.*.* +.*.* +#P -45 -159 +..* +*...* +.....* +*....* +.***** +#P -45 -141 +.***** +*....* +.....* +*...* +..* +#P 30 -168 +*..* +....* +*...* +.**** +#P 111 38 +......** +....*....* +..........* +....*.....* +.....****** +.* +.*** +*.**..* +..***..* +.*****..* +.***.*.*** +......**.** +.....**.** +. +. +. +.....**.** +......**.** +.***.*.*** +.*****..* +..***..* +*.**..* +.*** +.* +.....****** +....*.....* +..........* +....*....* +......** +#P 104 38 +.****** +*.....* +......* +*....* +..** +#P 104 62 +..** +*....* +......* +*.....* +.****** +#P 97 45 +......* +.....*** +..*** +.*...*...* +*..*.*....* +*........* +.******** +. +.******** +*........* +*..*.*....* +.*...*...* +..*** +.....*** +......* +#P 97 40 +.** +** +..* +#P 97 62 +..* +** +.** +#P 79 41 +.***** +*....* +.....* +*...* +..* +. +..** +.*..* +.*.* +..* +. +. +. +..* +.*.* +.*..* +..** +. +..* +*...* +.....* +*....* +.***** +#P 62 48 +.** +*..* +.** +. +. +. +.** +*..* +.** +#P 43 50 +** +** +. +** +** +#P 36 41 +....** +...*** +.**...* +.*...* +* +***..** +*.*.*** +.***.** +...** +. +. +. +. +. +...** +.***.** +*.*.*** +***..** +* +.*...* +.**...* +...*** +....** +#P 19 43 +.***** +*....* +.....* +*...* +..* +#P 18 54 +** +** +#P 94 68 +*..* +....* +*...* +.**** +#P 124 102 +.**** +****** +****.** +....** +. +. +. +. +..** +.*..** +***..* +*....* +***** +. +***** +*....* +***..* +.*..** +..** +. +. +. +. +....** +****.** +****** +.**** +#P 111 106 +...* +....* +..**** +**...*.** +.*.*.*.* +.*...***..* +..*.*...* +...*....*** +. +. +. +...*....*** +..*.*...* +.*...***..* +.*.*.*.* +**...*.** +..**** +....* +...* +#P 113 101 +....** +****.** +****** +.**** +#P 113 126 +.**** +****** +****.** +....** +#P 95 110 +.** +*..* +*.* +.* +. +. +. +.* +*.* +*..* +.** +#P 88 104 +...** +***.** +***** +.*** +#P 88 123 +.*** +***** +***.** +...** +#P 78 107 +..* +..* +. +......* +.****.* +*..*.** +*.* +.* +. +.* +*.* +*..*.** +.****.* +......* +. +..* +..* +#P 62 111 +.*.* +....* +**.* +..* +. +..* +**.* +....* +.*.* +#P 58 113 +* +*** +. +*** +* +#P 49 108 +.....*** +...*..** +..*...*.* +*...* +*...** +* +.*...* +. +.*...* +* +*...** +*...* +..*...*.* +...*..** +.....*** +#P 28 121 +.*** +***** +***.** +...** +#P 103 131 +.** +**** +**.** +..** +#P 92 98 +** +*.* +* +#P 51 137 +...**** +..****** +..****.** +......** +. +. +. +...*** +.** +.*....** +**.**..* +.......* +....*** +. +....*** +.......* +**.**..* +.*....** +.** +...*** +. +. +. +......** +..****.** +..****** +...**** +#P 43 143 +....* +....** +..*..* +*** +.** +..*.* +....* +. +....* +..*.* +.** +*** +..*..* +....** +....* +#P 42 136 +....** +****.** +****** +.**** +#P 42 161 +.**** +****** +****.** +....** +#P 28 145 +..* +.** +*** +. +. +. +. +. +*** +.** +..* +#P 17 139 +...** +***.** +***** +.*** +#P 17 158 +.*** +***** +***.** +...** +#P 16 146 +** +** +#P 16 153 +** +** +#P 9 143 +...** +..*..* +.....* +** +. +.*.* +..* +. +..* +.*.* +. +** +.....* +..*..* +...** +#P -15 139 +...............* +.............**.* +............*...* +........****.*.* +.......*.*...** +.**....*.* +**.*..**.** +.**.***..**** +...*...**.*.** +.........**.** +...........* +. +...........* +.........**.** +...*...**.*.** +.**.***..**** +**.*..**.** +.**....*.* +.......*.*...** +........****.*.* +............*...* +.............**.* +...............* +#P -21 144 +..* +.*.* +*...* +.*..* +.**.** +. +. +. +.**.** +.*..* +*...* +.*.* +..* +#P -43 141 +...** +***.** +***** +.*** +#P -43 156 +.*** +***** +***.** +...** +#P 28 164 +.** +* +#P 32 166 +.** +**** +**.** +..** +#P 27 135 +** +*.* +* diff --git a/programs/demos/life2/lif/BREEDER2.lif b/programs/demos/life2/lif/BREEDER2.lif new file mode 100644 index 000000000..bb82376ec --- /dev/null +++ b/programs/demos/life2/lif/BREEDER2.lif @@ -0,0 +1,359 @@ +#Life 1.05 +#D Smallest Breeder ever created. +#D This is still larger than MAX, but +#D only fills half a quadrant (1/8 of +#D all space) with gliders. +#D By Dean Hickerson +#N +#P 44 -23 +.**** +*...* +....* +...* +. +. +.* +..* +..* +.** +* +. +. +. +.**** +*...* +....* +...* +#P 36 -9 +..** +**.** +**** +.** +#P 27 -26 +...* +....* +*...* +.**** +#P 35 -18 +** +* +#P 28 -16 +..* +.*** +** +....** +#P 19 -18 +..* +*.* +.** +#P 14 -13 +..* +*.* +.** +#P 46 7 +...* +....* +*...* +.**** +. +. +. +* +.** +..* +..* +.* +. +. +...* +....* +*...* +.**** +#P 38 7 +.** +**** +**.** +..** +#P 37 18 +* +** +#P 30 14 +....** +** +.*** +..* +#P 29 24 +.**** +*...* +....* +...* +#P 21 17 +.** +*.* +..* +#P 16 12 +.** +*.* +..* +#P 22 -11 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P 14 -7 +**..*** +**..*.* +**..*** +#P 8 -6 +* +* +* +#P 24 2 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P 16 6 +**..*** +**..*.* +**..*** +#P 10 5 +* +* +* +#P 12 -41 +...** +.**.** +.**** +..** +. +. +.* +.** +*.** +*.* +** +. +. +. +...** +.**.** +.**** +..** +#P 4 -42 +...* +....* +*...* +.**** +#P 7 -33 +** +* +#P -5 -25 +..** +**.** +**** +.** +#P -3 -14 +.***** +*....* +.....* +....* +#P -1 12 +....* +.....* +*....* +.***** +#P -3 23 +.** +**** +**.** +..** +#P 14 25 +..** +.**** +.**.** +...** +. +. +. +** +*.* +*.** +.** +.* +. +. +..** +.**** +.**.** +...** +#P 9 33 +* +** +#P 6 40 +.**** +*...* +....* +...* +#P -12 -21 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P -18 -17 +.*.* +*..** +.*.* +#P -10 12 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P -16 16 +.*.* +*..** +.*.* +#P -10 -62 +..** +.**** +.**.** +...** +. +. +. +** +*.* +*.** +.** +.* +. +. +..** +.**** +.**.** +...** +#P -15 -54 +** +* +#P -18 -47 +.**** +*...* +....* +...* +#P -26 -63 +..** +**.** +**** +.** +#P -32 -58 +* +.** +** +#P -25 -46 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P -33 -42 +.*..*** +**..*.* +.*..*** +#P -35 -34 +.**** +*...* +....* +...* +#P -51 -49 +...** +***.** +***** +.*** +#P -5 46 +.**** +*...* +....* +...* +#P -7 54 +***..** +..*.** +.*....* +#P -5 60 +.**** +*...* +....* +...* +#P -22 61 +...* +....* +*...* +.**** +#P -29 56 +*** +..* +.* +#P -13 46 +..** +**.** +**** +.** +#P -20 38 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P -25 40 +.* +..* +*..* +..* +.* +#P -33 32 +...* +....* +*...* +.**** +#P -47 47 +.*** +***** +***.** +...** diff --git a/programs/demos/life2/lif/BREEDER3.lif b/programs/demos/life2/lif/BREEDER3.lif new file mode 100644 index 000000000..5b271d94a --- /dev/null +++ b/programs/demos/life2/lif/BREEDER3.lif @@ -0,0 +1,358 @@ +#Life 1.05 +#D Backward-shooting Breeder. +#D Just a slight modification +#D of Breeder2. +#D By Dean Hickerson +#N +#P 43 -24 +.**** +*...* +....* +...* +. +. +.* +..* +..* +.** +* +. +. +. +.**** +*...* +....* +...* +#P 35 -10 +..** +**.** +**** +.** +#P 34 -19 +** +* +#P 27 -17 +..* +.*** +** +....** +#P 26 -27 +...* +....* +*...* +.**** +#P 18 -19 +..* +*.* +.** +#P 13 -14 +..* +*.* +.** +#P 45 6 +...* +....* +*...* +.**** +. +. +. +* +.** +..* +..* +.* +. +. +...* +....* +*...* +.**** +#P 37 6 +.** +**** +**.** +..** +#P 36 17 +* +** +#P 29 13 +....** +** +.*** +..* +#P 28 23 +.**** +*...* +....* +...* +#P 20 16 +.** +*.* +..* +#P 15 11 +.** +*.* +..* +#P 21 -12 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P 13 -8 +**..*** +**..*.* +**..*** +#P 7 -7 +* +* +* +#P 23 1 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P 15 5 +**..*** +**..*.* +**..*** +#P 9 4 +* +* +* +#P 11 -42 +...** +.**.** +.**** +..** +. +. +.* +.** +*.** +*.* +** +. +. +. +...** +.**.** +.**** +..** +#P 3 -43 +...* +....* +*...* +.**** +#P 6 -34 +** +* +#P -6 -26 +..** +**.** +**** +.** +#P -4 -15 +.***** +*....* +.....* +....* +#P -2 11 +....* +.....* +*....* +.***** +#P -4 22 +.** +**** +**.** +..** +#P 13 24 +..** +.**** +.**.** +...** +. +. +. +** +*.* +*.** +.** +.* +. +. +..** +.**** +.**.** +...** +#P 8 32 +* +** +#P 5 39 +.**** +*...* +....* +...* +#P -13 -22 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P -19 -18 +.*.* +*..** +.*.* +#P -11 11 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P -17 15 +.*.* +*..** +.*.* +#P -8 -63 +...* +....* +*...* +.**** +#P -10 -56 +.*....* +..*.** +***..** +#P -8 -49 +...* +....* +*...* +.**** +#P -16 -49 +.** +**** +**.** +..** +#P -25 -64 +.**** +*...* +....* +...* +#P -32 -58 +.* +..* +*** +#P -23 -46 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P -28 -44 +.* +..* +*..* +..* +.* +#P -50 -50 +...** +***.** +***** +.*** +#P -36 -35 +.**** +*...* +....* +...* +#P -9 45 +...** +.**.** +.**** +..** +. +. +.* +.** +*.** +*.* +** +. +. +. +...** +.**.** +.**** +..** +#P -14 53 +* +** +#P -17 44 +...* +....* +*...* +.**** +#P -25 60 +.** +**** +**.** +..** +#P -31 56 +** +.** +* +#P -24 36 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P -32 40 +.*..*** +**..*.* +.*..*** +#P -34 31 +...* +....* +*...* +.**** +#P -50 46 +.*** +***** +***.** +...** diff --git a/programs/demos/life2/lif/BREEDER4.lif b/programs/demos/life2/lif/BREEDER4.lif new file mode 100644 index 000000000..1f254f214 --- /dev/null +++ b/programs/demos/life2/lif/BREEDER4.lif @@ -0,0 +1,1984 @@ +#Life 1.05 +#D Pufferless breeder (Standing breeder) +#D A shotgun sends an 8 spaceship salvo eastward every 360 gens. +#D Call the spaceships, from top to bottom, A, B, C, D, D', C', B', +#D and A'. D and D' are MWSSs; the others are HWSSs. (The shotgun's +#D output is approximately glide symmetric.) Every 360 gens, two +#D guns and a kickback reaction are used to create a northeastward +#D glider in front of A and B. A and B redirect the glider +#D southeastward. Then C' and D' duplicate it, producing 2 SEward +#D gliders and a block. The second glider escapes, the block is +#D deleted by D, and the first glider is turned NEward by A' and B'. +#D It is duplicated by C and D, again producing an escaping glider, a +#D block that gets deleted by the next D', and another NEward glider. +#D The latter interacts with the next A and B in the same way as the +#D original glider did, 596 gens later and 118 units farther east. +#D +#D Thus, in gen t, there are approximately t/360 gliders zigzagging +#D east, each producing 2 more gliders every 596 gens. So the +#D population is growing by about 5 * 2/596 * t/360 = t/21456 +#D cells per generation, and the total population is about t^2/42912. +#D The gliders occupy a nonconvex quadrilateral with vertices at +#D (approximately) (0,0), (t/4,t/4), (59t/298,0), and (t/4,-t/4). +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 10/12/92 +#N +#P 161 89 +.* +** +#P 153 86 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P 142 89 +*.* +** +.* +#P 133 84 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P 127 87 +** +* +#P 140 99 +* +** +#P 157 110 +** +.* +#P 146 108 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P 132 110 +..** +.*.* +* +*..* +* +.*.* +..** +#P 123 112 +* +** +#P 130 104 +** +.** +..* +#P 133 99 +* +* +* +#P 127 101 +* +* +* +#P 121 97 +*.** +**.* +#P 115 89 +.** +..* +. +. +..* +*.** +* +* +*..* +.** +#P 149 77 +** +.* +#P 133 75 +....* +..**** +.*.*.** +*..*.*** +.*.*.** +..**** +....* +#P 125 77 +*.* +*...* +....* +.....* +....* +*...* +*.* +#P 115 75 +** +.* +.*.* +..** +#P 143 54 +.* +** +#P 132 51 +...* +..** +.** +*** +.** +..** +...* +#P 114 49 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 109 52 +** +* +#P 126 65 +* +** +#P 118 65 +*** +#P 116 59 +* +* +* +#P 112 63 +*** +#P 107 67 +**.* +*.** +#P 105 84 +** +*.* +..* +..** +#P 95 79 +** +*.* +.*** +..*** +.*** +*.* +** +#P 86 82 +** +* +#P 84 68 +.** +*..* +...* +...* +**.* +.* +. +. +.* +.** +#P 51 54 +.* +** +#P 36 51 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P 26 49 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P 17 51 +** +* +#P 5 54 +.** +.*.* +..*** +...** +** +*** +. +. +..* +.** +#P 11 62 +*.** +**.* +#P 30 64 +* +** +#P 47 75 +** +.* +#P 33 73 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P 22 75 +** +*.* +...* +*..* +...* +*.* +** +#P 13 77 +* +** +#P 7 84 +....** +**.*..*.** +*....*..* +....* +...* +#P 15 90 +** +.* +.*.* +..** +#P 25 92 +...* +..**** +.**.**** +***.**...* +.**.**...* +..*****...* +...*...*** +#P 38 94 +** +*..* +....* +....* +....* +*..* +** +#P 49 97 +.* +** +#P 24 102 +..* +** +.** +#P 29 106 +* +** +#P 16 106 +..*** +......** +**.*...* +.....*.* +#P 24 112 +* +** +#P 10 104 +*.** +**.* +#P 12 119 +* +** +#P 23 117 +..*....** +.*.*.**..* +*...*.*** +*...*.** +*...** +.*.* +..* +#P 35 115 +** +*.* +.*** +..*** +.*** +*.* +** +#P 46 117 +** +.* +#P -1 93 +* +*** +...* +..** +#P 1 99 +..*** +..*** +.*...* +. +**...** +#P -1 117 +..*** +.*...* +*.....* +*.....* +#P 1 127 +* +** +#P -20 85 +....** +**.*..*.** +*....*..* +....* +...* +#P -12 91 +** +.* +* +** +#P -10 110 +* +** +#P -23 97 +** +* +#P -25 105 +*.....* +*.....* +.*...* +..*** +#P -23 118 +...* +..*** +..*** +. +**...** +*.....* +#P -20 131 +.* +** +#P -32 100 +** +.* +#P -34 110 +**...** +. +*.....* +. +.**.** +...* +#P -36 118 +...* +..*.* +.*...* +.***** +**...** +.***** +..*** +...* +#P -34 134 +* +** +#P -42 52 +...* +.*** +* +** +#P -47 59 +...* +..*** +..*** +. +**...** +*.....* +#P -49 71 +..** +...* +*** +* +#P -43 106 +.* +.* +*.* +#P -45 117 +* +** +#P -47 98 +** +.* +* +** +#P -55 92 +....** +**.*..*.** +*....*..* +....* +...* +#P -58 104 +** +* +#P -60 114 +...* +..*** +.***** +**...** +.***** +.***** +..*..* +..*...* +......* +...**.* +.....* +#P -58 127 +**...** +*.....* +. +.*...* +..*** +#P -55 138 +.* +** +#P -66 104 +** +.* +#P -69 113 +**...** +*.*.*.* +.***** +..*** +...* +#P -71 125 +..*** +.**.** +.**.** +.***** +**...** +#P -69 138 +* +** +#P -66 89 +.** +** +..* +#P -70 99 +.** +*.* +..* +#P -77 91 +..** +.*** +*.*..*..* +**..**..** +....** +#P -77 98 +** +* +.* +** +#P -79 117 +* +** +#P -89 94 +*** +..* +.* +#P -90 100 +...* +.*** +* +** +#P -95 105 +..*** +..*** +.*...* +*.....* +.*...* +..*** +#P -93 122 +...* +..*** +.***** +*.*.*.* +**...** +#P -90 134 +.* +** +#P -147 139 +** +* +#P -137 137 +*.* +*...* +....* +.....* +....* +*...* +*.* +#P -125 139 +...** +.*..* +* +* +* +.*..* +...** +#P -113 141 +.* +** +#P -121 133 +.** +** +* +#P -117 131 +*** +#P -123 129 +*** +#P -130 128 +* +** +#P -129 122 +..* +*.* +.** +#P -113 126 +**.* +*.** +#P -108 118 +..** +.*.* +*** +** +...** +..*** +. +. +..* +..** +#P -151 118 +* +** +#P -141 115 +...* +..**** +.**.*.* +***.*..* +.**.*.* +..**** +...* +#P -131 113 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P -117 115 +** +.* +#P -139 106 +** +* +#P -132 104 +....** +....* +.** +*** +.** +....* +....** +#P -123 107 +.** +*.* +..* +#P -117 106 +** +..* +...* +...* +...* +..* +** +#P -107 104 +..** +..* +*.* +** +#P -113 100 +.** +** +* +#P -108 97 +* +* +* +#P -114 95 +* +* +* +#P -118 92 +*.* +.** +.* +#P -122 95 +* +** +#P -105 93 +**.* +*.** +#P -99 85 +.** +*..* +* +* +*.** +..* +. +. +..* +.** +#P -142 86 +* +** +#P -135 83 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P -119 81 +* +** +.** +.*** +.** +** +* +#P -110 79 +..** +..* +*.* +** +#P -125 84 +* +.** +** +#P -149 74 +** +* +#P -143 72 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P -126 74 +** +*..* +....* +....* +....* +*..* +** +#P -115 77 +.* +** +#P -132 74 +.** +*.* +..* +#P -124 67 +*** +..* +.* +#P -127 61 +*.* +.** +.* +#P -132 63 +* +** +#P -115 61 +**.* +*.** +#P -109 53 +.** +*..* +* +* +*.** +..* +. +. +..* +.** +#P -152 54 +* +** +#P -146 51 +....* +..*.* +** +** +** +..*.* +....* +#P -129 49 +** +.* +...** +...*** +...** +.* +** +#P -120 47 +..** +..* +*.* +** +#P -134 53 +* +.** +** +#P -155 -55 +** +* +#P -146 -57 +* +** +.** +.*** +.** +** +* +#P -129 -55 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P -123 -50 +** +*.* +..* +..** +#P -113 -62 +...* +..** +. +...* +..*.* +.*..* +*..* +. +...* +..** +#P -118 -62 +*.** +**.* +#P -135 -64 +** +* +#P -127 -65 +* +* +* +#P -125 -69 +*** +#P -121 -67 +* +* +* +#P -152 -75 +* +** +#P -144 -78 +** +..* +...* +...* +...* +..* +** +#P -127 -80 +* +*.* +...** +...** +...** +*.* +* +#P -118 -77 +.* +** +#P -143 -87 +** +* +#P -136 -89 +....* +.**** +**** +*..* +**** +.**** +....* +#P -120 -87 +** +*.* +.*** +..*** +.*** +*.* +** +#P -111 -82 +** +*.* +..* +..** +#P -126 -87 +.* +.** +*.* +#P -100 -94 +.** +.* +. +.*..* +*..* +*.* +.* +. +.** +.* +#P -106 -94 +*.** +**.* +#P -109 -99 +* +* +* +#P -114 -102 +* +** +.** +#P -118 -97 +...* +...* +.*** +** +.** +* +#P -123 -96 +** +* +#P -140 -107 +* +** +#P -134 -110 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -117 -112 +** +*.* +...* +*..* +...* +*.* +** +#P -108 -107 +** +*.* +..* +..** +#P -123 -109 +.* +..* +*** +#P -152 -119 +** +* +#P -145 -121 +....** +....* +.** +*** +.** +....* +....** +#P -130 -119 +** +..* +...* +...* +...* +..* +** +#P -118 -116 +.* +** +#P -136 -118 +.** +*.* +..* +#P -128 -125 +*** +..* +.* +#P -131 -129 +** +* +#P -124 -129 +*** +#P -122 -135 +* +** +.** +#P -118 -131 +*** +#P -114 -127 +*.** +**.* +#P -108 -127 +.** +.** +.** +..* +.*.* +**.* +. +. +..* +.** +#P -148 -140 +* +** +#P -138 -143 +..** +.*...* +*.....* +*...*.** +*.....* +.*...* +..** +#P -128 -145 +....* +..*.* +** +** +** +..*.* +....* +#P -114 -142 +** +.* +#P -91 -137 +** +.* +#P -94 -127 +**...** +. +*.....* +. +.**.** +...* +#P -96 -115 +..*** +.*...* +. +*.....* +**...** +#P -91 -105 +** +* +.*** +...* +#P -80 -120 +** +* +#P -78 -103 +** +.* +* +** +#P -78 -97 +....** +**....**** +*...**.*** +....* +#P -70 -141 +** +* +#P -72 -131 +...* +..*** +.***** +**...** +.***** +.*...* +..*.* +...* +#P -70 -121 +...* +.**.** +. +*.....* +. +**...** +#P -67 -107 +.* +** +#P -69 -102 +.* +..* +*** +#P -56 -141 +** +.* +#P -59 -132 +**...** +*.*.*.* +.***** +..*** +...* +#P -61 -116 +..*** +.*...* +*.....* +.*...* +..*** +..*** +#P -59 -107 +* +** +#P -79 -59 +*.* +.** +.* +#P -56 -97 +.....*..* +**..**...* +*........* +.....**** +#P -48 -103 +** +* +.* +** +#P -46 -120 +** +* +#P -46 -112 +*** +#P -40 -110 +* +* +* +#P -44 -106 +*** +#P -49 -75 +* +*** +...* +..** +#P -47 -65 +**...** +...* +*.....* +.**.** +..*.* +...* +...* +#P -42 -56 +** +* +.*** +...* +#P -24 -63 +*.* +** +.* +#P -35 -137 +** +* +#P -37 -132 +..*** +..*** +.*...* +*.....* +.*...* +..*** +#P -35 -113 +**...** +.***** +.**.** +.**.** +..*** +#P -33 -103 +.* +** +#P -21 -130 +** +.* +#P -24 -124 +..*** +..*** +.*...* +. +**...** +#P -26 -107 +*.....* +**...** +. +..*** +..*** +...* +#P -28 -98 +..** +...* +*** +* +#P -20 -95 +*.* +** +.* +#P -14 -93 +** +* +.* +** +#P -22 -87 +.**** +*........* +*...**..** +.*..* +#P -12 -110 +** +* +#P -1 -127 +** +* +#P -3 -121 +...* +.**.** +. +*.....* +. +**...** +#P -1 -104 +**...** +*.....* +. +.*...* +..*** +#P -3 -95 +..** +...* +*** +* +#P 10 -119 +** +* +#P 8 -104 +**.* +*.** +#P 14 -108 +* +.** +.*** +...* +#P 19 -108 +*..* +*** +#P 13 -92 +..** +.*.* +.* +** +#P 5 -86 +.....*..* +**..**...* +*........* +.....**** +#P 6 -63 +.** +.** +.** +.* +*.* +*.** +#P 7 -55 +* +** +#P 12 -63 +**.* +*.** +#P 22 -122 +* +*.* +.*.* +.*..* +.*.*..** +*.*...** +*.....** +#P 33 -120 +* +** +.** +.*** +.** +** +* +#P 44 -117 +.* +** +#P 22 -112 +** +.* +#P 27 -106 +** +* +#P 23 -103 +.* +** +*.* +#P 25 -97 +.*....** +*.*..*..* +**.*.*** +**.** +**.* +*.* +.* +#P 36 -99 +** +*.* +...* +*..* +...* +*.* +** +#P 47 -97 +** +.* +#P 14 -78 +** +* +#P 24 -81 +* +**** +.**** +.*..* +.**** +**** +* +#P 33 -79 +...* +..*.* +**...* +**...* +**...* +..*.* +...* +#P 48 -76 +.* +** +#P 31 -65 +** +* +#P 18 -52 +* +** +#P 29 -55 +..*....** +.*.*.**..* +*...*.*** +*...*.** +*...** +.*.* +..* +#P 41 -57 +** +*.* +.*** +..*** +.*** +*.* +** +#P 52 -55 +** +.* +#P 82 -77 +..** +...* +. +*..* +.*..* +..*.* +...* +. +..** +...* +#P 85 -83 +* +** +#P 96 -85 +..* +.*.* +*...** +*...** +*...** +.*.* +..* +#P 104 -87 +..** +..* +*.* +** +#P 114 -98 +.* +.** +. +.* +*.* +*..* +.*..* +. +.* +.** +#P 120 -98 +**.* +*.** +#P 106 -68 +*.** +**.* +#P 111 -63 +*** +#P 115 -61 +* +* +* +#P 117 -65 +*** +#P 125 -66 +** +* +#P 122 -113 +** +* +#P 127 -116 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P 145 -114 +..** +.*.* +* +*..* +* +.*.* +..** +#P 156 -111 +.* +** +#P 129 -106 +..* +.** +** +#P 126 -103 +* +* +* +#P 132 -101 +* +* +* +#P 139 -100 +** +* +#P 138 -93 +.** +** +..* +#P 126 -88 +* +** +#P 135 -90 +** +*.* +...* +*..* +...* +*.* +** +#P 146 -92 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P 158 -94 +..** +..* +*.* +** +#P 114 -78 +..** +.*.* +.* +** +#P 122 -83 +...** +.*..* +* +* +* +.*..* +...** +#P 138 -81 +*.* +*...* +....* +.....* +....* +*...* +*.* +#P 146 -83 +..** +..* +*.* +** +#P 130 -79 +* +*.* +** +#P 108 -53 +* +** +#P 117 -55 +** +*** +..**.* +..*..* +..**.* +*** +** +#P 127 -57 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 142 -55 +** +.* +#P 156 -86 +...* +.*** +* +** +#P 151 -81 +...* +..*** +.*...* +*.***.* +.***** +#P 149 -63 +**...** +...* +*.....* +.**.** +..*.* +...* +...* +#P 152 -52 +* +** +#P 154 -68 +* +.** +** +#P 165 -69 +** +.* +#P 167 -52 +** +.* +* +** +#P 175 -90 +** +* +#P 173 -81 +**.*.** +*.....* +.*...* +..*** +#P 175 -64 +.***** +*.***.* +.*...* +..*** +...* +#P 178 -56 +.* +** +#P 182 -58 +.** +.* +. +. +*.** +*.* +.* +.** +.** +.** +#P 173 -71 +.* +* +*** +#P 194 -38 +** +* +#P 198 -58 +..** +...* +. +*..* +.*..* +..*.* +...* +. +..** +...* +#P 208 -90 +** +.* +#P 205 -80 +..*** +.*...* +*.....* +*.....* +...* +.*...* +..*** +...* +#P 203 -70 +..*** +..*** +.*...* +. +**...** +#P 205 -56 +* +** +#P 216 -52 +** +* +.* +** +#P 218 -69 +** +* +#P 229 -86 +** +* +#P 227 -75 +**...** +. +.*...* +..*** +..*** +#P 229 -65 +...* +..*** +..*** +. +**...** +*.....* +#P 231 -52 +.* +** +#P -15 -13 +..* +. +*.*** +..**.* +..*.** +...***.* +. +.....* +#P -29 -19 +......** +...* +..*.*..** +*.*.***..* +*..****** +...**.** +..******..* +.*..***.*.* +..**..*.* +.......* +...** +#P -14 8 +...*** +...*** +...*** +*** +*** +*** +#P -28 11 +.*.**.** +**.**..** +* +.......** +**.....** +** +........* +**..**.** +.**.**.* +#P -51 -24 +..** +. +*...* +*....* +..*.*.* +...*.*.* +....*....* +.....*...* +. +......** +#P -64 -29 +......** +.......* +..***..** +***.*...* +*....*.** +....*.* +..**.*....* +..*...*.*** +..**..*** +...* +...** +#P -48 17 +....* +..*.** +.* +....* +**.* +.* +#P -62 20 +.*.*..* +.***.*.** +*......* +.*.....** +. +**.....* +.*......* +**.*.*** +..*..*.* +#P -108 -37 +..* +.*.* +*...* +.*...* +..*...* +...*...* +....*.* +.....* +#P -121 -42 +******.** +******.** +.......** +**.....** +**.....** +**.....** +** +**.****** +**.****** +#P -104 31 +....* +..*.** +.* +....* +**.* +.* +#P -118 34 +.*.*..* +.***.*.** +*......* +.*.....** +. +**.....* +.*......* +**.*.*** +..*..*.* +#P -106 -45 +.....* +......* +*.....* +.****** +#P 155 49 +....** +.**..* +.**..* +......* +.*.**** +**.* +....*** +.....* +.....** +.......* +......* +......* +..*** +. +..*** +......* +......* +.......* +.....** +.....* +....*** +**.* +.*.**** +......* +.**..* +.**..* +....** +#P 165 35 +....** +.**..* +.**..* +......* +.*.**** +**.* +....*** +.....* +.....** +.......* +......* +......* +..*** +. +..*** +......* +......* +.......* +.....** +.....* +....*** +**.* +.*.**** +......* +.**..* +.**..* +....** +#P 175 26 +....** +.**..* +.**..* +......* +.*.**** +**.* +....*** +.....* +.....** +.......* +......* +......* +..*** +. +..*** +......* +......* +.......* +.....** +.....* +....*** +**.* +.*.**** +......* +.**..* +.**..* +....** +#P 185 12 +...* +.*..* +. +*...** +.***** +..* +.****** +.*...* +.*...* +.....* +...*.** +...*..* +..***** +..**.* +...** +. +...** +..**.* +..***** +...*..* +...*.** +.....* +.*...* +.*...* +.****** +..* +.***** +*...** +. +.*..* +...* +#P 194 -1 +....** +.***.** +.**..** +.*.*..* +**.**** +**.* +....*** +. +.....** +.....*.* +......** +...*.* +...* +. +...* +...*.* +......** +.....*.* +.....** +. +....*** +**.* +**.**** +.*.*..* +.**..** +.***.** +....** +#P 205 -15 +...* +.*..* +. +*...** +.***** +..* +.****** +.*...* +.*...* +.....* +...*.** +...*..* +..***** +..**.* +...** +. +...** +..**.* +..***** +...*..* +...*.** +.....* +.*...* +.*...* +.****** +..* +.***** +*...** +. +.*..* +...* +#P 214 -23 +....** +.***.** +.**..** +.*.*..* +**.**** +**.* +....*** +. +.....** +.....*.* +......** +...*.* +...* +. +...* +...*.* +......** +.....*.* +.....** +. +....*** +**.* +**.**** +.*.*..* +.**..** +.***.** +....** +#P 225 -38 +..*** +.**** +*.*.** +.* +...*..* +..*..* +.**..* +..*** +...*.* +...*** +......* +...*..* +..**.* +....* +. +....* +..**.* +...*..* +......* +...*** +...*.* +..*** +.**..* +..*..* +...*..* +.* +*.*.** +.**** +..*** diff --git a/programs/demos/life2/lif/BREEDER5.lif b/programs/demos/life2/lif/BREEDER5.lif new file mode 100644 index 000000000..46f24d939 --- /dev/null +++ b/programs/demos/life2/lif/BREEDER5.lif @@ -0,0 +1,1137 @@ +#Life 1.05 +#D Synchronous P32 breeder based on Tim Coe's P16 engine: +#D Breeder makes new puffer every 32 generations; +#D Puffers make new blinker every 32 generations. +#N +#P 194 187 +....**** +...*...* +.......* +......* +...** +. +.**...** +**.***.** +.******* +...**** +#P 188 190 +...* +..*.* +.*..* +**..* +.*.* +.** +...* +#P 190 200 +.****** +*.....* +......* +*....* +..** +#P 183 184 +....** +****.** +****** +.**** +#P 180 189 +....* +.*..* +****.* +*....** +*...* +#P 186 145 +.** +**** +**.** +..** +#P 183 151 +.** +******** +*......* +.......* +.*....* +...** +#P 179 158 +.**** +****** +****.** +....** +#P 173 143 +.***** +*....* +.....* +*...* +..* +#P 166 147 +**..* +*.**.* +*** +.*....* +..** +...*** +.....* +#P 173 149 +...*.* +...*.* +..** +*** +*..* +.** +#P 170 161 +..** +*....* +......* +*.....* +.****** +#P 175 169 +..**** +.****** +*.***.** +**...** +#P 177 174 +** +...* +....* +*...* +.**** +#P 165 170 +.** +*..* +*..* +.* +...*** +....** +#P 165 178 +.*** +***** +***.** +...** +#P 164 189 +** +** +#P 152 180 +..** +*....* +......* +*.....* +.****** +#P 152 171 +....* +. +.*.....** +***.....* +*...* +*..** +.*.* +.*** +#P 156 169 +*** +...* +#P 160 158 +*.* +.** +.* +#P 161 139 +.**** +****** +****.** +....** +#P 153 143 +.*** +***** +***.** +...** +#P 159 150 +** +** +#P 148 189 +** +** +#P 144 176 +..* +*...* +.....* +*....* +.***** +#P 145 164 +.* +* +*** +#P 121 172 +.* +* +*** +#P 97 180 +.* +* +*** +#P 73 188 +.* +* +*** +#P 132 189 +** +** +#P 116 189 +** +** +#P 100 189 +** +** +#P 84 189 +** +** +#P 68 189 +** +** +#P 102 158 +.**** +*...* +....* +...* +** +#P 99 164 +.**...** +**.***.** +.******* +...**** +#P 93 161 +...* +..*.* +.*..* +**..* +.*.* +.** +...* +#P 95 171 +.****** +*.....* +......* +*....* +..** +#P 90 155 +...** +***.** +***** +.*** +#P 78 160 +..***.** +.*..***** +*...*..*.* +....*...*.* +.....*....* +.....**..* +..** +....*.* +.....* +#P 74 172 +.* +..* +*** +#P 66 180 +.* +..* +*** +#P 77 152 +.****** +*.....* +......* +*....* +..** +#P 69 156 +.***** +*....* +.....* +*...* +.* +. +** +#P 90 133 +....****** +****.....* +**.*.....* +**..*...* +......* +......** +.....**** +.....**.** +.......** +#P 70 132 +......* +.....*.*.** +.......*...* +....*......* +...**.**...* +....*.....* +..*....*** +*......* +...* +.* +#P 82 142 +.***** +*....* +.....* +*...* +..* +#P 70 144 +.**** +****** +****.** +....** +#P 62 140 +.*** +***** +***.** +...** +#P 65 136 +** +** +#P 68 126 +** +.** +* +#P 88 125 +.**** +****** +****.** +....** +#P 79 120 +..** +*....* +......* +*.....* +.****** +#P 82 114 +.*...*** +**..***** +.*.****.** +.......** +#P 86 108 +*..* +....* +*...* +.**** +#P 94 108 +....** +****.** +****** +.**** +#P 99 95 +....** +..**.** +..**** +...** +...* +.*...* +*.....* +*.....* +.****** +#P 89 98 +....** +....** +..* +** +.*** +..*.* +#P 86 90 +..** +*....* +......* +*.....* +.****** +#P 84 54 +...**** +..*...* +......* +.....* +..** +. +**...** +#P 84 61 +*.***.** +.****** +..**** +#P 76 78 +.****** +*.....* +*.....* +.*...* +...* +...** +..**** +..**.** +....** +#P 79 67 +.****** +*.....* +......* +*....* +..** +#P 71 70 +.**** +****** +****.** +....** +#P 74 97 +** +** +#P 74 105 +.*** +***** +***.** +...** +#P 72 113 +..** +**.* +*** +..* +** +#P 63 118 +..* +*.* +.** +#P 65 113 +** +** +#P 60 110 +.** +. +* +.* +#P 61 101 +..** +*....* +......* +*.....* +.****** +#P 53 105 +..* +*...* +.....* +*....* +.***** +#P 66 78 +..*.* +.*** +** +..* +....** +....** +#P 65 87 +.***** +*....* +.....* +*...* +..* +#P 53 77 +....** +.....** +.....*** +.....*** +.*..**.*** +.**** +*...* +*..* +.*** +..* +#P 53 89 +.**** +****** +****.** +....** +#P 45 85 +.*** +***** +***.** +...** +#P 74 51 +...** +***.** +***** +.*** +#P 67 54 +.* +* +*..*** +.**.**.....** +.*...**...*** +..**.*..* +....****..* +.......*..* +........** +#P 50 119 +** +*.* +* +#P 26 111 +** +*.* +* +#P 2 103 +** +*.* +* +#P 61 65 +.* +..* +*** +#P 46 72 +..* +** +.** +#P 22 80 +..* +** +.** +#P -2 88 +..* +** +.** +#P 57 31 +.......** +...**.....* +..***......* +.**........* +*...******** +.****** +..* +#P 64 39 +..** +**.** +**** +.** +#P 61 48 +.****** +*.....* +......* +*....* +..** +#P 60 58 +** +** +#P 53 52 +.***** +*....* +.....* +*...* +..* +#P 51 41 +* +#P 51 40 +..* +....* +.....* +*....* +.***** +#P 55 9 +.**** +*...* +....* +...* +** +#P 49 14 +.*** +*...**...** +.*..*.***.** +..********* +......**** +#P 57 26 +....** +****.** +****** +.**** +#P 48 22 +.****** +*.....* +......* +*....* +..** +#P 43 6 +...** +***.** +***** +.*** +#P 40 12 +..* +.*** +*..** +.*** +.** +#P 41 32 +....* +...*.** +.*...*...* +*..**.*..* +....*....* +*****...* +..*.*.** +....* +#P 39 45 +....** +****.** +****** +.**** +#P 33 36 +** +** +* +#P 31 41 +...** +***.** +***** +.*** +#P 36 25 +.* +.** +*.* +#P 32 18 +.* +..* +*** +#P 33 13 +** +** +#P 30 3 +.****** +*.....* +......* +*....* +..** +#P 22 7 +.***** +*....* +.....* +*...* +..* +#P 15 11 +*..* +....* +*...* +.**** +#P 22 26 +..** +*....* +......* +*.....* +.****** +#P 17 19 +*** +* +.* +#P 58 97 +** +** +#P 42 97 +** +** +#P 26 97 +** +** +#P 10 97 +** +** +#P -6 97 +** +** +#P 22 53 +....** +****.** +.***** +..*** +#P 23 59 +.**** +*...* +....* +*..* +#P 16 46 +.****** +*.....* +......* +*....* +..** +#P 16 52 +..*.* +.*..* +.** +* +.** +.**.** +#P 11 62 +...** +***.** +***** +.*** +#P 0 52 +....** +.....** +..** +...**...*** +*.......** +.**.*..** +..*.*..* +...*.* +#P -2 65 +.****** +*.....* +......* +*....* +..** +#P -10 61 +.***** +*....* +.....* +*...* +..* +#P -9 56 +.** +* +.** +#P 15 28 +.** +**** +**.** +..** +#P 8 33 +..* +.****** +*...******** +.**........* +..***......* +...**.....* +.......** +#P 8 41 +.**** +****** +****.** +....** +#P -1 32 +.*** +.*..* +*...* +*...* +.*.* +#P 2 26 +.***** +*....* +.....* +*...* +..* +#P -5 45 +.** +*.* +..* +#P -9 39 +*.* +.** +.* +#P -8 33 +** +** +#P -24 38 +.* +** +*.* +#P -18 26 +.*** +***** +***.** +...** +#P -10 22 +.**** +****** +****.** +....** +#P -1 16 +.** +*.* +.* +#P -17 16 +.** +*.* +.* +#P -33 16 +.** +*.* +.* +#P -49 16 +.** +*.* +.* +#P -65 16 +.** +*.* +.* +#P -81 16 +.** +*.* +.* +#P -48 30 +.* +** +*.* +#P -72 22 +.* +** +*.* +#P 3 3 +.**** +*...* +....* +*..* +#P 2 -3 +....** +****.** +.***** +..*** +#P -7 -4 +..* +...*..** +**.* +* +* +..*.** +...* +#P 10 -27 +....** +..**.** +..**** +...** +...* +.*...* +*.....* +*.....* +.****** +#P 5 -14 +....** +****.** +****** +.**** +#P -1 -32 +..* +*...* +.....* +*....* +.***** +#P 4 -24 +** +** +#P 0 -22 +..* +** +.*** +..*.* +#P -7 -27 +.** +*...* +* +.**.** +..**.* +...*.* +....** +#P -13 -33 +....** +****.** +****** +.**** +#P -21 -29 +...** +***.** +***** +.*** +#P -14 -23 +** +** +#P -13 -16 +* +.** +** +#P -4 -10 +.****** +*.....* +......* +*....* +..** +#P -9 6 +...** +***.** +***** +.*** +#P -21 -5 +....* +..*..* +.....* +......* +..*...*.* +.....*...* +.****...* +* +*..* +.*** +#P -22 9 +.****** +*.....* +......* +*....* +..** +#P -30 5 +.***** +*....* +.....* +*...* +..* +#P -27 -9 +* +*.* +** +#P -51 -1 +* +*.* +** +#P -75 7 +* +*.* +** +#P -58 -91 +....** +..**.** +..**** +...** +...* +.*...* +*.....* +*.....* +.****** +#P -64 -88 +** +** +#P -68 -86 +..* +** +.*** +..*.* +#P -63 -78 +....** +****.** +****** +.**** +#P -69 -96 +..* +*...* +.....* +*....* +.***** +#P -81 -97 +....** +****.** +****** +.**** +#P -89 -93 +...** +***.** +***** +.*** +#P -66 -67 +....** +****.** +.***** +..*** +#P -65 -61 +.**** +*...* +....* +*..* +#P -72 -74 +.****** +*.....* +......* +*....* +..** +#P -77 -58 +...** +***.** +***** +.*** +#P -78 -45 +.*** +***** +***.** +...** +#P -90 -55 +.****** +*.....* +......* +*....* +..** +#P -91 -49 +..** +*....* +......* +*.....* +.****** +#P -98 -59 +.***** +*....* +.....* +*...* +..* +#P -99 -45 +..* +*...* +.....* +*....* +.***** +#P -59 -17 +.****** +*.....* +*.....* +.*...* +...* +...** +..**** +..**.** +....** +#P -64 -25 +.**** +****** +****.** +....** +#P -67 -36 +..*** +.***** +****.** +....** +#P -66 -42 +*..* +....* +*...* +.**** +#P -73 -30 +..** +*....* +......* +*.....* +.****** +#P -69 -17 +..*.* +.*** +** +..* +#P -65 -13 +** +** +#P -70 -8 +.***** +*....* +.....* +*...* +..* +#P -82 -6 +.**** +****** +****.** +....** +#P -90 -10 +.*** +***** +***.** +...** +#P -87 24 +*** +*..* +* +* +.*.* +#P -71 40 +*** +*..* +* +* +.*.* +#P -55 56 +*** +*..* +* +* +.*.* +#P -39 72 +*** +*..* +* +* +.*.* +#P -23 88 +*** +*..* +* +* +.*.* +#P -90 32 +.* +*** +*.** +.*** +.*** +.** +#P -74 48 +.* +*** +*.** +.*** +.*** +.** +#P -58 64 +.* +*** +*.** +.*** +.*** +.** +#P -42 80 +.* +*** +*.** +.*** +.*** +.** +#P -26 96 +.* +*** +*.** +.*** +.*** +.** +#P -10 112 +.* +*** +*.** +.*** +.*** +.** +#P 6 128 +.* +*** +*.** +.*** +.*** +.** +#P 22 144 +.* +*** +*.** +.*** +.*** +.** +#P 38 160 +.* +*** +*.** +.*** +.*** +.** +#P 54 176 +.* +*** +*.** +.*** +.*** +.** diff --git a/programs/demos/life2/lif/BREEDST.lif b/programs/demos/life2/lif/BREEDST.lif new file mode 100644 index 000000000..105b06375 --- /dev/null +++ b/programs/demos/life2/lif/BREEDST.lif @@ -0,0 +1,905 @@ +#Life 1.05 +#D t log(t) via stifled breeder +#D Population in generation t is asymptotic to t log(t) / (6 log(3)). +#D A modified exponential aperiodic pattern emits a LWSS in gen +#D 20*3^n + 32 (n >= 1). Meanwhile, a breeder produces a line of +#D "stifled" guns, with eaters suppressing their outputs. Each LWSS +#D destifles one gun. So in gen t there are about log(t)/log(3) +#D active guns, which have emitted about t log(t)/(30 log(3)) gliders. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 2/11/92 +#N +#P 152 -30 +.....* +......* +..*...* +...**** +. +. +. +.** +**.** +.*..* +.*..* +..** +. +. +.....* +......* +..*...* +...**** +#P 144 -50 +.**** +*...* +....* +...* +. +. +.* +..* +..* +.** +* +. +. +. +.**** +*...* +....* +...* +#P 146 -30 +.** +**** +**.** +..** +#P 136 -36 +..** +**.** +**** +.** +#P 127 -53 +...* +....* +*...* +.**** +#P 119 -45 +..* +*.* +.** +#P 104 -30 +..* +*.* +.** +#P 125 -14 +*.* +** +.* +#P 130 -9 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P 122 -5 +**..*** +**..*.* +**..*** +#P 143 -19 +** +* +#P 136 -24 +..* +*..* +*...* +*...* +*...* +.*.* +..* +#P 136 -14 +...* +....* +*...* +.**** +#P 131 20 +.**** +*...* +....* +...* +. +. +** +*.* +..* +*** +. +. +. +. +.**** +*...* +....* +...* +#P 123 20 +..** +**.** +**** +.** +#P 110 13 +.....**** +....*...* +........* +**..*..* +*** +**..*..* +........* +....*...* +.....**** +#P 139 58 +* +.*** +#P 142 48 +.**** +*...* +....* +...* +. +. +.* +..* +..* +.** +. +. +. +. +.**** +*...* +....* +...* +#P 136 59 +* +** +#P 134 48 +..** +**.** +**** +.** +#P 142 76 +...* +....* +*...* +.**** +#P 151 77 +..** +**.** +**** +.** +#P 151 91 +..** +**.** +**** +.** +#P 144 82 +..* +.*...*** +*...*.*** +.*......** +..*****.* +....**** +.....* +#P 134 92 +.** +**** +**.** +..** +#P 135 68 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P 127 72 +**..*** +**..*.* +**..*** +#P 125 63 +...* +....* +*...* +.**** +#P 125 41 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P 118 43 +..** +.**** +*...** +.**** +..** +#P 119 79 +** +.** +* +#P 109 78 +.*** +***** +***.** +...** +#P 108 59 +.****** +*.....* +......* +.....* +#P 104 64 +** +.** +* +#P 114 35 +...* +....* +*...* +.**** +#P 97 31 +.****** +*.....* +......* +.....* +#P 89 49 +** +.** +* +#P 76 50 +.....** +...**.** +...**** +....** +. +. +**** +*..** +.*..** +.*..* +..** +. +. +. +.....** +...**.** +...**** +....** +#P 70 49 +...* +....* +*...* +.**** +#P 62 43 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P 55 45 +...* +..*.* +**...* +..*.* +...* +#P 62 65 +.** +**** +**.** +..** +#P 45 61 +....** +****.** +****** +.**** +#P 95 10 +..** +...* +*** +* +#P 101 -3 +.** +*.* +** +#P 87 -36 +.**** +*...* +....* +*..* +. +. +** +*.* +..* +*** +. +. +. +. +.**** +*...* +....* +...* +#P 78 -30 +....** +..* +.*..* +** +.** +#P 79 -22 +..** +**.** +**** +.** +#P 79 3 +.**** +*...* +....* +...* +#P 71 -3 +.** +*.* +** +#P 65 10 +..** +...* +*** +* +#P 72 -21 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 66 -17 +.*.* +*..** +.*.* +#P 70 -39 +...* +....* +*...* +.**** +#P 59 -28 +..* +*.* +.** +#P 53 -46 +...* +....* +*...* +.**** +. +. +. +* +.** +..* +..* +.* +. +. +...* +....* +*...* +.**** +#P 46 -40 +....** +. +..** +.** +** +.* +#P 45 -32 +.** +**** +**.** +..** +#P 50 -12 +...* +....* +*...* +.**** +#P 33 -30 +....**** +...*...* +*......* +.*....* +*** +.*......* +*........* +...*.....* +....****** +#P 36 -47 +.**** +*...* +....* +...* +#P 42 -14 +** +* +#P 41 -3 +.** +*.* +** +#P 35 10 +..** +...* +*** +* +#P 13 8 +..* +** +.* +#P 5 10 +..** +...* +*** +* +#P 11 -3 +.** +*.* +** +#P 12 -14 +** +* +#P 19 -43 +.....* +......* +*.....* +.****** +#P -4 -46 +.** +**** +**.** +..** +#P -4 -32 +.** +**** +**.** +..** +#P -11 -40 +.....* +....**** +..*****.* +.*......** +*...*.*** +.*...*** +..* +#P -13 -31 +.**** +*...* +....* +...* +#P -21 -30 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P -28 -28 +...* +..*.* +**...* +..*.* +...* +#P -21 -47 +..** +**.** +**** +.** +#P -26 -43 +* +.** +** +#P -38 -43 +.**** +****** +****.** +....** +#P -18 -14 +** +* +#P -19 -3 +.** +*.* +** +#P -17 8 +..* +** +.* +#P -25 10 +..** +...* +*** +* +#P -38 5 +** +* +#P -30 28 +....* +.....* +*....* +.***** +#P 18 44 +.....* +......* +..*...* +...**** +. +. +. +.** +**.** +.*..* +.*..* +..** +. +. +.....* +......* +..*...* +...**** +#P 12 44 +.** +**** +**.** +..** +#P 3 37 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P -5 41 +**..*** +**..*.* +**..*** +#P 3 61 +.**** +*...* +....* +...* +#P -14 55 +.....* +......* +*.....* +.****** +#P -11 48 +.** +*.* +..* +#P -52 40 +....* +.....* +*....* +.***** +#P -51 -53 +..** +.**** +.**.** +...** +. +. +. +** +*.* +*.** +.** +.* +. +. +..** +.**** +.**.** +...** +#P -60 -45 +...*** +*** +* +*** +#P -59 -38 +.**** +*...* +....* +...* +#P -68 -55 +.** +**** +**.** +..** +#P -74 -65 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P -79 -63 +.* +..* +*..* +..* +.* +#P -89 -63 +..* +** +.* +#P -77 -42 +.**** +*...* +....* +...* +. +. +** +*.* +..* +*** +. +. +. +. +.**** +*...* +....* +...* +#P -86 -36 +....** +..* +.*..* +** +.** +#P -88 -37 +** +* +#P -85 -28 +..** +**.** +**** +.** +#P -92 -27 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P -98 -23 +.*.* +*..** +.*.* +#P -94 -45 +...* +....* +*...* +.**** +#P -77 32 +.** +**** +**.** +..** +#P -77 46 +.** +**** +**.** +..** +#P -82 37 +...* +.* +.*..** +*.....* +.*.*..** +.*...** +...*** +#P -86 33 +.**** +*...* +....* +...* +#P -93 25 +.**** +*...* +....* +...* +. +...* +....* +*...* +.**** +#P -96 27 +* +.* +*** +.* +* +#P -94 49 +..** +**.** +**** +.** +#P -119 35 +...** +***.** +***** +.*** +#P -92 -81 +** +.* +#P -94 -76 +** +* +#P -113 -69 +** +* +#P -107 -84 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P -117 -86 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -126 -83 +** +* +#P -133 -96 +** +* +#P -136 -86 +...* +..*** +.***** +**...** +.***** +.*...* +..*.* +...* +#P -138 -76 +...* +.**.** +. +*.....* +. +**...** +#P -134 -59 +**...** +. +.*...* +..*** +..*** +#P -132 -52 +...* +..*** +.*...* +...* +*.....* +*.....* +.*...* +..*** +#P -134 -38 +..** +...* +*** +* +#P -119 -31 +....* +.....* +*....* +.***** +#P -124 -22 +.* +** +#P -137 -24 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P -146 -26 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P -158 -24 +* +** +#P -136 -28 +** +.** +* +#P -144 -34 +*** +* +.* +#P -145 -43 +*** +*..* +* +* +* +* +.* +#P -160 -43 +.* +*** +*.** +.*** +.*** +.*** +.** +#P -157 -55 +.***...*** +*..*...*..* +...*...* +...*...* +..*.....* +#P -153 -49 +*** +*.* +*** +. +. +*** +*** diff --git a/programs/demos/life2/lif/BSHIP.lif b/programs/demos/life2/lif/BSHIP.lif new file mode 100644 index 000000000..06d6d72f6 --- /dev/null +++ b/programs/demos/life2/lif/BSHIP.lif @@ -0,0 +1,44 @@ +#Life 1.05 +#D Blinker ship +#D Leaves a trail of blinkers +#D which are eaten by a pattern +#D with not quite a large enough +#D appetite (6c/13). A similar +#D idea is shown in PIPUF. +#N +#P 10 -4 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P 6 -1 +** +*** +** +#P 1 -8 +.** +**** +**.** +..** +#P 1 5 +..** +**.** +**** +.** +#P -3 -2 +...* +.*** +*** +.*** +...* +#P -11 -2 +.*** +*...* +*...* +*...* +.*** diff --git a/programs/demos/life2/lif/BSHIP2.lif b/programs/demos/life2/lif/BSHIP2.lif new file mode 100644 index 000000000..33dc299be --- /dev/null +++ b/programs/demos/life2/lif/BSHIP2.lif @@ -0,0 +1,51 @@ +#Life 1.05 +#D Another Blinker puffer +#D +#D An HWSS cleans up behind it. +#D This was was found using a +#D search program. +#N +#P 15 -6 +.* +..*.....* +.*...***** +.**.**...** +.*.......* +.*..*..** +* +.*..*..** +.*.......* +.**.**...** +.*...***** +..*.....* +.* +#P 8 -14 +.**** +*...* +....* +*..* +* +*.* +...** +.*..* +***.*** +......* +......* +#P 8 4 +......* +......* +***.*** +.*..* +...** +*.* +* +*..* +....* +*...* +.**** +#P -5 -7 +.****** +*.....* +......* +*....* +..** diff --git a/programs/demos/life2/lif/BTRACK.lif b/programs/demos/life2/lif/BTRACK.lif new file mode 100644 index 000000000..5c21cf87d --- /dev/null +++ b/programs/demos/life2/lif/BTRACK.lif @@ -0,0 +1,1065 @@ +#Life 1.05 +#D All 8 of David Buckingham's Herschel conduits demonstrated. +#D +#D A Herschel is the 20th generation of the B-heptomino (see BHEPTO). +#D Various combinations of still life can be made to assist the +#D forward propagation of a Herschel, and with Buckingham's complete +#D set, a glider gun of any period greater than 61 can be constructed. +#D This period-1246 loop demonstrates all of them. Each conduit in +#D this pattern is boxed off and labeled, and future Herschel +#D positions are marked by ghost Herschels. See also SLR, GUNB256. +#D +#D Gens Type Tightest Compression; Notes +#D ---- ---- --------------------------- +#D 64 90 degree 153 (also 73, 74, 77); 1 glider, aimed inward. +#D 77 move+flip 61; 1 glider (natural b-heptomino glider). +#D 112 90 degree 61; 1 glider, aimed outward. +#D 117 move 63; 1 glider. Can be perturbed by single-spark oscs. +#D 119 move+flip 231; 3 gliders. +#D 156 90 degree 62; 2 gliders: Normal B-hepto glider + one more. +#D 158 move+flip 176 (also 101, 102, 109, 111, 159); 1 glider. +#D 190 90 degree 107; 1 glider, aimed inward. +#N +#P 14 -70 +*.**....*.** +**.*....**.* +....**......** +.....*.......* +....*.......* +....**......** +..**......** +...*.......* +..*.......* +..**......** +**......** +.*.......* +*.......* +**......** +#P 7 -37 +* +*** +...* +..** +#P 22 -34 +** +** +#P 22 -17 +** +* +.*** +...* +#P 43 -60 +**..**....**.* +.*...*....*.** +*...*.........** +**..**........* +...............* +**..**........** +.*...*....**.* +*...*.....*.** +**..**..** +........* +**..**...* +.*...*..** +*...*.....**.* +**..**....*.** +#P 31 -24 +..** +.*.* +.* +** +#P 35 -21 +..** +*..* +** +#P 45 -37 +** +** +#P 49 -40 +..** +..* +*.* +** +#P 51 -25 +** +*.* +..* +..** +#P 44 -18 +** +** +#P 62 -4 +**....*.**......**.* +.*....**.*......*.** +*...**........**....** +**...*........*.....* +....*..........*.....* +**..**........**....** +.*....*.**......**.* +*.....**.*......*.** +**........**..**....** +...........*..*.....* +**........*....*.....* +.*........**..**....** +*.....*.**......**.* +**....**.*......*.** +#P 21 0 +.........** +..........* +..........*.* +........**.** +.......*.* +.......*.* +.....***.** +....* +....*.**.** +*.**.*.*.** +**.*.* +.....* +.....*.* +......** +#P 50 6 +..** +..* +*.* +** +#P 49 14 +** +* +.*** +...* +#P 24 20 +..** +.*.* +.* +** +#P 71 52 +**....**.*......**.* +.*....*.**......*.** +*...**....**..**....** +**..*.....*...*.....* +.....*.....*...*.....* +**..**....**..**....** +.*....**.*....*.....* +*.....*.**.....*.....* +**........**..**....** +..........*...*.....* +**.........*...*.....* +.*........**..**....** +*.....**.*......**.* +**....*.**......*.** +#P 54 27 +..** +..* +*.* +**.** +...*.* +...*.* +..**.*** +........* +..**.*** +..**.* +#P 34 33 +** +.* +.*.* +..** +#P 51 55 +** +* +.*** +...* +#P 45 59 +** +.* +* +** +#P 42 52 +** +** +#P 32 40 +....** +...*.* +...* +.*** +* +** +#P -8 75 +**..**....**.* +.*...*....*.** +*...*...**....** +**..**..*.....* +.........*.....* +**..**..**....** +.*...*....**.* +*...*.....*.** +**..**........** +..............* +**..**.........* +.*...*........** +*...*.....**.* +**..**....*.** +#P 22 30 +...* +.*** +* +** +#P 15 31 +** +** +#P 16 37 +** +** +#P 21 36 +** +** +#P -30 51 +**..**..*.** +.*...*..**.* +*...*.......** +**..**.......* +............* +**..**......** +.*...*....** +*...*......* +**..**....* +..........** +**..**..** +.*...*...* +*...*...* +**..**..** +#P 5 25 +..** +..* +*.* +** +#P -5 22 +...* +.*** +* +** +#P -11 38 +..** +...* +*** +* +#P -15 20 +** +* +.* +** +#P -18 29 +** +** +#P -63 43 +**....*.**......**.* +.*....**.*......*.** +*...**........** +**...*........* +....*..........* +**..**........** +.*....*.**......**.* +*.....**.*......*.** +**........**..**....** +...........*..*.....* +**........*....*.....* +.*........**..**....** +*.....*.**......**.* +**....**.*......*.** +#P -36 19 +...* +.*** +* +** +#P -51 32 +..** +...* +*** +* +#P -45 17 +...* +.*** +* +** +#P -61 20 +.* +*.* +.* +#P -60 12 +** +.* +.*.* +..** +#P -51 7 +** +** +#P -44 10 +*.** +**.* +#P -84 -25 +*.**....*.** +**.*....**.* +....**......** +.....*.......* +....*.......* +....**......** +..**......** +...*.......* +..*.......* +..**......** +**......** +.*.......* +*.......* +**......** +#P -43 -11 +** +*.* +..* +..** +#P -44 -24 +** +** +#P -63 -26 +** +.* +.*.* +..** +#P -79 -58 +..**.*..**...** +..*.**..**...** +** +*.......**...** +.*......*.*.*.* +**........*.* +..**.*...**.* +..*.**.......** +**....**......* +*.....*......* +.*.....*.....** +**....**......* +..**.*.......* +..*.**.......** +#P -57 -51 +** +** +#P -53 -49 +** +** +#P -51 -55 +** +** +#P -58 -44 +** +** +#P -40 -80 +..**.*..**...** +..*.**..**...** +** +*.......**...** +.*......*.*.*.* +**........*.* +..**.*...**.* +..*.**.......** +**....**......* +*.....*......* +.*.....*.....** +**....**......* +..**.*.......* +..*.**.......** +#P -20 -59 +** +** +#P -22 -55 +** +** +#P -16 -53 +** +** +#P -27 -60 +** +** +#P -32 -11 +**..**....**.* +.*...*....*.** +*...*.........** +**..**........* +...............* +**..**........** +.*...*....**.* +*...*.....*.** +**..**..** +........* +**..**...* +.*...*..** +*...*.....**.* +**..**....*.** +#P -15 -40 +...* +.*** +* +** +#P -12 -36 +.** +..* +* +** +#P -9 -27 +** +** +#P -16 -20 +** +* +.*** +...* +#P -31 -22 +..** +...* +*** +* +#P -28 -26 +** +** +#P 8 -27 +* +*.* +*** +..* +#P 33 -34 +..* +*.* +..* +* +#P 44 -1 +*.* +. +.*** +#P 40 26 +.*.* +. +*** +#P 24 50 +* +*.* +* +..* +#P 4 35 +..* +* +*.* +* +#P -36 29 +..* +* +*.* +* +#P -53 -11 +*** +. +.*.* +#P -46 -36 +.*** +. +*.* +#P -36 -48 +* +..* +*.* +..* +#P -25 -38 +.*.* +. +*** +#P -53 -32 +..** +...* +*** +* +#P -36 -25 +** +* +.*** +...* +#P -14 -6 +..** +...* +*** +* +#P 30 37 +..** +..* +*.* +** +#P 4 -41 +*..*..*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..*..* +#P 28 -44 +...*..*..*..*..*..*..*..*..* +. +. +*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..*..*..*..* +#P 58 -44 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P 18 -4 +*..*..*..*..*..*..*..*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P 57 -4 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P 36 23 +*..*..*..*..*..*..*..*..*..*..* +#P 66 26 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P 36 47 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..*..*..*..*..* +#P 18 23 +* +. +. +*..*..*..*..*..*..* +#P 27 29 +...* +. +. +...* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..* +#P 30 50 +* +. +. +* +. +. +* +#P 27 59 +*..* +. +. +* +. +. +* +. +. +* +. +. +* +#P 6 50 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..* +#P 12 20 +* +. +. +* +. +. +*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P -21 17 +*..*..*..*..*..*..*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..*..*..*..*..*..* +#P -30 10 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P -36 7 +*..*..* +#P -66 4 +*..*..*..*..*..*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..*..*..*..*..*..*..* +#P -37 -12 +* +. +. +* +. +. +* +#P -40 -24 +* +. +. +* +. +. +* +. +. +*..* +#P -58 -27 +*..*..*..*..*..*..* +#P -67 -30 +*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..*..*..*..*..* +#P -47 -55 +* +. +. +* +. +. +* +. +. +* +. +. +* +#P -62 -58 +*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..* +#P -12 -61 +* +. +. +* +. +. +* +. +. +* +#P -30 -64 +*..*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..* +#P -5 -41 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P -32 -44 +...*..*..*..*..*..*..*..*..* +. +. +*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P -32 -17 +* +. +. +*..*..*..*..*..*..*..*..*..* diff --git a/programs/demos/life2/lif/COERAKE1.lif b/programs/demos/life2/lif/COERAKE1.lif new file mode 100644 index 000000000..fbcaaa867 --- /dev/null +++ b/programs/demos/life2/lif/COERAKE1.lif @@ -0,0 +1,26 @@ +#Life 1.05 +#D p16 backward rake +#D A very simple construction: just +#D four *WSS and an extra cell. By +#D Tim Coe, 1996. +#N +#P 4 -4 +....** +****.** +.***** +..*** +#P 5 2 +.**** +*...* +....* +...* +#P -6 -10 +.****** +*.....* +......* +.....* +#P -4 5 +....** +****.** +****** +.**** diff --git a/programs/demos/life2/lif/COERAKE2.lif b/programs/demos/life2/lif/COERAKE2.lif new file mode 100644 index 000000000..d9b837a08 --- /dev/null +++ b/programs/demos/life2/lif/COERAKE2.lif @@ -0,0 +1,39 @@ +#Life 1.05 +#D p16 forward rake +#D Just like the backward rake +#D (coerake1.lif) but with an +#D additional pair of *WSS to +#D turn each glider around. +#D By Tim Coe, 1996. +#N +#P 4 -4 +....** +****.** +.***** +..*** +. +. +..**** +.*...* +.....* +....* +#P -4 5 +....** +****.** +****** +.**** +#P -6 -10 +.****** +*.....* +......* +.....* +#P -17 -8 +.****** +*.....* +......* +.....* +#P -20 4 +.....* +......* +*.....* +.****** diff --git a/programs/demos/life2/lif/CORDER.lif b/programs/demos/life2/lif/CORDER.lif new file mode 100644 index 000000000..39139a019 --- /dev/null +++ b/programs/demos/life2/lif/CORDER.lif @@ -0,0 +1,146 @@ +#Life 1.05 +#D 10-engine Cordership +#D Based on switch engine (SWITCHEN, by Charles Corderman) +#D Dean Hickerson, dean@ucdmath.ucdavis.edu +#N +#P 17 -25 +* +* +..*.....* +.*......*.* +*...*..* +.*..*.*.** +......*.** +#P 1 -9 +**..* +...*.* +..* +. +....** +. +.....** +....* +..**.** +.....** +...* +#P -9 1 +* +* +..*.....* +.*......*.* +*...*..* +.*..*.*.** +......*.** +#P -25 17 +**..* +...*.* +..* +. +....** +. +.....** +....* +..**.** +.....** +...* +#P 11 2 +...*** +..* +.*....** +*...* +*..*....* +*...*...* +.**.*.*** +....* +.....**** +.......** +#P 2 11 +...*** +..*...* +.*....* +*...* +*..*.*** +*.......* +..*...*.* +..*...*.** +....***.** +#P 51 7 +.* +*.* +. +*..* +..** +...* +#P 33 25 +.*.* +* +.*..* +...*** +#P 25 33 +.* +*.* +. +*..* +..** +...* +#P 7 51 +.*.* +* +.*..* +...*** +#P 37 -18 +** +** +#P 45 -10 +** +** +#P 53 -2 +** +** +#P 61 6 +** +** +#P -18 37 +** +** +#P -10 45 +** +** +#P -2 53 +** +** +#P 6 61 +** +** +#P 17 51 +*.* +*.* +.* +#P 25 43 +** +..* +** +#P 43 25 +*.* +*.* +.* +#P 51 17 +** +..* +** +#P 67 -7 +*.* +** +.* +#P 65 42 +.* +** +*.* +#P 45 47 +*** +* +.* +#P 23 71 +*** +* +.* diff --git a/programs/demos/life2/lif/CORDER2.lif b/programs/demos/life2/lif/CORDER2.lif new file mode 100644 index 000000000..8f07c4d58 --- /dev/null +++ b/programs/demos/life2/lif/CORDER2.lif @@ -0,0 +1,136 @@ +#Life 1.05 +#D 7-engine Cordership +#D deleting 10 still lifes and a blinker. +#D Based on switch engine (SWITCHEN, by Charles Corderman) +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 8/23/93 +#N +#P -13 -43 +.*.* +* +.*..* +...*.* +......* +.....*** +.....* +...** +.....* +...*..* +...*.* +...* +#P -26 -34 +.* +*.* +. +*..*...*.*** +..*....* +...*.**.*.* +....**...* +.....* +#P -39 -17 +.*.* +* +.*..* +...*.* +......* +.....*** +.....* +...** +.....* +...*..* +...*.* +...* +#P 3 -39 +..*** +. +. +. +...*** +...*** +...** +..* +**..* +.*...* +.*..* +..*** +#P -10 -22 +..*** +.**..* +*.....* +* +.*..** +..** +#P -15 -23 +.* +.* +*.* +.* +.* +#P -5 -5 +.* +* +.* +#P -2 -8 +.* +*.** +...** +.....* +.**** +...* +#P 20 -18 +.* +*.* +*.* +*..* +.*.* +....* +...** +...* +#P 1 1 +.*** +*...* +.** +...**.** +.....** +#P -6 8 +.* +*.* +*.* +*..* +.*.* +....* +...** +...* +#P -32 4 +** +** +#P -24 12 +** +** +#P -16 20 +** +** +#P 14 -34 +** +** +#P 22 -26 +** +** +#P 30 -18 +** +** +#P 35 -30 +* +*.* +** +#P 36 14 +*** +* +.* +#P 14 20 +.** +** +..* +#P 12 40 +.* +** +*.* diff --git a/programs/demos/life2/lif/CORDPULL.lif b/programs/demos/life2/lif/CORDPULL.lif new file mode 100644 index 000000000..d06c8d4b1 --- /dev/null +++ b/programs/demos/life2/lif/CORDPULL.lif @@ -0,0 +1,221 @@ +#Life 1.05 +#D Diagonal sawtooth with expansion factor 6 +#D Population is unbounded but does not tend to infinity. Its graph is +#D a sawtooth function with ever-increasing teeth. More specifically, +#D the population in generation t = 8*6^n - 216 (n >= 2) is t/36 + 558, +#D but the population in generation 32*6^n - 429 (n >= 2) is only 469. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 5/14/91 +#N +#P -30 -35 +..*** +.*...* +*....* +*..*.* +**.*.* +..**.*..* +....**..* +.....*** +#P -40 -29 +..*** +.*..* +*....* +*..*** +*.....* +.******* +.......* +.......* +.....** +#P -56 -9 +..*** +.*...* +*....* +*..*.* +**.*.* +..**.*..* +....**..* +.....*** +#P -18 -33 +..**...*** +.**** +*...** +.**.*.* +. +.........* +......*..* +.......*** +#P -32 -17 +***.* +***.* +.*........** +..*...***.** +...*......* +....*.*.*.* +.....* +#P 2 -10 +...* +..*.* +.**.** +.**.** +*** +***...* +.** +.*.* +#P -13 5 +....** +..****** +.****** +*......* +.*** +..** +.....* +#P -24 16 +...* +..*.* +.**.** +.**.** +*** +***...* +.** +.*.* +#P -48 10 +** +* +#P -40 18 +** +* +#P -32 26 +** +* +#P -2 -28 +** +* +#P 6 -20 +** +* +#P 14 -12 +** +* +#P -3 11 +....* +**..**.*** +*.....**** +....** +#P -8 16 +...* +.*** +* +** +#P -13 26 +**...** +. +*.....* +. +.**.** +...* +#P -11 34 +...* +..*.* +.*...* +.***** +**...** +.***** +..*** +...* +#P -8 50 +** +* +#P -4 27 +*** +..* +.* +#P 2 32 +*** +* +.* +#P 10 19 +...* +.*** +* +** +#P 5 28 +**...** +.***** +..*** +...* +#P 3 40 +..*** +. +..*.* +.***** +**...** +**...** +#P 5 53 +** +* +#P 15 22 +* +*** +...* +..** +#P 17 31 +**...** +*.....* +. +.*...* +..*** +#P 19 42 +...* +.**.** +. +*.....* +. +**...** +#P 22 56 +** +* +#P 35 31 +.***** +*.***.* +.*...* +..*** +...* +.** +*.* +*.* +.* +#P 33 42 +**.*.** +*.....* +.*...* +..*** +#P 35 53 +** +* +#P 22 21 +.* +** +*.* +#P 24 16 +.*..* +*...**..** +*.......* +.**** +#P 37 19 +** +* +#P 21 -11 +...* +.*** +* +** +#P 16 -2 +**...** +*.*.*.* +.***** +..*** +...* +#P 21 8 +** +* +.*** +...* diff --git a/programs/demos/life2/lif/CORDTOSS.lif b/programs/demos/life2/lif/CORDTOSS.lif new file mode 100644 index 000000000..23761f6f7 --- /dev/null +++ b/programs/demos/life2/lif/CORDTOSS.lif @@ -0,0 +1,207 @@ +#Life 1.05 +#D Caber tosser +#D Population in generation t is asymptotic to 5 log(t)/log(2). +#D +#D A glider bounces back and forth between a Cordership and a fixed +#D reflector; the round trip time doubles with each trip. Whenever +#D the glider hits the fixed reflector, an extra glider is created; +#D these gliders eventually dominate the population. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 5/1/91 +#N +#P -31 -62 +..* +..* +..* +.....** +.....** +*...*** +.*** +..* +.** +.*** +...* +.* +...* +.*** +#P -47 -50 +.....* +......*.**.*.* +***...****...* +......*..**.** +.....* +...*** +...*** +#P -57 -36 +..* +..* +..* +.....** +.....** +*...*** +.*** +..* +.** +.*** +...* +.* +...* +.*** +#P -37 -40 +.*.* +.*.*.*.......* +*..**.*....*** +.**...*.*.**.* +.**...**.***** +.....*.**...** +....*.* +#P -13 -58 +.** +** +.* +*** +*** +..* +*..* +*** +.* +#P -15 -43 +*.* +*..* +*..* +*...* +.*.* +..* +#P -2 -35 +* +* +..*.....* +.*......*.* +*...*..* +.*..*.*.** +......*.** +#P -18 -19 +**..* +...*.* +..* +. +....** +. +.....** +....* +..**.** +.....** +...* +#P -28 -9 +* +* +..*.....* +.*......*.* +*...*..* +.*..*.*.** +......*.** +#P -51 -13 +** +** +#P -43 -5 +** +** +#P -35 3 +** +** +#P -5 -51 +** +** +#P 3 -43 +** +** +#P 11 -35 +** +** +#P -37 -26 +* +.** +** +#P 38 40 +..** +.*.* +.* +** +#P 50 35 +.* +*.* +**.* +**.** +**.*.*** +*.*..*..* +.*....** +#P 61 37 +** +*.* +...* +*..* +...* +*.* +** +#P 72 40 +** +** +#P 48 45 +*.* +** +.* +#P 43 53 +.* +** +*.* +#P 20 51 +.** +*.* +..* +#P -1 55 +** +** +#P 10 53 +* +*.* +...** +...** +...** +*.* +* +#P 20 55 +....** +....** +.** +*** +.** +....** +....** +#P 31 53 +..** +..* +*.* +** +#P 31 62 +..** +.*.* +.* +** +#P 40 57 +** +*..* +....* +....* +....* +*..* +** +#P 51 55 +...*.* +.*...* +.* +*....* +.* +.*...* +...*.* +#P 65 57 +** +** diff --git a/programs/demos/life2/lif/CRYSTAL.lif b/programs/demos/life2/lif/CRYSTAL.lif new file mode 100644 index 000000000..f8bdcaf42 --- /dev/null +++ b/programs/demos/life2/lif/CRYSTAL.lif @@ -0,0 +1,85 @@ +#Life 1.05 +#D Crystal&decay 2700 +#D +#D A p150 gun fires at a pair of pentadecathlons. When the first glider +#D hits the PDs, it is reflected back and hits the second, forming a +#D honey farm. Subsequent gliders form a crystal growing upstream. When +#D the crystal reaches an eater near the gun, it begins to decay. +#D When it's all gone, the cycle begins again. +#D +#D The period of this pattern is 2700, but by moving the PDs, any period +#D of the form 750 + 1950n (n>=0) can be obtained. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 3/27/90 +#N +#P -14 -23 +** +** +#P -17 -19 +...* +..*** +.*...* +...* +*.....* +*.....* +.*...* +..*** +#P -19 2 +**...** +. +.*...* +..*** +..*** +#P -16 11 +** +** +#P -4 -13 +** +** +#P 5 -16 +** +*.* +.*** +..*** +.*** +*.* +** +#P 17 -14 +....* +.**** +**** +*..* +**** +.**** +....* +#P 30 -11 +** +** +#P 13 9 +...* +.*** +* +** +#P 1 19 +** +* +.*** +...* +#P 45 47 +..**......** +.*..*....*..* +******..****** +.*..*....*..* +..**......** +#P 40 59 +*** +*.* +*** +*** +*** +*** +*.* +*** +#P -14 -4 +..* +*.* +.** diff --git a/programs/demos/life2/lif/CYCLTRON.lif b/programs/demos/life2/lif/CYCLTRON.lif new file mode 100644 index 000000000..d215e9e7b --- /dev/null +++ b/programs/demos/life2/lif/CYCLTRON.lif @@ -0,0 +1,443 @@ +#Life 1.05 +#D Cyclotron +#D +#D An inefficient but amusing period 874 = 46*19 glider gun based on +#D a 3 glider collision that produces 4 blocks, 4 beehives, +#D 8 blinkers, and 13 gliders. 28 p46 shuttles are used to redirect +#D some of the gliders: 1 escapes, 1 is destroyed, 8 are reflected +#D back to delete the debris, and 3 are reflected back to collide +#D again. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 7/22/92 +#N +#P -3 -20 +.* +** +#P -10 -37 +***...*** +*..*.*..* +*.......* +#P -3 -47 +** +.* +#P 4 -20 +* +** +#P 4 -37 +***...*** +*..*.*..* +*.......* +#P 4 -47 +** +* +#P -3 23 +** +.* +#P -10 39 +*.......* +*..*.*..* +***...*** +#P -3 50 +.* +** +#P 4 23 +** +* +#P 4 39 +*.......* +*..*.*..* +***...*** +#P 4 50 +* +** +#P -18 -47 +.* +** +#P -35 -55 +..*** +*....* +*.....* +.....* +...** +. +...** +.....* +*.....* +*....* +..*** +#P -45 -54 +** +* +#P -44 -75 +** +.* +#P -61 -75 +*** +* +* +.* +. +.* +* +* +*** +#P -71 -75 +** +* +#P -82 -76 +.* +** +#P -89 -92 +**.....** +**.*.*.** +*..*.*..* +***...*** +#P -82 -103 +** +.* +#P -97 -79 +.* +** +#P -105 -94 +...*...* +....*.* +....*.* +....*.* +*..*...*..* +.***...*** +#P -97 -106 +** +.* +#P -75 -36 +.* +** +#P -92 -44 +..*** +*....* +*.....* +.....* +...** +. +...** +.....* +*.....* +*....* +..*** +#P -102 -43 +** +* +#P -115 -57 +** +* +#P -116 -42 +***.....*** +***.....*** +.**.....** +...*...* +.*..*.*..* +*...*.*...* +.*..*.*..* +.***...*** +#P -108 -30 +.* +** +#P -140 -54 +** +.* +#P -148 -45 +..*.....* +.***...*** +**.*...*.** +#P -147 -27 +* +** +#P -154 37 +** +* +#P -155 45 +..*.....* +.***...*** +*..**.**..* +***.....*** +#P -147 64 +.* +** +#P -127 98 +* +** +#P -118 90 +..* +.** +** +.** +. +. +. +.** +** +.** +..* +#P -100 91 +** +.* +#P -113 78 +* +** +#P -106 78 +.* +** +#P -114 64 +.***...*** +.***...*** +*.**...**.* +*.**...**.* +.**.....** +..*.....* +#P -113 51 +** +* +#P -102 47 +* +** +#P -104 31 +..*.......* +. +***.......*** +.**.**.**.** +..***...*** +...*.....* +#P -102 20 +** +* +#P -80 77 +** +.* +#P -87 87 +.*.....* +***...*** +*.**.**.* +..**.** +..**.** +..**.** +#P -80 104 +.* +** +#P -70 78 +* +** +#P -65 70 +..**..*.* +.***.*...* +**......* +.*.***** +..*** +. +..*** +.*.***** +**......* +.***.*...* +..**..*.* +#P -43 78 +.* +** +#P -45 57 +* +** +#P -33 48 +..* +*..* +***** +***.** +.**.* +..** +. +..** +.**.* +***.** +***** +*..* +..* +#P -18 50 +** +.* +#P 17 48 +** +* +#P 22 47 +.*.** +*..**..*** +*......** +**...*** +..*...* +. +..*...* +**...*** +*......** +*..**..*** +.*.** +#P 44 55 +.* +** +#P 56 74 +* +** +#P 65 66 +..* +.** +** +.** +. +. +. +.** +** +.** +..* +#P 83 74 +.* +** +#P 152 15 +.* +** +#P 144 2 +.**.....** +*..*...*..* +...**.** +..*.*.*.* +..*.*.*.* +*.........* +#P 152 -12 +** +.* +#P 74 4 +.* +** +#P 67 -10 +..**.** +..**.** +..**.** +*.**.**.* +***...*** +.*.....* +#P 74 -23 +** +.* +#P 152 -35 +.* +** +#P 144 -49 +..*.....* +.***...*** +*...*.*...* +*.........* +.***...*** +#P 145 -62 +** +* +#P 106 -47 +* +** +#P 105 -60 +.*.......* +*.*.....*.* +...*...* +*..*...*..* +.*.*...*.* +...**.** +**.**.**.** +**..*.*..** +.***...*** +..*.....* +#P 106 -74 +** +* +#P 127 -94 +** +.* +#P 116 -95 +**** +*..** +.*..** +.*..* +..** +. +..** +.*..* +.*..** +*..** +**** +#P 100 -87 +* +** +#P 80 -105 +** +* +#P 79 -88 +***.....*** +*..**.**..* +.***...*** +..*.....* +#P 80 -78 +* +** +#P 73 -81 +** +.* +#P 62 -81 +*** +..* +..* +.* +. +.* +..* +..* +*** +#P 46 -81 +** +* +#P 43 -53 +** +.* +#P 26 -54 +..*** +*....* +*.....* +.....* +...** +. +...** +.....* +*.....* +*....* +..*** +#P 16 -53 +** +* +#P -121 -27 +..* +*.* +.** +#P -133 41 +.* +.** +*.* +#P -47 -39 +*.* +.** +.* +#P -44 39 +.** +*.* +..* +#P 42 -42 +..* +** +.** +#P 118 -27 +*** +* +.* +#P 127 -37 +*.* +** +.* diff --git a/programs/demos/life2/lif/DOUBLEX.lif b/programs/demos/life2/lif/DOUBLEX.lif new file mode 100644 index 000000000..c1b7c2f51 --- /dev/null +++ b/programs/demos/life2/lif/DOUBLEX.lif @@ -0,0 +1,232 @@ +#Life 1.05 +#D Double-x +#D By Bob Wainwright +#N +#P -64 -32 +** +** +#P -66 -26 +...*.....* +..***...*** +.*..**.**..* +.*...*.*...* +...*.*.*.* +. +**.**...**.** +..*.......* +#P -60 -14 +...* +..*** +.*...* +*.....* +*.....* +.*...* +. +.*...* +*.....* +*.....* +.*...* +..*** +...* +#P -64 -5 +** +** +#P -64 2 +** +** +#P -66 8 +...*.....* +..***...*** +.*..**.**..* +.*...*.*...* +...*.*.*.* +. +**.**...**.** +..*.......* +#P -60 20 +...* +..*** +.*...* +*.....* +*.....* +.*...* +. +.*...* +*.....* +*.....* +.*...* +..*** +...* +#P -64 29 +** +** +#P 63 -32 +** +** +#P 54 -26 +...*.....* +..***...*** +.*..**.**..* +.*...*.*...* +...*.*.*.* +. +**.**...**.** +..*.......* +#P 54 -14 +...* +..*** +.*...* +*.....* +*.....* +.*...* +. +.*...* +*.....* +*.....* +.*...* +..*** +...* +#P 63 -5 +** +** +#P 63 2 +** +** +#P 54 8 +...*.....* +..***...*** +.*..**.**..* +.*...*.*...* +...*.*.*.* +. +**.**...**.** +..*.......* +#P 54 20 +...* +..*** +.*...* +*.....* +*.....* +.*...* +. +.*...* +*.....* +*.....* +.*...* +..*** +...* +#P 63 29 +** +** +#P -21 -27 +..** +**.** +**** +.** +#P 17 -27 +.** +**.** +.**** +..** +#P -44 -28 +.** +**** +**.** +..** +#P 40 -28 +..** +.**** +**.** +.** +#P -46 -20 +*** +* +.* +#P 44 -20 +*** +..* +.* +#P -34 -9 +** +*.* +* +#P 32 -9 +.** +*.* +..* +#P -23 3 +*** +* +.* +#P 21 3 +*** +..* +.* +#P -11 14 +** +*.* +* +#P 9 14 +.** +*.* +..* +#P -10 23 +.**** +*...* +....* +*..* +#P 6 23 +**** +*...* +* +.*..* +#P -33 22 +*..* +....* +*...* +.**** +#P 29 22 +.*..* +* +*...* +**** +#P -52 22 +..* +** +.** +#P 50 22 +* +.** +** +#P -40 11 +*.* +** +.* +#P 38 11 +*.* +.** +.* +#P -29 -1 +..* +** +.** +#P 27 -1 +* +.** +** +#P -17 -12 +*.* +** +.* +#P 15 -12 +*.* +.** +.* +#P -6 -24 +..* +** +.** +#P 4 -24 +* +.** +** diff --git a/programs/demos/life2/lif/E15GROW.lif b/programs/demos/life2/lif/E15GROW.lif new file mode 100644 index 000000000..38f8bc564 --- /dev/null +++ b/programs/demos/life2/lif/E15GROW.lif @@ -0,0 +1,609 @@ +#Life 1.05 +#D t^1.5 +#D Population in generation t is asymptotic to t^(3/2)/sqrt(9720). +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 12/6/91 +#N +#P -69 -83 +***...........*** +*..*..........*..* +*......***....* +*.....*..*....* +.*........*....* +#P -39 -85 +.***...........*** +*..*..........*..* +...*....***......* +...*....*..*.....* +..*....*........* +#P -55 -75 +.* +*** +*.** +.*** +.** +#P -64 -71 +* +** +#P -62 -68 +...* +...* +.* +** +.** +..* +#P -72 -66 +.*** +*..* +...* +...* +..* +#P -64 -56 +*** +..* +.* +#P -59 -51 +*** +..* +.* +#P -57 -61 +.***...*** +*..*...*..* +...*...* +...*...* +..*.....* +#P -53 -55 +*** +*.* +*** +. +. +*** +*** +#P -39 -77 +..* +.*** +**.* +*** +.** +#P -32 -70 +* +* +..* +..** +.** +.* +#P -28 -73 +.* +** +#P -22 -68 +*** +*..* +* +* +.* +#P -29 -58 +*** +* +.* +#P -34 -53 +*** +* +.* +#P -44 -63 +.***...*** +*..*...*..* +...*...* +...*...* +..*.....* +#P -40 -57 +*** +*.* +*** +. +. +*** +*** +#P -87 -52 +.*.............* +***...........*** +*.**....*.....*.** +.***...***.....*** +.**...**..*....** +........*** +#P -88 -43 +.*** +*..* +...* +...* +..* +#P -79 -43 +* +** +#P -52 -42 +.* +*.* +*** +.** +#P -41 -44 +.* +*.* +*** +** +#P -60 -37 +*** +*..* +* +* +* +.* +#P -71 -34 +.* +*** +*.** +.*** +.** +#P -67 -27 +..*.....* +.***...*** +**.*...*.** +***.....*** +.**.....** +#P -63 -21 +.* +*** +. +*.* +.* +#P -108 -32 +.***...........*** +*..*..........*..* +...*....***......* +...*....*..*.....* +..*....*...*....* +#P -102 -27 +*.*..** +....* +*.** +.*** +.*** +..** +.*.* +.*..* +.* +.....* +..*..** +..*..** +...*** +...*** +#P -94 -24 +..* +.*** +**.* +*** +.** +#P -109 -15 +*** +*..* +* +* +.* +#P -103 -6 +.** +*.* +..* +#P -91 -17 +.*.....* +***...*** +*.**.**.* +.***.*** +.**...** +#P -89 -11 +..* +.*.* +*...* +..* +#P -80 -4 +*** +*..* +* +* +.* +#P -95 9 +.* +*** +*.** +.*** +.*** +.** +#P -34 -39 +.*** +*..* +...* +...* +...* +..* +#P -23 -36 +..* +.*** +**.* +*** +.** +#P -21 -54 +..*.............* +.***...........*** +**.*.....*....**.* +***.....***...*** +.**....*..**...** +.......*** +#P -13 -45 +.* +** +#P -6 -45 +*** +*..* +* +* +.* +#P -34 -29 +..*.....* +.***...*** +**.*...*.** +***.....*** +.**.....** +#P -30 -23 +.* +*** +. +*.* +.* +#P -51 36 +*** +..* +.* +#P -36 51 +*** +..* +.* +#P 0 -32 +.*.............* +***...........*** +*.**....*.....*.** +.***...***.....*** +.**...**..*....** +........*** +#P -1 -23 +.*** +*..* +...* +...* +..* +#P 6 -23 +...* +...* +...* +*.* +*.* +*** +#P 15 -15 +..* +.*** +**.* +*** +.** +#P 11 -7 +.* +** +*.* +#P -9 -16 +.***...*** +*..*...*..* +...*...* +...*...* +..*.....* +#P -5 -10 +*** +*.* +*** +. +. +*** +.* +#P -14 -6 +.*** +*..* +...* +...* +..* +#P -25 36 +.***...........*** +*..*..........*..* +...*....***......* +...*....*..*.....* +..*....*...*..*.* +#P -18 41 +*.*.** +.**.** +..*** +. +. +..** +..* +#P -25 44 +..* +.*** +**.* +*** +.** +#P -9 54 +.*** +*..* +...* +...* +..* +#P -1 80 +.*** +*..* +...* +...* +..* +#P -10 20 +..* +.*** +**.* +*** +*** +.** +#P 6 9 +.***...........*** +*..*..........*..* +...*....***......* +...*....*..*.....* +..*....*...*....* +.......**** +........* +#P 6 17 +..* +.*** +**.* +*** +.** +#P 23 26 +*** +*..* +* +* +.* +#P -1 26 +.***...*** +*..*...*..* +...*...* +...*...* +..*.....* +#P 3 32 +*** +*.* +*** +. +. +*** +.* +#P 17 41 +.*** +*..* +...* +...* +...* +...* +..* +#P 28 15 +.** +*.* +..* +#P 33 20 +.** +*.* +..* +#P 38 22 +.* +*...* +*..** +.....* +.** +#P 34 30 +*** +.*** +#P 35 0 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P 27 4 +.*..*** +**..*.* +.*..*** +#P 52 6 +.....* +......* +..*...* +...**** +. +. +. +.** +**.** +.*..* +.*..* +..** +. +. +.....* +......* +..*...* +...**** +#P 46 6 +.** +**** +**.** +..** +#P 41 39 +....** +****.** +****** +.**** +#P 50 40 +.**** +****** +****.** +....** +#P 62 48 +.*** +***** +***.** +...** +#P 64 30 +*** +.*** +#P 68 34 +.**** +*...* +....* +...* +#P 85 -1 +...* +....* +*...* +.**** +#P 78 6 +..* +*.* +.** +#P 73 11 +..* +*.* +.** +#P 68 16 +..* +*.* +.** +#P 99 2 +....**** +...*...* +.......* +...*..* +. +.** +***** +*....* +***..* +.*..** +..** +. +. +. +....**** +...*...* +.......* +......* +#P 94 16 +..** +**.** +**** +.** +#P 90 9 +..*.*** +**...* +*.* +*.** +.** +..* +#P 86 18 +.**** +*...* +....* +...* +. +. +.* +..* +..* +.** +* +. +. +. +.**** +*...* +....* +...* +#P 82 26 +** +* +#P 78 18 +..** +**.** +**** +.** +#P 104 47 +..** +**.** +**** +.** +. +. +* +** +.** +.* +* +. +. +. +..** +**.** +**** +.** +#P 97 52 +..* +.*...** +*...*.* +.* +..***** +....*** +.....* +#P 95 46 +...* +....* +*...* +.**** +#P 88 38 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P 85 42 +* +.** +* +#P 87 62 +.** +**** +**.** +..** +#P 77 54 +** +.** +* diff --git a/programs/demos/life2/lif/EATERS.lif b/programs/demos/life2/lif/EATERS.lif new file mode 100644 index 000000000..fc6ca19d4 --- /dev/null +++ b/programs/demos/life2/lif/EATERS.lif @@ -0,0 +1,127 @@ +#Life 1.05 +#D Examples of glider eaters. +#D Larger examples by Dean Hickerson. +#N +#P -31 -15 +..* +*.* +.** +#P -23 -8 +** +*.* +..* +..** +#P -15 -17 +..* +*.* +.** +#P -8 -10 +**.* +**.*** +......* +**.*** +.*.* +.*.* +..* +#P 6 -11 +.* +..* +*** +#P 12 -16 +.* +..* +*** +#P 8 -6 +...**..** +*...*..** +**** +. +** +** +#P 27 -11 +.* +..* +*** +#P 24 -16 +.* +..* +*** +#P 23 -7 +** +**...* +....*.* +.....*.* +.......* +.......** +#P -35 1 +..* +*.* +.** +#P -29 7 +.** +*..*..** +*.*....*..* +.*.....*.*.* +....**.*..* +....*..* +.*....* +.***** +. +...* +..*.* +...* +#P -13 6 +..* +*.* +.** +#P -8 10 +......** +...**..* +**..*.* +**.*..** +...*.* +...*.* +....* +#P 4 6 +..* +*.* +.** +#P 6 12 +..*...** +.*.*...* +.**...* +.....* +.*****.* +..*...*.* +*....*..* +**....** +#P 20 6 +..* +*.* +.** +#P 19 11 +...........** +......**.*..* +.....*.*.*** +**...*.* +*..*.*.*** +.****.*...* +......*..** +...*.* +...** +#P -33 24 +.* +..* +*** +#P -30 26 +...........* +.........*** +........* +.....**..* +....*..*** +...*.*....** +...*.*.**.* +.***.*.*..* +*...*.*..* +**..*..** +...** diff --git a/programs/demos/life2/lif/EDEN.lif b/programs/demos/life2/lif/EDEN.lif new file mode 100644 index 000000000..441c948f2 --- /dev/null +++ b/programs/demos/life2/lif/EDEN.lif @@ -0,0 +1,15 @@ +#Life 1.05 +#D A Garden of Eden pattern +#D No pattern can have this as +#D its second generation. +#N +#P -16 -4 +********************************* +**.*.***.***.**.*.*.*.*.*.*.*.*.* +*.*.***.***.****.***.*.*.*.*.*.* +*****.***.***.****.************** +*.*.**.***.***.*.***.*.*.*.*.*.* +****.***.***.*****.**.*.*.*.*.*.* +.**.***.***.***.*.*.************* +**.**.***.***.**.****.*.*.*.*.*.* +******************.************** diff --git a/programs/demos/life2/lif/EFENCE.lif b/programs/demos/life2/lif/EFENCE.lif new file mode 100644 index 000000000..f746ca10b --- /dev/null +++ b/programs/demos/life2/lif/EFENCE.lif @@ -0,0 +1,40 @@ +#Life 1.05 +#D Electric fence +#D By Dean Hickerson, 1992. +#D Both ends found by search program. +#D See also STRETCH. +#N +#P -37 -11 +.....................** +....................*.* +................**..* +................*.*.** +........*.........* +**.....****.......*....** +*..*.**...***.*.*.**.....** +.****.*...*...*.**....**.** +......*.*..*.*...**.*.*** +.**..**.**.*.****...** +.*......*..*.*...**...* +...*....*.*...***..***.* +..**.....*......*..*...* +.......................** +#P 6 -9 +.**.......** +.*....**.*..*.**.* +...*...*.*.**.*.** +..**.....*..*.*...** +..*....*..*.*.***...* +**.*..**.*.*...*..**.* +..**.*...**....**....* +..*........**.*.*.**.** +.....*...*...**.*..*.* +....*.*...**....*..*.* +.....*.....*.***....* +...........*.* +............* +#P -9 -6 +**...**...** +..**...**...** +..**...**...** +**...**...** diff --git a/programs/demos/life2/lif/FORERAKE.lif b/programs/demos/life2/lif/FORERAKE.lif new file mode 100644 index 000000000..ed43638f6 --- /dev/null +++ b/programs/demos/life2/lif/FORERAKE.lif @@ -0,0 +1,751 @@ +#Life 1.05 +#D p90 Foreward LWSS rake +#D +#D David Bell +#N +#P -93 -124 +............*.......*...........................*.......* +...........****...****.........................****...**** +..........*...**.**...*..........***..........*...**.**...* +..........*....*.*....*..........***..........*....*.*....* +........*.*.*.**.**.*.*.*.......*...*.......*.*.*.**.**.*.*.* +.......*......**.**......*.................*......**.**......* +......**.*...*.....*...*.**....*.....*....**.*...*.....*...*.** +....**.*.**...........**.*.*...**.*.**...*.*.**...........**.*.** +..**.*......................*...........*......................*.** +.*...*......................*...*...*...*......................*...* +..*.*.......................*....*.*....*.......................*.* +.............................*..*...*..* +...............................*.*.*.* +............................**.*..*..*.** +...........................*.*.*.***.*.*.* +...........................*.*..**.**..*.* +............................***..*.*..*** +.............................*.**...**.* +...........................**...*...*...** +...........................*.*....*....*.* +.............................*..*.*.*..* +.............................*.***.***.* +.............................*.*.....*.* +..........................**.*.*..*..*.*.** +..........................**.*.*..*..*.*.** +.............................*.*.***.*.* +............................*..*******..* +..*.**.***.................................................***.**.* +.**.**....**.*................*.......*................*.**....**.** +*..*.*..*...***..................***..................***...*..*.*..* +.*.....*...*...*.............***.....***.............*...*...*.....* +..............**....***.....**.***.***.**.....***....** +..............**..**.*.........***.***.........*.**..** +...............**....*.**.........*.........**.*....** +....................*..*.*...**.......**...*.*..* +...............**.*..*.*.*.*.............*.*.*.*..*.** +...................*........*...........*........* +..........................*.*************.* +. +.................................*** +. +...............................*.....* +...............................*..*..* +#P -111 -82 +............** +..........***.*..........*** +......**.**...**.*.....*...**..*** +......**..*..*.**.*...**...****.*.* +.....*..*......*...*.....**.*...** +....*..........*...*..*.....*...*..*** +.......*......**.**.*.......*...**..*** +..***.......**.*.*.....*....*.*.*.*....* +.**.*.**...*.....*.*..*****..**.* +*...*...*..**.*.*..*....*...**.*..**.*.* +.........***.**..***..............*** +.......*..*...***....*............* +.........*.....**...*.............* +#P -69 -76 +..**.............** +..*.*...........*.* +..*..*.........*..* +..*..*.........*..* +...*.*.........*.* +....*...........* +....**.........** +....*...........* +. +........**.** +.........*.* +........**.** +. +.......*.....* +.....**.......** +.....**..*.*..** +.....**.**.**.** +......*..*.*..* +.......**...** +. +. +. +.....* +. +.......*....** +.......*....** +........* +.......**...** +.......**...** +. +. +......* +......* +.......* +.......** +......***.** +.......*...* +....*...*** +...*.*...* +...*..**....** +......**...*** +..**.*.***.*..* +**.......*...* +**.**....**..* +...........** +....* +....* +....* +. +. +. +. +......* +.....*..* +.....*...* +.....**..* +.....**.** +.......* +. +.** +*.* +* +** +....***.* +........*...** +...*.**.** +...**....* +..**....** +.........*.* +.........*..* +.......**..* +.......**** +.......*** +#P -49 -28 +.............* +...........***.*** +..........**......* +.....*...*..*...** +....**** +.......* +.*..*.*..* +*.......* +#P -116 -19 +...........**............* +........**.*.**..........***...* +.....****..*....*....***.....**** +....*....*......**...***.....*...* +....***.......*..**..**..*.....*.*** +..............*...**.......**.*..**..* +...*........*.*.***.......**...*.*...* +**.****....**.*.*.*..**.*.**.*.*....** +**.*..*...*..**.*....*..*.*....*.**..* +*.*.*.***....***..**...*...**.*.** +.......**.......****............*..* +.......*..*.*....***............** +.............*.* +#P -81 6 +......*** +..*.**...* +.***...***..*** +*...*....***.*.* +.*.......*....* +..........** +#P -104 23 +...................***..........* +..........*.**...*..*.**......***.*** +.........*..*.**.**.*.*......**......* +..*.**..**..*...*.*..**.**..*...*.*.* +.**.**.*.***.*.*...*...*.*..*.* +*..*.*.*.........*...*.*.*.**.....**....** +.*......*.......****.*...*.*.**....**..**.* +...................*...........**.***..**.* +...............*.*...*.***..*....*.*.*.*.** +......***.**.**...**..*......*............* +......**.**..*...*.......*..*.**............*** +......***....*..*...*....****..................* +.**.**....****.....**......**...**........**..* +.**...*.....***.............*..*.*........*.* +*...*.***........................*..****..* +......*.**.......................*........* +......*...*..........................** +................................************ +...............................**..........** +. +....................................*..* +. +.....................................** +....................................*..* +...................................****** +....................................*..* +.....................................** +#P -43 39 +............*............** +......*...***..........**.*.** +.....****.....***....*....*..**** +....*...*.....***...**......*....* +..***.*.....*..**..**..*.......*** +*..**..*.**.......**...* +*...*.*...**.......***.*.*........* +**....*.*.**.*.**..*.*.*.**....****.** +*..**.*....*.*..*....*.**..*...*..*.** +....**.*.**...*...**..***....***.*.*.* +..*..*............****.......** +....**............***....*.*..* +......................*.* +#P -104 72 +.**.***.............**.**......*** +.**....**.**......**.*...*...**.* +*..*.*....**....*....*....*.*...*.** +.......**.*.*..***...***...*****..*.* +...........**....*...*..*..**...*.*.*** +...............*..*...***....*..*.*.*.*.*** +...........*...*..*...*.*...***.*.*.*......* +...........*...*....*.*.*.*...*.*.*.*.**.** +.............**...............*.*.*.*.......** +.................................**.**..**..** +..................................*.**..*.** +...........................*....***..**.*.***..* +................*........**.*...***.........*.* +............***.***......**.*.*...*..*.*..* +...........*......**....*..**...*..........* +............**...*..*........*............* +......................***..*.*..** +......................*.****.****.* +....................*..*.*.*.*.*.* +#P -54 27 +** +** +. +. +. +. +. +. +. +. +.*** +*.* +*..* +*..* +.*.* +*..* +.** +.* +. +. +. +. +. +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +. +. +. +.* +..* +*** +. +. +. +. +..** +..** +. +. +...** +...** +#P 21 -168 +............*.......*...........................*.......* +...........****...****.........................****...**** +..........*...**.**...*..........***..........*...**.**...* +..........*....*.*....*..........***..........*....*.*....* +........*.*.*.**.**.*.*.*.......*...*.......*.*.*.**.**.*.*.* +.......*......**.**......*.................*......**.**......* +......**.*...*.....*...*.**....*.....*....**.*...*.....*...*.** +....**.*.**...........**.*.*...**.*.**...*.*.**...........**.*.** +..**.*......................*...........*......................*.** +.*...*......................*...*...*...*......................*...* +..*.*.......................*....*.*....*.......................*.* +.............................*..*...*..* +...............................*.*.*.* +............................**.*..*..*.** +...........................*.*.*.***.*.*.* +...........................*.*..**.**..*.* +............................***..*.*..*** +.............................*.**...**.* +...........................**...*...*...** +...........................*.*....*....*.* +.............................*..*.*.*..* +.............................*.***.***.* +.............................*.*.....*.* +..........................**.*.*..*..*.*.** +..........................**.*.*..*..*.*.** +.............................*.*.***.*.* +............................*..*******..* +..*.**.***.................................................***.**.* +.**.**....**.*................*.......*................*.**....**.** +*..*.*..*...***..................***..................***...*..*.*..* +.*.....*...*...*.............***.....***.............*...*...*.....* +..............**....***.....**.***.***.**.....***....** +..............**..**.*.........***.***.........*.**..** +...............**....*.**.........*.........**.*....** +....................*..*.*...**.......**...*.*..* +...............**.*..*.*.*.*.............*.*.*.*..*.** +...................*........*...........*........* +..........................*.*************.* +#P 44 -129 +........******* +........******* +......*.........* +.....**.*.....*.** +....*....*...*....* +...*...............* +....**.*.......*.** +....**.*.......*.** +.......**.....** +....**.**.....**.** +....**.*.......*.** +......**.*...*.** +......**...*...** +........**...** +.........*...* +..........*** +. +. +.**.** +.*..* +**.**...**...**......* +........**...**.....* +....................** +....................*.* +....................** +. +. +........**...** +........**...** +. +........**...** +........**...** +. +. +. +. +..........** +..........****** +............**..* +..........*****.* +.........***...* +........* +........**** +.......*...* +.......**.** +........*.......*.* +...............*..* +.........**.....*.* +#P 68 -126 +..........................** +............***..........*.*** +......***..**...*.....*.**...**.** +.....*.*.****...**...*.**.*..*..** +......**...*.**.....*...*......*..* +..***..*...*.....*..*...*..........* +.***..**...*.......*.**.**......* +*....*.*.*.*....*.....*.*.**.......*** +.......*.**..*****..*.*.....*...**.*.** +*.*.**..*.**...*....*..*.*.**..*...*...* +...***..............***..**.*** +.....*............*....***...*..* +.....*.............*...**.....* +#P 47 -73 +..*...............*** +.***..........***.*** +*...*.......* +**.***..***.**.....** +...*.*.*....*.......* +....****.**...**...* +....****......* +. +...............*.* +................* +......*.**......* +....***.*** +...*..*...* +...*......* +...*....** +.....***** +......** +. +.......* +.......* +.......* +#P 27 -72 +.....* +.***.*** +*......** +.**...*..*...* +...........**** +...........*...* +.........*..*.* +..........* +#P 75 -63 +............*............** +......*...***..........**.*.** +.....****.....***....*....*..**** +....*...*.....***...**......*....* +..***.*.....*..**..**..*.......*** +*..**..*.**.......**...* +*...*.*...**.......***.*.*........* +**....*.*.**.*.**..*.*.*.**....****.** +*..**.*....*.*..*....*.**..*...*..*.** +....**.*.**...*...**..***....***.*.*.* +..*..*............****.......** +....**............***....*.*..* +......................*.* +#P 62 -38 +.......*** +......*...**.* +.***..***...*** +*.*.***....*...* +.*....*.......* +....** +#P 6 -29 +...........**............* +........**.*.**..........***...* +.....****..*....*....***.....**** +....*....*......**...***.....*...* +....***.......*..**..**..*.....*.*** +..............*...**.......**.*..**..* +...*........*.*.***.......**...*.*...* +**.****....**.*.*.*..**.*.**.*.*....** +**.*..*...*..**.*....*..*.*....*.**..* +*.*.*.***....***..**...*...**.*.** +.......**.......****............*..* +.......*..*.*....***............** +.............*.* +#P 45 -22 +...** +...** +..*** +*.* +. +. +.....** +..**.* +...*** +....* +#P 54 -26 +.......*** +......*...**.* +.***..***...*** +*...***....*...* +.**...*.......* +....** +#P 109 -148 +............*.......*...........................*.......* +...........****...****.........................****...**** +..........*...**.**...*..........***..........*...**.**...* +..........*....*.*....*..........***..........*....*.*....* +........*.*.*.**.**.*.*.*.......*...*.......*.*.*.**.**.*.*.* +.......*......**.**......*.................*......**.**......* +......**.*...*.....*...*.**....*.....*....**.*...*.....*...*.** +....**.*.**...........**.*.*...**.*.**...*.*.**...........**.*.** +..**.*......................*...........*......................*.** +.*...*......................*...*...*...*......................*...* +..*.*.......................*....*.*....*.......................*.* +.............................*..*...*..* +...............................*.*.*.* +............................**.*..*..*.** +...........................*.*.*.***.*.*.* +...........................*.*..**.**..*.* +............................***..*.*..*** +.............................*.**...**.* +...........................**...*...*...** +...........................*.*....*....*.* +.............................*..*.*.*..* +.............................*.***.***.* +.............................*.*.....*.* +..........................**.*.*..*..*.*.** +..........................**.*.*..*..*.*.** +.............................*.*.***.*.* +............................*..*******..* +..*.**.***.................................................***.**.* +.**.**....**.*................*.......*................*.**....**.** +*..*.*..*...***..................***..................***...*..*.*..* +.*.....*...*...*.............***.....***.............*...*...*.....* +..............**....***.....**.***.***.**.....***....** +..............**..**.*.........***.***.........*.**..** +...............**....*.**.........*.........**.*....** +....................*..*.*...**.......**...*.*..* +...............**.*..*.*.*.*.............*.*.*.*..*.** +...................*........*...........*........* +..........................*.*************.* +#P 156 -106 +..........................** +............***..........*.*** +......***..**...*.....*.**...**.** +.....*.*.****...**...*.**.*..*..** +......**...*.**.....*...*......*..* +..***..*...*.....*..*...*..........* +.***..**...*.......*.**.**......* +*....*.*.*.*....*.....*.*.**.......*** +.......*.**..*****..*.*.....*...**.*.** +*.*.**..*.**...*....*..*.*.**..*...*...* +...***..............***..**.*** +.....*............*....***...*..* +.....*.............*...**.....* +#P 132 -107 +......*.........* +.....*.**.***.**.* +.....*.*.**.**.*.* +.....***.**.**.*** +.........*...* +........**...** +.......**.....** +....***.*.....*.*** +........***.*** +.........**.** +..........*** +...........* +. +....................* +.................**.* +.**** +....*............*** +*.**....**...**...**** +.*......**...**......* +...................*.* +....................** +.....................** +. +. +........**...** +........**...** +. +........**...** +........**...** +. +. +. +. +. +.........**...* +........*.**..** +..........*....** +. +. +.........*..* +........***..** +.........*.*.**...* +......**....*.*....** +..........**.*.** +.........**.***.** +...........***** +...........*.*.* +..............* +. +..........** +#P 115 -52 +.....* +.***.*** +*......** +.**...*..*...* +...........**** +...........*...* +.........*..*.* +..........* +#P 57 14 +.** +...* +*** +.* +#P 63 8 +.......**.........** +....**.**.........**.** +....**...*.......*...** +***..*...............*..*** +**..***.....***.....***..** +***.........***.........*** +.*.........*...*.........* +..*..*...............*..* +.**.**....*.....*....**.** +.....*******.*.******* +....*.*.*.........*.*.* +#P 136 -53 +.................*** +***............**.* +*..*........***.*.** +*...*..***...**...* +.....*...*.**..** +.....*.....* +..*..*.......*...* +...*..........*** +. +......*.* +.....**.* +...**....* +...*.*..*** +...**.*.* +.....* +. +. +. +.....*** +#P 163 -43 +............*............** +......*...***..........**.*.** +.....****.....***....*....*..**** +....*...*.....***...**......*....* +..***.*.....*..**..**..*.......*** +*..**..*.**.......**...* +*...*.*...**.......***.*.*........* +**....*.*.**.*.**..*.*.*.**....****.** +*..**.*....*.*..*....*.**..*...*..*.** +....**.*.**...*...**..***....***.*.*.* +..*..*............****.......** +....**............***....*.*..* +......................*.* +#P 150 -18 +.......*** +......*...**.* +.***..***...*** +*.*.***....*...* +.*....*.......* +....** +#P 134 -3 +...*** +...*** +...** +..* +**..* +.*...* +.*..* +..*** +#P 141 -1 +...............*..........*** +...........***.***......**.*..*...**.* +..........*......**......*.*.**.**.*..* +...........*.*.*...*..**.**..*.*...*..**..**.* +.................*.*..*.*...*...*.*.***.*.**.** +......**....**.....**.*.*.*...*.........*.*.*..* +.....*.**..**....**.*.*...*.****.......*......* +.....*.**..***.**...........* +.....**.*.*.*.*....*..***.*...*.* +.....*............*......*..**...**.**.*** +.***............**.*..*.......*...*..**.** +*..................****....*...*..*....*** +.*..**........**...**......**.....****....**.** +...*.*........*.*..*.............***.....*...** +.....*..****..*........................***.*...* +.....*........*.......................**.* +.........**..........................*...* +....************ +...**..........** +. +.........** +. +.......****** +#P 90 15 +...........**............* +........**.*.**..........***...* +.....****..*....*....***.....**** +....*....*......**...***.....*...* +....***.......*..**..**..*.....*.*** +..............*...**.......**.*..**..* +...*........*.*.***.......**...*.*...* +**.****....**.*.*.*..**.*.**.*.*....** +**.*..*...*..**.*....*..*.*....*.**..* +*.*.*.***....***..**...*...**.*.** +.......**.......****............*..* +.......*..*.*....***............** +.............*.* +#P 141 48 +..............***......**.**.............***.** +...............*.**...*...*.**......**.**....** +............**.*...*.*....*....*....**....*.*..* +...........*.*..*****...***...***..*.*.** +.........***.*.*...**..*..*...*....** +.....***.*.*.*.*..*....***...*..* +....*......*.*.*.***...*.*...*..*...* +.....**.**.*.*.*.*...*.*.*.*....*...* +..**.......*.*.*.*...............** +..**..**..**.** +....**.*..**.* +*..***.*.**..***....* +.*.*.........***...*.**........* +.....*..*.*..*...*.*.**......***.*** +....*..........*...**..*....**......* +.....*............*........*..*...** +..............**..*.*..*** +.............*.****.****.* +..............*.*.*.*.*.*..* +#P 134 26 +...** +...** +. +. +. +. +. +.........* +.......** +........** +. +. +. +. +. +. +. +. +. +.** +.** +. +. +** +** +#P 124 63 +.* +** +*.* +#P 101 71 +.** +** +..* +#P 79 78 +.* +** +*.* +#P 56 86 +.** +** +..* diff --git a/programs/demos/life2/lif/FUSES.lif b/programs/demos/life2/lif/FUSES.lif new file mode 100644 index 000000000..26a72bd9b --- /dev/null +++ b/programs/demos/life2/lif/FUSES.lif @@ -0,0 +1,285 @@ +#Life 1.05 +#D Some fuses and some fenceposts +#D Mostly by Al Hensel. +#N +#P -35 -12 +* +.* +..* +...* +....* +.....* +......* +.......* +........* +.........* +#P -25 -5 +......* +.....* +.....** +*..** +.*..* +..** +. +..** +..* +...* +....* +#P -18 -15 +.........* +........* +.......* +......* +.....* +....* +...* +..* +.* +* +#P -8 -22 +....** +.....* +....* +...* +..* +.* +* +#P -20 6 +* +.* +..* +...* +....* +.....* +......* +.......* +#P -12 10 +.....* +....* +....** +..** +*..* +.** +. +.** +.* +..* +#P -6 0 +.........* +........* +.......* +......* +.....* +....* +...* +..* +.* +* +#P 4 -9 +........* +.......* +......* +.....* +....* +...* +..* +.* +* +#P 13 -15 +..* +.* +.** +. +.** +*..* +..** +....** +....* +.....* +#P -9 20 +* +.* +..* +...* +....* +.....* +......* +.......* +........* +.........* +#P 1 30 +* +.* +..* +...* +....* +.....* +......* +.......* +........* +#P 10 33 +......* +.....* +.....** +...** +..*.* +..* +*.* +.* +#P 17 24 +........* +.......* +......* +.....* +....* +...* +..* +.* +* +#P 26 17 +....** +.....* +....* +...* +..* +.* +* +#P 19 -5 +* +.* +..* +...* +....* +.....* +......* +.......* +#P 27 3 +*...** +.*..*.*.** +..*.*.**.* +...* +#P 16 -25 +.........* +........* +.......* +......* +.....* +....* +...* +..* +.* +* +#P 26 -31 +..* +.* +.** +. +.** +*..* +..** +....** +....* +.....* +#P 32 -23 +....*.....*.....* +...*.*...*.*...*.* +*..*..*..*..*..*..* +.*.*...*.*...*.*...* +..*.....*.....*.....* +#P 53 -18 +* +.* +..* +...* +....* +.....* +**....* +*.*.*.*...* +...**.**.*.* +..........* +#P 29 -41 +.........* +........* +.......* +......* +.....* +....* +...* +..* +.* +* +#P 39 -52 +......** +.....*..* +.....*..* +...**....** +..*........* +...**....** +....*....* +...*......* +..*........* +.*..........* +*............* +#P 53 -41 +* +.* +..* +...* +#P 57 -41 +.....* +....* +....** +..** +*..* +.** +. +.** +.* +..* +#P 63 -50 +........*.....* +.......*.*...* +......*..*..* +.....*...*.* +....*.....* +...* +..* +.* +* +#P 78 -57 +..** +..*.* +....* +...* +..* +.* +* +#P 60 -31 +* +.* +..* +...* +....* +.....* +......* +.......* +........* +.........* +#P 70 -21 +* +.* +..* +...* +....* +.....* +......* +.......* +........* +#P 79 -12 +*..** +.*..* +..** +. +**** +*..* +.** diff --git a/programs/demos/life2/lif/GLIDERS6.lif b/programs/demos/life2/lif/GLIDERS6.lif new file mode 100644 index 000000000..0b7afdc72 --- /dev/null +++ b/programs/demos/life2/lif/GLIDERS6.lif @@ -0,0 +1,18 @@ +#Life 1.05 +#D How 6 gliders can pass right through each other +#D +#D This is somewhat amazing, considering that even +#D 4-glider collisions have not all been explored. +#N +#P 3 -3 +..* +**........* +.**...*..* +.....**..*** +.....*.* +#P -13 0 +....*.* +***..** +..*..*...** +.*........** +.........* diff --git a/programs/demos/life2/lif/GUN104.lif b/programs/demos/life2/lif/GUN104.lif new file mode 100644 index 000000000..f8440018a --- /dev/null +++ b/programs/demos/life2/lif/GUN104.lif @@ -0,0 +1,61 @@ +#Life 1.05 +#D p104 r-pentomino shuttle gun +#D by Noam Elkies, March 1996. +#N +#P -4 1 +** +.** +.* +#P -10 4 +*** +..* +#P -19 -9 +.** +.** +.** +.* +*.* +*.** +. +. +.** +.** +#P -19 4 +.** +*..* +*.* +.*.** +..*** +...** +#P -10 -5 +** +** +#P -2 8 +.* +*.* +.* +#P 0 -8 +.* +*.* +.* +#P 9 6 +** +** +#P 15 -7 +** +*** +**.* +..*.* +.*..* +..** +#P 16 2 +.** +.** +.** +.* +*.* +*.** +. +. +.** +.** diff --git a/programs/demos/life2/lif/GUN132.lif b/programs/demos/life2/lif/GUN132.lif new file mode 100644 index 000000000..6a967b1b0 --- /dev/null +++ b/programs/demos/life2/lif/GUN132.lif @@ -0,0 +1,78 @@ +#Life 1.05 +#D p132 glider gun, using only one p44 engine. +#D +#D p44 oscillator by David Buckingham. +#D Gun by Dean Hickerson, June 1996. +#N +#P -21 -1 +.** +*.* +*.*.** +.*.*.* +...* +.*..* +....* +*...* +*...* +....* +.*..* +...* +.*.*.* +*.*.** +*.* +.** +#P -4 5 +.** +*.* +* +*.* +.** +#P 3 5 +** +*.* +..* +*.* +** +#P 17 -1 +...** +...*.* +**.*.* +*.*.* +..* +.*..* +.* +.*...* +.*...* +.* +.*..* +..* +*.*.* +**.*.* +...*.* +...** +#P -4 21 +** +** +#P 4 21 +** +** +#P 11 -2 +** +*.* +..* +..** +#P -8 -8 +* +*** +...* +..** +#P -7 -19 +.* +..** +** +..* +#P 6 -22 +..** +..* +*.* +** diff --git a/programs/demos/life2/lif/GUN144.lif b/programs/demos/life2/lif/GUN144.lif new file mode 100644 index 000000000..504d01947 --- /dev/null +++ b/programs/demos/life2/lif/GUN144.lif @@ -0,0 +1,58 @@ +#Life 1.05 +#D p144 glider gun +#D Found by Bill Gosper, 7/22/94, +#D using an oscillator by Achim +#D Flammenkamp, Dean Hickerson, +#D and David Bell, combined with +#D a p72 oscillator by Bob +#D Wainwright. Same period as +#D GUNSTAR but much smaller. +#N +#P -29 -11 +....** +****....** +***.**..** +.....* +#P -9 -11 +.....* +***.**..** +****....** +....** +#P -22 -4 +** +** +#P -8 -4 +** +** +#P -12 -1 +.*** +* +*..* +.** +#P 1 2 +..** +.*..* +*...* +...* +.*** +.* +#P -2 8 +*** +#P 10 -1 +...* +.*** +.* +*...* +*..* +.** +#P 15 -2 +*** +#P 20 -6 +** +** +#P 20 11 +** +** +#P -6 11 +** +** diff --git a/programs/demos/life2/lif/GUN184.lif b/programs/demos/life2/lif/GUN184.lif new file mode 100644 index 000000000..c5ed90193 --- /dev/null +++ b/programs/demos/life2/lif/GUN184.lif @@ -0,0 +1,37 @@ +#Life 1.05 +#D p184 gun using a single b-heptomino. +#D +#D Since 184 is a multiple of 46, this +#D gun is perfect for p46 glider logic. +#D David Buckingham, July 1996. +#N +#P -3 -19 +...* +.*** +* +** +#P 8 -15 +...* +.*** +* +** +#P -7 0 +.*** +*..* +**..* +...** +#P -19 -3 +..** +.*.* +.* +** +#P -15 8 +..** +.*.* +.* +** +#P -4 13 +** +* +.*** +...* diff --git a/programs/demos/life2/lif/GUN246.lif b/programs/demos/life2/lif/GUN246.lif new file mode 100644 index 000000000..6b640b128 --- /dev/null +++ b/programs/demos/life2/lif/GUN246.lif @@ -0,0 +1,42 @@ +#Life 1.05 +#D p246 gun, using a single bookend-based engine +#D +#D by David Buckingham, June 1996 +#N +#P 10 -21 +.....** +.....*..* +. +. +.....*.** +**..*.* +*....* +....* +.*..* +#P 16 3 +** +*.* +..* +..** +#P -23 0 +..** +.*.* +.* +** +#P -17 13 +...* +..*.**** +.*.*.*** +*.* +.* +.** +.** +.** +#P -11 -8 +** +** +#P 1 -5 +.** +..* +*.* +** diff --git a/programs/demos/life2/lif/GUN30.lif b/programs/demos/life2/lif/GUN30.lif new file mode 100644 index 000000000..eaf387669 --- /dev/null +++ b/programs/demos/life2/lif/GUN30.lif @@ -0,0 +1,39 @@ +#Life 1.05 +#D p30 glider gun (the Original) +#D +#D This is made of two of a pattern +#D know as the "queen bee", which +#D sometimes occurs naturally, +#D whose debris can be deleted on +#D the sides by blocks or eaters. +#D But a collision in the center +#D can, as seen here, miraculously +#D form a glider. Just one of these +#D moving back and forth is called +#D piston (see the p30 in OSCSPN2). +#N +#P 4 -5 +....* +.**** +**** +*..* +**** +.**** +....* +#P 13 -4 +* +* +#P -6 -3 +..* +.*.* +*...** +*...** +*...** +.*.* +..* +#P 17 -2 +** +** +#P -17 0 +** +** diff --git a/programs/demos/life2/lif/GUN44.lif b/programs/demos/life2/lif/GUN44.lif new file mode 100644 index 000000000..78f87a901 --- /dev/null +++ b/programs/demos/life2/lif/GUN44.lif @@ -0,0 +1,74 @@ +#Life 1.05 +#D Single-engine p44 glider gun +#D Found by David Buckingham, Oct 1996 +#N +#P -15 -13 +** +.* +.*.* +..** +#P 1 -20 +..** +..* +*.* +** +#P 3 -13 +** +** +#P 6 -10 +...* +.*** +* +** +#P -21 -3 +.** +*.* +*.*.** +.*.*.* +...* +..*..* +..* +..*...* +..*...* +..* +..*..* +...* +.*.*.* +*.*.** +*.* +.** +#P -4 3 +..* +.** +* +.** +..* +#P 3 3 +* +** +..* +** +* +#P 16 -3 +....** +....*.* +.**.*.* +.*.*.* +...* +.*..* +....* +*...* +*...* +....* +.*..* +...* +.*.*.* +.**.*.* +....*.* +....** +#P -4 19 +** +** +#P 4 19 +** +** diff --git a/programs/demos/life2/lif/GUN46.lif b/programs/demos/life2/lif/GUN46.lif new file mode 100644 index 000000000..f055c366a --- /dev/null +++ b/programs/demos/life2/lif/GUN46.lif @@ -0,0 +1,38 @@ +#Life 1.05 +#D p46 glider gun +#D Based on two shuttles which +#D make use of a double +#D B-heptomino reaction. See +#D the p46 piston in OSCSPN2. +#N +#P 2 -17 +** +** +#P -6 -8 +..* +.*** +**.* +#P 1 -8 +.* +*** +*.** +#P -25 4 +..* +..** +*.*** +....** +...** +...* +. +...* +...** +....** +*.*** +..** +..* +#P -36 6 +** +** +#P -9 13 +** +** diff --git a/programs/demos/life2/lif/GUNB112.lif b/programs/demos/life2/lif/GUNB112.lif new file mode 100644 index 000000000..ab465fba8 --- /dev/null +++ b/programs/demos/life2/lif/GUNB112.lif @@ -0,0 +1,125 @@ +#Life 1.05 +#D p112 gun, using a B track +#D By Dave Buckingham, 7/5/96. +#N +#P -30 -29 +* +*** +...* +..** +#P -27 -23 +** +** +#P -15 -31 +...* +.*** +* +** +#P -11 -15 +** +* +..* +.** +#P -14 -11 +** +* +.*** +...* +#P 25 -30 +..** +..* +*.* +** +#P 21 -27 +** +** +#P 27 -15 +** +*.* +..* +..** +#P 11 -11 +..** +*..* +** +#P 7 -14 +..** +.*.* +.* +** +#P 26 25 +** +* +.*** +...* +#P 25 21 +** +** +#P 11 27 +..** +...* +*** +* +#P 8 11 +** +* +..* +.** +#P 10 7 +* +*** +...* +..** +#P -29 26 +..** +.*.* +.* +** +#P -23 25 +** +** +#P -31 11 +** +.* +.*.* +..** +#P -15 8 +..** +*..* +** +#P -11 10 +..** +..* +*.* +** +#P -11 -23 +** +.** +.* +#P 20 -11 +..* +*** +.* +#P 8 20 +.* +** +.** +#P -23 8 +.* +*** +* +#P -1 -32 +** +.* +.*.* +..** +#P 28 -1 +...* +.*** +* +** +#P -3 28 +** +*.* +..* +..** diff --git a/programs/demos/life2/lif/GUNB256.lif b/programs/demos/life2/lif/GUNB256.lif new file mode 100644 index 000000000..dd1362c6c --- /dev/null +++ b/programs/demos/life2/lif/GUNB256.lif @@ -0,0 +1,59 @@ +#Life 1.05 +#D p256 gun, using a B track +#D By David Buckingham, 9/29/95. +#D Based on an idea by Mark Niemec. +#D See also BTRACK, SLR. +#N +#P 16 7 +.......** +.......** +. +. +. +..** +..** +......** +......** +. +. +** +** +#P 7 -24 +** +**.....** +.......** +. +. +.....** +.....** +...........** +...........** +#P -24 -19 +.......** +.......** +. +. +.** +.** +.....** +.....** +. +. +. +** +** +#P -19 16 +** +** +......** +......** +. +. +....** +....**.....** +...........** +#P 0 9 +* +*** +*.* +..* diff --git a/programs/demos/life2/lif/GUNB856.lif b/programs/demos/life2/lif/GUNB856.lif new file mode 100644 index 000000000..fcaf59b6a --- /dev/null +++ b/programs/demos/life2/lif/GUNB856.lif @@ -0,0 +1,135 @@ +#Life 1.05 +#D p856 gun, using a B track +#N +#P 22 13 +.* +*** +*.** +#P 23 2 +** +** +#P 4 -9 +..** +..** +. +...* +..*.* +.*..* +*..* +. +*..* +..** +#P 42 -13 +...** +...* +..**..*** +..*...*.*** +..**.*....* +....*.* +*....*.** +***.*...* +..***..** +.......* +......** +#P 28 -34 +...* +.*** +* +** +#P 2 -24 +** +** +#P -9 -8 +.**** +*.......** +*...**..** +.*..** +#P -12 -51 +.*.*..* +.***.*.** +*......* +.*.....** +. +**.....* +.*......* +**.*.*** +..*..*.* +#P -34 -31 +** +.* +.*.* +..** +#P -24 -3 +** +** +#P -9 0 +..** +..** +. +...* +..*.* +.*..* +*..* +. +*..* +..** +#P -51 4 +**.****** +**.****** +** +**.....** +**.....** +**.....** +.......** +******.** +******.** +#P -31 31 +..** +...* +*** +* +#P -3 23 +** +** +#P 0 5 +.**** +*.......** +*...**..** +.*..** +#P 2 41 +.......** +......**** +..*.**.**.* +.*..** +***..**..** +***..*.**** +.*..*...*..* +..****.*..*** +..**..**..*** +.......**..* +..*.**.**.* +...**** +....** +#P 31 28 +** +*.* +..* +..** +#P 20 19 +** +** +#P -7 32 +..** +...* +*** +* +#P 32 4 +** +*.* +..* +..** +#P 4 -35 +...* +.*** +* +** diff --git a/programs/demos/life2/lif/GUNSTAR.lif b/programs/demos/life2/lif/GUNSTAR.lif new file mode 100644 index 000000000..019c4463c --- /dev/null +++ b/programs/demos/life2/lif/GUNSTAR.lif @@ -0,0 +1,443 @@ +#Life 1.05 +#D 4-barrelled p144 gun +#D This is a p144 gun based on an unnamed p72 oscillator found by +#D Bob Wainwright. Two copies of the p72 together with a blocker and +#D 2 eaters can duplicate a glider. One output glider emerges in the +#D same direction as the original; the other is turned 90 degrees. +#D By putting together 4 such reflectors, a 4-barrelled gun can be +#D built with period 144+72N for any N>=0. +#D This was built by David Buckingham some time before 11/21/91. +#D (This header written by Dean Hickerson, 1/25/93) +#N +#P -36 -75 +.** +.** +.** +.* +*.* +*.** +. +. +.** +.** +#P -36 -55 +.** +.** +.** +..* +.*.* +**.* +. +. +.** +.** +#P -29 -68 +** +** +#P -25 -63 +** +*.* +* +#P -29 -59 +.....** +.*...*..* +*..*.*** +***.* +.*.*** +.......* +#P -20 -50 +*** +* +.* +#P -11 -53 +** +** +#P -15 -64 +* +*** +...* +..** +#P 3 -61 +.* +** +*.* +#P 10 -64 +..** +..* +*.* +** +#P 14 -61 +..** +..** +. +...* +..*.* +.*..* +*..* +. +*..* +..** +#P -4 -44 +..** +...* +*** +* +#P 7 -43 +** +** +#P 5 -33 +....** +**..**..** +*.*..*..** +.*** +..** +#P 12 -38 +** +** +#P 17 -46 +.......*** +. +...***.*..* +.*.*** +*......*** +** +. +...** +......** +....*.* +.....* +#P 25 -34 +..** +.*** +*.*..*..** +**..**..** +....** +#P 44 -36 +....* +**..**.*** +**....**** +....** +#P 64 -36 +....** +**....**** +**..**.*** +....* +#P 65 -29 +** +** +#P 59 -25 +*** +..* +.* +#P 52 -29 +..** +.**.* +..* +.*.* +.** +.*.*** +...*.* +*..* +....* +#P 46 -20 +.** +*.* +..* +#P 59 -15 +..** +..* +*.* +** +#P 50 -11 +** +** +#P 39 -4 +** +.* +.*.* +..** +#P 57 3 +** +.** +* +#P 59 10 +** +* +.*** +...* +#P 50 14 +.*.* +....* +*....*..** +**.*..*.** +....** +#P 40 7 +** +** +#P 35 12 +** +** +#P 27 5 +..** +.*.* +*** +** +...** +..*** +. +. +..** +..** +#P 39 17 +** +*.* +. +..** +..** +..** +. +.*.*.* +.*...* +.*...* +...* +#P 34 20 +...* +.*.* +* +.** +..* +#P 28 25 +.** +.*.* +..*** +...** +** +*** +. +. +.** +.** +#P 31 44 +.** +.** +. +. +*.** +*.* +.* +.** +.** +.** +#P 31 64 +.** +.** +. +. +**.* +.*.* +..* +.** +.** +.** +#P 26 65 +** +** +#P 19 52 +.* +...***.* +....*.*** +.***.*..* +*..*...* +..** +. +....* +..*.* +...** +#P 16 46 +.* +..* +*** +#P 10 59 +** +* +.*** +...* +#P 8 50 +** +** +#P -1 39 +...* +.*** +* +** +#P -16 27 +......** +......*** +**..*..*.* +**..**..** +....** +#P -15 35 +** +** +#P -10 40 +** +** +#P -7 57 +*.* +.** +.* +#P -15 59 +..** +.*.* +.* +** +#P -20 50 +.** +.*..* +. +.*..* +*..* +*.* +.* +. +.** +.** +#P -29 34 +.....* +....*.* +...** +......** +. +.........** +.***......* +.....***.* +*..*.*** +. +.*** +#P -36 28 +....** +**..**..** +**..*..*.* +......*** +......** +#P -55 31 +....** +****....** +***.**..** +.....* +#P -75 31 +.....* +***.**..** +****....** +....** +#P -68 26 +** +** +#P -63 21 +.* +* +*** +#P -59 19 +.* +..*..* +*.* +***.* +...** +..*.* +...* +.*.** +..** +#P -50 16 +* +*.* +** +#P -64 10 +..** +.*.* +.* +** +#P -53 8 +** +** +#P -44 -1 +** +*.* +..* +..** +#P -61 -7 +..* +** +.** +#P -64 -15 +* +*** +...* +..** +#P -61 -20 +....** +**.*..*.** +**..*....* +.....* +......*.* +#P -43 -10 +** +** +#P -38 -15 +** +** +#P -33 -16 +.** +.** +. +. +*** +** +...** +..*** +.*.* +.** +#P -46 -29 +..* +*...* +*...* +*.*.* +. +..** +..** +..** +. +...*.* +....** +#P -39 -26 +.* +.** +...* +*.* +* +#P -34 -36 +..** +..** +. +. +..*** +...** +** +*** +.*.* +..** +#P -14 -20 +* +*.* +** +#P 16 -14 +*** +* +.* +#P 10 16 +.** +*.* +..* +#P -20 10 +.* +..* +*** diff --git a/programs/demos/life2/lif/GUNSTAR2.lif b/programs/demos/life2/lif/GUNSTAR2.lif new file mode 100644 index 000000000..08a7d1a97 --- /dev/null +++ b/programs/demos/life2/lif/GUNSTAR2.lif @@ -0,0 +1,241 @@ +#Life 1.05 +#D David Buckingham's p168 glider gun +#D A 4-barrelled, period 168 glider gun, using 4 B-heptominoes moving +#D around a p840 track consisting of 4 64 gen turns and 8 73 gen turns. +#D Built by David Buckingham sometime before 11/20/91 +#N +#P -20 -53 +....** +.*.*..*.** +**..*....* +.....*......** +......*.....* +#P 3 -42 +** +.* +#P 12 -60 +...* +.*** +* +** +#P 15 -56 +..** +..* +*.* +** +#P 16 -47 +.** +*..* +* +* +*.* +..** +. +. +.** +..* +#P 8 -35 +.*** +.* +*** +#P 28 -38 +....*...* +**..**...* +.*.......* +.....**** +#P 47 -20 +..** +...* +. +. +...* +.*.** +.* +.* +.*..* +..** +. +. +** +.* +#P 43 1 +...** +**..* +*..* +.*** +#P 55 12 +** +*.* +..* +..** +#P 51 15 +** +* +.*** +...* +#P 36 16 +....** +**.*..*.** +*....*..* +....* +...* +#P 33 28 +.** +.* +. +.*..* +*..* +*.* +.* +. +.** +.* +#P 12 30 +.* +** +#P 14 38 +.* +** +#P 5 47 +.* +** +#P 9 48 +....** +.*.*..*.** +**..*....* +.....* +......* +#P -20 51 +..** +.*.* +.* +** +#P -17 55 +..** +...* +*** +* +#P -21 30 +..* +..** +. +. +. +. +.** +*..* +* +* +*.* +..** +. +. +.* +.** +#P -39 33 +....*...* +*...**...* +**.......* +.....**** +#P 7 39 +..* +.** +** +.** +#P -36 17 +.**...* +.**.**.** +.*.......* +**......* +.**..** +.**...* +#P -53 9 +.* +.** +. +. +..* +*.** +* +* +*..* +.** +#P -50 5 +* +** +#P -60 -17 +** +.* +.*.* +..** +#P -56 -20 +* +*** +...* +..** +#P -47 -21 +....** +**.*..*.** +*....*..* +....* +...* +#P -38 -39 +.** +.* +. +.*..* +*..* +*.* +.* +. +.** +.* +#P -33 -19 +** +* +#P -24 -18 +.*** +.*..* +.....* +..*..* +..** +..** +*.** +*** +.* +#P -14 -19 +.* +**.* +....* +.* +..*.** +....* +#P 10 -16 +......** +. +.....*...* +....*....* +...*.*.* +..*.*.* +*....* +*...* +. +..** +#P 6 11 +.*** +* +*...* +*..*.* +..*.*..* +...*...* +.......* +....*** +#P -20 6 +.....* +....*.* +...*...* +..*...* +.*...* +*...* +.*.* +..* diff --git a/programs/demos/life2/lif/GUNSTAR3.lif b/programs/demos/life2/lif/GUNSTAR3.lif new file mode 100644 index 000000000..9f7b0f03f --- /dev/null +++ b/programs/demos/life2/lif/GUNSTAR3.lif @@ -0,0 +1,401 @@ +#Life 1.05 +#D 4-barrelled p216 gun +#D Notice the similarity to +#D GUNSTAR, which has a +#D period of 144. +#N +#P -35 -74 +.** +.** +.** +.* +*.* +*.** +. +. +.** +.** +#P -28 -67 +** +** +#P -26 -64 +.** +*.** +...* +#P -35 -54 +.** +.** +.** +..* +.*.* +**.* +. +. +.** +.** +#P -29 -56 +...** +..*** +..***.** +*****.** +....*.* +....*** +#P -21 -51 +*** +* +.* +#P -14 -63 +* +*** +...* +..** +#P -10 -52 +** +** +#P -3 -43 +..** +...* +*** +* +#P 11 -63 +..** +..* +*.* +** +#P 15 -60 +..** +..** +. +...* +..*.* +.*..* +*..* +. +*..* +..** +#P 3 -35 +* +*.* +** +#P 6 -32 +....** +**..**..** +*.*..*..** +.*** +..** +#P 13 -37 +** +** +#P 18 -43 +.....* +....*.* +*.*** +*..*.* +** +#P 25 -41 +.** +.** +*** +* +.* +** +* +#P 26 -33 +..** +.*** +*.*..*..** +**..**..** +....** +#P 45 -35 +....* +**..**.*** +**....**** +....** +#P 65 -35 +....** +**....**** +**..**.*** +....* +#P 62 -26 +.* +..* +.** +** +#P 66 -28 +** +** +#P 49 -21 +.** +*.* +..* +#P 51 -29 +..* +..* +..*** +..**** +****** +* +**** +..** +#P 60 -14 +..** +..* +*.* +** +#P 51 -10 +** +** +#P 40 -3 +** +.* +.*.* +..** +#P 60 11 +** +* +.*** +...* +#P 51 15 +.*.* +....* +*....*..** +**.*..*.** +....** +#P 33 3 +*** +* +.* +#P 28 6 +..** +.*.* +*** +** +...** +..*** +. +. +..** +..** +#P 36 13 +** +** +#P 39 18 +*** +* +..* +.** +..** +.*..* +...* +#P 35 25 +**.** +.**.*** +....*** +#P 29 26 +.** +.*.* +..*** +...** +** +*** +. +. +.** +.** +#P 32 45 +.** +.** +. +. +*.** +*.* +.* +.** +.** +.** +#P 22 51 +.*** +.*.* +**.***** +**.*** +...*** +...** +#P 19 49 +.* +..* +*** +#P 32 65 +.** +.** +. +. +**.* +.*.* +..* +.** +.** +.** +#P 27 66 +** +** +#P 23 62 +* +**.* +.** +#P 11 60 +** +* +.*** +...* +#P 9 51 +** +** +#P 0 40 +...* +.*** +* +** +#P -5 33 +.** +*.* +..* +#P -15 28 +......** +......*** +**..*..*.* +**..**..** +....** +#P -14 36 +** +** +#P -19 51 +.** +.*..* +. +.*..* +*..* +*.* +.* +. +.** +.** +#P -14 60 +..** +.*.* +.* +** +#P -24 39 +.....** +.*.*..* +..***.* +*.* +.* +#P -27 35 +..* +.** +.* +..* +*** +** +** +#P -35 29 +....** +**..**..** +**..*..*.* +......*** +......** +#P -54 32 +....** +****....** +***.**..** +.....* +#P -74 32 +.....* +***.**..** +****....** +....** +#P -67 27 +** +** +#P -64 23 +.** +** +* +.* +#P -56 22 +..** +..**** +.....* +****** +**** +.*** +...* +...* +#P -51 19 +* +*.* +** +#P -63 11 +..** +.*.* +.* +** +#P -52 9 +** +** +#P -43 0 +** +*.* +..* +..** +#P -35 -5 +.* +..* +*** +#P -32 -15 +.** +.** +. +. +*** +** +...** +..*** +.*.* +.** +#P -37 -14 +** +** +#P -63 -14 +* +*** +...* +..** +#P -60 -19 +....** +**.*..*.** +**..*....* +.....* +......*.* +#P -43 -27 +..*** +..***.** +....**.** +.* +*..* +.** +..** +..* +....* +..*** +#P -33 -35 +..** +..** +. +. +..*** +...** +** +*** +.*.* +..** diff --git a/programs/demos/life2/lif/HACKSAW.lif b/programs/demos/life2/lif/HACKSAW.lif new file mode 100644 index 000000000..78bf6ae1b --- /dev/null +++ b/programs/demos/life2/lif/HACKSAW.lif @@ -0,0 +1,430 @@ +#Life 1.05 +#D Hacksaw (orthogonal sawtooth with expansion factor 9) +#D Population is unbounded but does not tend to infinity. Its graph is a +#D sawtooth function with ever-increasing teeth. More specifically, the +#D population in generation t = 385*9^n - 189 (n>=1), is t/4 + 1079, but the +#D population in generation 1155*9^n - 179 (n>=0) is only 977. +#D +#D The pattern consists of two parts, a stationary shotgun and a set +#D of puffers moving east. The shotgun produces, and usually destroys, a salvo +#D consisting of a MWSS and 2 LWSSs. The moving part consists of a period 8 +#D blinker puffer (found by Bob Wainwright), and two p24 glider puffers, whose +#D output gliders destroy each other (with help from an accompanying MWSS). In +#D generation 385*9^n - 189 (n>=1) (and 228 for n=0), a salvo hits the back end +#D of the row of blinkers, causing it to decay at 2c/3. When the row is +#D completely gone, a new row starts to form and a spark is produced. The spark +#D is turned into a glider by an accompanying HWSS; the glider is turned into a +#D westward LWSS, in generation 1155*9^n - 127 (n>=0), by interaction with the +#D glider puffers. (This 3 glider synthesis of a LWSS is due to David +#D Buckingham.) When the LWSS hits the shotgun, in generation 2310*9^n - 184 +#D (n>=0), another salvo is released, starting the cycle again. +#D +#D The idea for this sawtooth pattern was suggested by Bill Gosper. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 7/8/92 +#N +#P 82 -28 +....* +.....* +*....* +.***** +. +. +. +...** +***.** +.**** +..** +#P 77 -19 +*** +#P 79 -15 +.....* +......* +*.....* +.****** +#P 94 8 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P 88 12 +..*** +**.** +..*** +#P 84 14 +*** +#P 80 5 +....** +****.** +****** +.**** +#P 80 20 +.****** +*.....* +......* +.....* +#P 71 17 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 67 21 +..* +*.* +..* +#P 58 12 +.**** +*...* +....* +...* +#P 57 -3 +.....* +......* +*.....* +.****** +#P 34 9 +.***** +*....* +.....* +....* +#P 60 29 +.****** +*.....* +......* +.....* +#P 76 41 +** +.* +#P 65 39 +...* +..** +.** +*** +.** +..** +...* +#P 47 41 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 44 46 +** +.* +#P 35 44 +....** +....* +.** +*** +.** +....* +....** +#P 25 42 +* +*.* +...** +...** +...** +*.* +* +#P 14 44 +** +* +#P 35 26 +.** +*..* +...* +...* +**.* +.* +. +. +..* +.** +#P 37 40 +* +** +#P 48 32 +.** +** +..* +#P 52 32 +*..* +....* +*...* +.**** +#P 17 25 +** +.* +#P 7 23 +..** +.* +* +* +* +.* +..** +#P -11 25 +....* +..*.* +** +** +** +..*.* +....* +#P -22 22 +* +** +.** +.*** +.** +** +* +#P -38 20 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P -45 22 +** +* +#P -6 21 +.* +** +#P -6 7 +.* +.** +. +.* +*.* +*..* +.*..* +. +.* +.** +#P -13 -11 +.....* +***.**...* +****....** +....** +#P -19 -6 +..** +.*.* +*** +** +...** +..*** +. +. +...* +..** +#P -21 9 +.* +** +#P -36 7 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -40 10 +** +* +#P -46 5 +...* +..** +.** +*** +.** +..** +...* +#P -55 7 +** +* +#P 15 -33 +..** +..* +*.* +** +#P 14 -44 +.* +** +#P 2 -47 +** +..* +...* +...* +...* +..* +** +#P -1 -46 +* +** +#P -9 -49 +* +*.* +...** +...** +...** +*.* +* +#P -25 -46 +...* +..** +.** +*** +.** +..** +...* +#P -26 -37 +** +* +#P -39 -44 +** +*** +..**.* +..*..* +..**.* +*** +** +#P -48 -46 +** +.* +.*.* +..** +#P -45 -37 +** +*.* +..* +..** +#P -53 -42 +* +**** +.**** +.*..* +.**** +**** +* +#P -69 -44 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P -77 -42 +** +* +#P -61 -40 +*.* +** +.* +#P -61 -33 +.**.........** +*..*.......*..* +***.........*** +...********* +..*..*****..* +..**..***..** +#P -83 -51 +** +.* +#P -86 -40 +..*** +.*...* +*.....* +.*...* +..*** +..*** +#P -88 -30 +..*** +.**.** +.**.** +.***** +**...** +#P -100 -11 +** +* +#P -94 -13 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P -77 -11 +** +*..* +....* +....* +....* +*..* +** +#P -66 -9 +.* +** +#P -85 -17 +* +** +#P -83 -11 +.** +*.* +..* +#P -24 -13 +** +.* +#P -36 -15 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P -48 -13 +* +**** +.**** +.*..* +.**** +**** +* +#P -58 -10 +* +** +#P -35 -6 +** +* +#P -44 -23 +....* +.....* +*....* +.***** +#P -57 -25 +...* +....* +*...* +.**** diff --git a/programs/demos/life2/lif/HIGHAQ33.lif b/programs/demos/life2/lif/HIGHAQ33.lif new file mode 100644 index 000000000..484f1063a --- /dev/null +++ b/programs/demos/life2/lif/HIGHAQ33.lif @@ -0,0 +1,22 @@ +#Life 1.05 +#R 23/36 +#P 2 -9 +...** +...** +...*.** +...*.* +...*** +....* +.*** +*.* +.** +....** +.** +*.* +.*** +....* +...*** +...*.* +...*.** +...** +...** diff --git a/programs/demos/life2/lif/HIGHBIRD.lif b/programs/demos/life2/lif/HIGHBIRD.lif new file mode 100644 index 000000000..f2cd399d8 --- /dev/null +++ b/programs/demos/life2/lif/HIGHBIRD.lif @@ -0,0 +1,24 @@ +#Life 1.05 +#R 23/36 +#P -21 4 +..........*..........* +......*.**.**.*.....** +.....**.......**...*** +......**.*.*.*.*..** +....***.......*.*.*..* +......*.........*.*.* +.***............***.* +.*................* +. +**................** +#P 1 4 +..........* +*.....*.**.**.* +**...**.......** +.**..*.*.*.*.** +..*.*.*.......*** +*.*.*.........* +*.***............*** +..*................* +. +.**................** diff --git a/programs/demos/life2/lif/HIGHBRDR.lif b/programs/demos/life2/lif/HIGHBRDR.lif new file mode 100644 index 000000000..e1759e5e8 --- /dev/null +++ b/programs/demos/life2/lif/HIGHBRDR.lif @@ -0,0 +1,58 @@ +#Life 1.05 +#R 23/36 +#P -45 -52 +** +.* +.*.* +..** +#P 46 -50 +..** +..* +*.* +** +#P -50 -43 +* +*** +...* +..** +#P -22 -33 +.*** +* +* +* +#P -32 -21 +..** +...** +*.** +*** +.* +#P 7 -16 +*** +*..* +*...* +.*..* +..*** +#P 9 -2 +...* +...* +...* +*** +#P -15 8 +.*** +*...* +*....* +*..*..* +.*....* +..*...* +...*** +#P 0 11 +...* +..*** +.**.* +** +.** +#P -48 48 +..** +...* +*** +* diff --git a/programs/demos/life2/lif/HIGHCRNA.lif b/programs/demos/life2/lif/HIGHCRNA.lif new file mode 100644 index 000000000..2aff47abd --- /dev/null +++ b/programs/demos/life2/lif/HIGHCRNA.lif @@ -0,0 +1,11 @@ +#Life 1.05 +#R 23/36 +#P 7 4 +.*** +* +* +* +#P 16 7 +* +* +* diff --git a/programs/demos/life2/lif/HIGHGUN2.lif b/programs/demos/life2/lif/HIGHGUN2.lif new file mode 100644 index 000000000..36bb73826 --- /dev/null +++ b/programs/demos/life2/lif/HIGHGUN2.lif @@ -0,0 +1,74 @@ +#Life 1.05 +#R 23/36 +#P -17 -25 +....* +....** +..**.** +..*....* +**......* +.**.....** +..*......** +...*....* +....**.** +.....** +......* +#P 11 -23 +..*** +.*..* +*...* +*..* +*** +#P -33 -9 +....* +....** +..**.** +..*....* +**......* +.**.....** +..*......** +...*....* +....**.** +.....** +......* +. +....*** +...*..* +..*...* +..*..* +..*** +#P 23 -7 +......*** +.....*..* +....*...* +....*..* +....*** +. +....* +....** +..**.** +..*....* +**......* +.**.....** +..*......** +...*....* +....**.** +.....** +......* +#P 7 15 +....* +....** +..**.** +..*....* +**......* +.**.....** +..*......** +...*....* +....**.** +.....** +......* +#P -15 19 +..*** +.*..* +*...* +*..* +*** diff --git a/programs/demos/life2/lif/HIGHGUN3.lif b/programs/demos/life2/lif/HIGHGUN3.lif new file mode 100644 index 000000000..eff78c0eb --- /dev/null +++ b/programs/demos/life2/lif/HIGHGUN3.lif @@ -0,0 +1,36 @@ +#Life 1.05 +#R 23/36 +#P -61 -54 +** +.* +.*.* +..** +#P -39 -36 +..*** +.*..* +*...* +*..* +*** +#P -7 -4 +..*** +.*..* +*...* +*..* +*** +#P 2 0 +..*** +.*..* +*...* +*..* +*** +#P 34 32 +..*** +.*..* +*...* +*..* +*** +#P 57 51 +** +*.* +..* +..** diff --git a/programs/demos/life2/lif/HIGHLOOP.lif b/programs/demos/life2/lif/HIGHLOOP.lif new file mode 100644 index 000000000..a23ea2c47 --- /dev/null +++ b/programs/demos/life2/lif/HIGHLOOP.lif @@ -0,0 +1,192 @@ +#Life 1.05 +#R 23/36 +#P -7 -42 +* +*** +...* +..** +#P 17 -38 +* +*** +...* +..* +..*...* +. +.....* +. +....*.* +. +.....* +.....* +...**.** +.....* +#P -5 -33 +..*** +..*.* +..*.* +..*** +. +.*...* +.....* +....* +........** +*........* +.**......*.* +..........** +#P -21 -29 +** +.* +.*.* +..** +#P 33 -27 +......* +....*** +...* +...** +. +. +*** +*.* +*** +. +*** +*** +.* +#P -14 -26 +..* +**.* +*...* +**.* +..* +#P 13 -22 +.*..* +*...* +*..*.* +*...* +.*..* +. +.....*.* +.....** +......* +#P 49 -13 +..** +..* +*.* +** +#P -15 -12 +..* +** +.** +#P -12 -11 +.....* +...*** +..* +..**.......***.** +...........*.*.*** +...........***.** +.......** +......*.* +**....* +.*...** +*.......................* +. +*.......................* +..................**...*.* +..................*....*** +................*.* +................** +........**.*** +.......***.*.* +........**.***.......** +......................* +...................***...** +...................*......** +.........................* +#P 40 -9 +...** +*.*.* +...** +#P -13 -3 +* +* +#P -44 7 +** +*.*.* +** +#P -52 10 +..** +.*.* +.* +** +#P -35 15 +.* +*** +*** +. +*** +*.* +*** +#P -24 14 +.....* +.....** +....*.* +. +.......*..* +.......*...* +......*.*..* +.......*...* +.......*..* +. +. +..* +**.** +..* +..* +. +.*.* +. +..* +. +.*...* +.....* +....* +.....*** +.......* +#P -6 22 +** +*.* +..* +..** +#P 0 23 +...** +.....* +. +.* +* +*...* +. +.*** +.*.* +.*.* +.*** +#P 10 22 +..* +.*.** +*...* +.*.** +..* +#P -39 24 +..** +...* +*** +* +#P 18 26 +** +*.* +..* +..** +#P 4 39 +** +* +.*** +...* diff --git a/programs/demos/life2/lif/HIGHOSCS.lif b/programs/demos/life2/lif/HIGHOSCS.lif new file mode 100644 index 000000000..ff5946888 --- /dev/null +++ b/programs/demos/life2/lif/HIGHOSCS.lif @@ -0,0 +1,421 @@ +#Life 1.05 +#R 23/36 +#P 3 -38 +.....** +.....* +...*.* +...** +** +#P 1 -33 +.*.* +.* +** +#P 15 -40 +.....** +.....* +..**.* +.*..* +.* +...* +*..* +#P 13 -33 +.*.** +.* +** +#P 25 -38 +..**** +..*..* +***..*** +*......* +*......* +#P 25 -33 +***..*** +..*..* +..**** +#P -30 -35 +.....* +.*.** +*.* +.* +.....* +#P -24 -34 +*.** +*.** +* +* +#P -17 -35 +....* +....*** +...*.* +***.* +#P -9 -34 +..*.*** +.*.* +*** +..* +#P -18 -20 +.* +*.* +#P -19 -17 +**...* +*.....* +...*.* +..** +#P 52 -21 +*** +.***..* +.....* +.....* +.....* +.***..* +*** +#P 61 -21 +....*** +*..*** +.* +.* +.* +*..*** +....*** +#P -28 -19 +..*.* +.....* +.*..* +*.*.* +#P -28 -15 +*..* +.** +#P -9 -18 +** +.*.* +.** +.*.* +** +#P -5 -18 +.** +.* +** +.* +.** +#P 1 -17 +** +**.** +.*..* +.**.** +#P 7 -17 +....** +.**.** +.*..* +**.** +#P 16 -19 +..**.**..** +*..*.*..*** +**....***** +....** +...*..* +....** +#P 27 -19 +**..**.** +***..*.*..* +*****....** +.....** +....*..* +.....** +#P 33 -8 +..*...* +.*.*.*.* +*..*.*..* +.**...** +..*.*.* +#P 33 -3 +.***.*** +*.......* +*.**.**.* +.*.*.*.* +#P 6 -7 +.......** +.......** +. +.....**** +....*....* +...*.*.**.*.** +...*.*....*.** +**.*....*.* +#P 6 1 +**.*.**.*.* +....*....* +.....**** +. +.....** +.....** +#P -46 -3 +......** +.....*.* +**...* +*..*.** +.*** +#P -44 2 +....*** +.**.*..* +..*...** +*.* +** +#P -27 -2 +*** +*** +#P -23 0 +*** +*** +#P -10 -2 +*.*.** +****** +#P -10 2 +. +. +#P 14 11 +...** +...**......** +...........**.* +.****.......* +*....*......** +*..*.* +*..*.*.** +*.*..*.** +.**** +. +.** +.** +#P 29 7 +......*** +...**.** +...**.** +....* +. +. +*...* +*..**.****.** +****.**..*..* +.....*...**.** +............** +. +.....* +..**.** +..**.** +.*** +#P 60 7 +*.* +#P 61 8 +** +* +#P 66 6 +** +.* +#P 67 8 +*.* +.** +#P 86 6 +** +* +#P 84 8 +*.* +** +#P 78 10 +** +#P 77 11 +*.* +.** +#P -27 12 +** +.* +.*.* +..*.* +....**.** +#P -28 17 +........** +..** +...* +*** +* +#P -16 12 +* +*** +...* +..*..........** +..*..*.......** +.....* +...*.* +...**..** +.......*.* +.........* +.........** +#P 0 11 +...** +...** +. +.**** +*....*.....** +**...*.....** +*..*.*.** +*.*..*.** +.**** +. +.** +.** +#P 63 16 +** +#P 61 17 +.*.* +.* +** +#P -67 18 +*** +*..* +#P -67 20 +*...* +.*..* +..*** +#P -52 18 +.*** +*..* +#P -53 20 +*...* +*..* +*** +#P 71 17 +**.* +**.*** +......* +**.**.* +.*.*.* +#P 72 22 +*..* +.** +#P -72 29 +...* +..*.* +** +#P -70 32 +*.* +.* +#P -48 29 +.* +*.* +...** +#P -48 32 +*.* +.* +#P -33 37 +....* +....*.* +.*..** +*** +#P -34 41 +**.** +.*** +..*..** +.....*.* +.....* +#P -19 37 +..* +*.* +.**..* +....*** +#P -19 41 +...**.** +....*** +.**..* +*.* +..* +#P -67 40 +..*** +.*..* +*...* +#P -67 43 +*..* +*** +#P -53 40 +*** +*..* +*...* +#P -52 43 +*..* +.*** +#P -4 38 +** +.* +.*.* +..** +. +.....*** +. +..** +.*.* +.* +** +#P 4 38 +......** +......* +....*.* +....** +. +*** +. +....** +....*.* +......* +......** +#P 15 38 +** +.* +.*.* +..** +. +.....****** +#P 15 45 +..** +.*.* +.* +** +#P 28 38 +.........** +.........* +.......*.* +.......** +. +****** +#P 35 45 +** +*.* +..* +..** +#P 61 39 +* +***........** +...*.......* +..*......*.* +..*...*..** +.......* +....*..* +#P 60 46 +......*** +. +..** +.*.*.....** +.*.......* +**........*** +............* +#P -28 53 +...** +.* +.* +.* +..* +*.* +** +#P -23 54 +.* +.* +.* +* +*.* +.** diff --git a/programs/demos/life2/lif/HIGHPUF.lif b/programs/demos/life2/lif/HIGHPUF.lif new file mode 100644 index 000000000..388e26c0a --- /dev/null +++ b/programs/demos/life2/lif/HIGHPUF.lif @@ -0,0 +1,153 @@ +#Life 1.05 +#R 23/36 +#D Line Puffer, analogous to the one in regular life. +#P -1 1 +.....* +.....*.*.*.*** +.....*.*..*..*** +.....*....*.*...* +.....*...*..**...* +.....*.*..**.*...* +.....*...*..**...* +.....*....*.*...* +.....*.*..*..*** +.....*.*.*.*** +.....* +.....* +....*....**.*** +......*....*..** +......*.**..*..** +.........****..*** +....*.*.**......* +......*..**....* +...*..**..*....* +.....*...**...*** +.*.*..**.*......* +..*..*.******...* +*..****..*.*...* +..*....**....** +.....*.*.*** +......**..* +....*..*.** +.........** +.....*.**...** +........*....*** +.....*.*.......* +.....*.*.....*.* +....***...*.*.* +..***.....*..* +.............* +.....* +...*.**....*** +#P 0 38 +.....**..*** +****...* +...******.* +..**.......* +....**.**..* +....**...*..* +...**......** +...** +......*...*.* +......**....** +..*.*......** +*.*..*.***** +.*......*.* +.....*** +.......* +........** +......*..** +...**.*...** +..........*** +......*.*..* +......*...* +...**.**..* +....*.**.* +...**.* +........*** +.........** +........*** +. +.......*.* +.....*...* +.......*** +.....*.* +.....* +....** +..*** +..* +#P 0 -72 +..* +..*** +....** +.....* +.....*.* +.......*** +.....*...* +.......*.* +. +........*** +.........** +........*** +...**.* +....*.**.* +...**.**..* +......*...* +......*.*..* +..........*** +...**.*...** +......*..** +........** +.......* +.....*** +.*......*.* +*.*..*.***** +..*.*......** +......**....** +......*...*.* +...** +...**......** +....**...*..* +....**.**..* +..**.......* +...******.* +****...* +.....**..*** +..*.**....*** +#P -1 -35 +.....* +.............* +..***.....*..* +....***...*.*.* +.....*.*.....*.* +.....*.*.......* +........*....*** +.....*.**...** +.........** +....*..*.** +......**..* +.....*.*.*** +..*....**....** +*..****..*.*...* +..*..*.******...* +.*.*..**.*......* +.....*...**...*** +...*..**..*....* +......*..**....* +....*.*.**......* +.........****..*** +......*.**..*..** +......*....*..** +....*....**.*** +.....* +.....* +.....*.*.*.*** +.....*.*..*..*** +.....*....*.*...* +.....*...*..**...* +.....*.*..**.*...* +.....*...*..**...* +.....*....*.*...* +.....*.*..*..*** +.....*.*.*.*** +.....* diff --git a/programs/demos/life2/lif/HIGHRAK1.lif b/programs/demos/life2/lif/HIGHRAK1.lif new file mode 100644 index 000000000..f57cf42f3 --- /dev/null +++ b/programs/demos/life2/lif/HIGHRAK1.lif @@ -0,0 +1,21 @@ +#Life 1.05 +#R 23/36 +#P 11 0 +..** +...** +*.** +*** +.* +#P 21 4 +* +* +* +#P 1 8 +...* +..** +.*.* +*** +#P 6 17 +* +* +* diff --git a/programs/demos/life2/lif/HIGHRAK2.lif b/programs/demos/life2/lif/HIGHRAK2.lif new file mode 100644 index 000000000..3c5a4c57b --- /dev/null +++ b/programs/demos/life2/lif/HIGHRAK2.lif @@ -0,0 +1,27 @@ +#Life 1.05 +#R 23/36 +#P 11 0 +..*** +.*..* +*...* +*..* +***...*** +.....*..* +....*...* +....*..* +....*** +. +. +.......* +.......* +.......* +#P 2 13 +...* +..** +.*.* +*** +. +......*** +.....*.* +.....**....*** +.....* diff --git a/programs/demos/life2/lif/HIGHSIER.lif b/programs/demos/life2/lif/HIGHSIER.lif new file mode 100644 index 000000000..11860c33a --- /dev/null +++ b/programs/demos/life2/lif/HIGHSIER.lif @@ -0,0 +1,20 @@ +#Life 1.05 +#R 23/36 +#P 14 -20 +*** +*..* +*...* +.*..* +..*** +#P 0 8 +...* +..*** +.*.*** +***..** +.**...** +..**..*** +...***.* +....*** +.....* +#P 0 20 +*** diff --git a/programs/demos/life2/lif/HIGHTUG.lif b/programs/demos/life2/lif/HIGHTUG.lif new file mode 100644 index 000000000..07b9f0c98 --- /dev/null +++ b/programs/demos/life2/lif/HIGHTUG.lif @@ -0,0 +1,16 @@ +#Life 1.05 +#R 23/36 +#P -17 -17 +.*** +* +* +* +#P -4 -10 +* +* +* +#P 13 13 +...* +..** +.*.* +*** diff --git a/programs/demos/life2/lif/HOTEL.lif b/programs/demos/life2/lif/HOTEL.lif new file mode 100644 index 000000000..7c5fba158 --- /dev/null +++ b/programs/demos/life2/lif/HOTEL.lif @@ -0,0 +1,733 @@ +#Life 1.05 +#D Infinite glider hotel +#D The name is derived from the old mathematical "infinity hotel" +#D scenario, where a hotel with an infinite number of rooms always has +#D room for more guests by shuffling the old guests around. +#D Here two pairs of double Corderships are pulling slowly apart at +#D c/12 such that there is an ever-lengthening glider track between +#D them. Every 1920 generations another glider is injected into the +#D glider track, joining the gliders already circulating there. +#D Eventually an arbitrarily large number of gliders will be traveling +#D around the track. +#D The tricky bit to this construction is that even though all the +#D previously injected gliders are repeatedly flying through the +#D injection point, that point is guaranteed to be empty when it is +#D time for the next glider to be injected! +#D David Bell, dbell@pdact.pd.necisa.oz.au, Oct 9 1992 +#N +#P 13 -101 +.....* +. +.*.......* +*........* +*...**....* +*......*.* +......**.* +. +....* +#P 29 -91 +....* +..**.** +. +..** +..* +....*...* +*...* +#P 39 -75 +.....* +. +.*.......* +*........* +*...**....* +*......*.* +......**.* +. +....* +#P 30 -82 +.....* +..*.* +.* +..** +..*.* +..*.* +.*.** +**.** +...*** +#P 6 -98 +..*** +..*** +*..** +*.* +*** +#P 20 -83 +...* +..*.* +..*.* +.*..* +.*.* +* +** +.* +#P 22 -72 +.* +*.* +* +* +* +#P 18 -66 +...* +..***.** +**.*** +..* +#P 21 -60 +..* +.*.** +**.*.** +....* +......* +#P 28 -56 +.**....** +...*.** +****.*.*** +....* +#P -14 -71 +...*** +. +.* +**...* +.*.* +....*** +....* +. +....** +...** +....* +...** +....** +#P -7 -58 +.......* +*...*..*.*..* +*****.**....* +.*.*....*...* +. +........*** +.........* +#P 12 -45 +...*** +. +.* +**...* +.*.* +....*** +....* +. +....** +...** +....* +...** +....** +#P -3 -93 +** +** +#P -11 -85 +** +** +#P -19 -77 +** +** +#P 43 -55 +** +** +#P 35 -47 +** +** +#P 27 -39 +** +** +#P 19 -31 +** +** +#P 61 -67 +.....** +. +...*...* +..* +.*.......* +.....*....* +*....*.*.* +*........* +*.**....* +***.**.* +.**.*** +#P 82 -50 +.....* +...**.* +..* +.*..*...* +* +**..** +** +..*.....* +***....* +**....* +.**** +#P 92 -46 +* +* +#P 87 -41 +.....** +. +...*...* +..* +.*.......* +.....*....* +*....*.*.* +*........* +*.**....* +***.**.* +.**.*** +#P 74 -39 +*.* +*** +.** +#P 72 -34 +.* +.*.* +.*** +* +***** +#P 83 -20 +..** +**..* +*..*** +*....* +.***** +...** +#P 93 -19 +* +* +* +#P 57 -29 +.* +*.* +.* +...* +...** +.*..* +.*** +..* +#P 40 -30 +..*.* +.**.** +.**.* +* +.* +.* +#P 48 -22 +....* +...*** +. +...*** +**.** +..* +#P 66 -4 +..*.* +.**.** +.**.* +* +.* +.* +#P 49 -56 +** +** +#P 41 -48 +** +** +#P 33 -40 +** +** +#P 87 -10 +** +** +#P 79 -2 +** +** +#P 71 6 +** +** +#P -98 61 +....**** +..*....** +.*....*** +*.....* +.......** +...**..** +........* +*...*..* +......* +..*.** +...* +#P -100 66 +* +* +#P -105 52 +....***.** +...*.**.*** +..*....**.* +.*........* +.*.*.*....* +*....* +.*.......* +........* +...*...* +. +....** +#P -79 78 +....***.** +...*.**.*** +..*....**.* +.*........* +.*.*.*....* +*....* +.*.......* +........* +...*...* +. +....** +#P -101 38 +* +* +* +#P -96 36 +.** +***** +*....* +***..* +.*..** +..** +#P -84 51 +***** +....* +.*** +.*.* +...* +#P -84 58 +** +*** +*.* +#P -69 43 +..* +.*** +*..* +** +.* +...* +..*.* +...* +#P -79 20 +....* +....* +.....* +.*.** +**.** +.*.* +#P -61 38 +...* +.**.** +*** +. +*** +.* +#P -53 46 +....* +....* +.....* +.*.** +**.** +.*.* +#P -80 14 +** +** +#P -88 22 +** +** +#P -96 30 +** +** +#P -42 60 +** +** +#P -50 68 +** +** +#P -58 76 +** +** +#P -57 88 +......* +. +.*.** +.*.*......* +*....**...* +.*........* +.*.......* +. +.....* +#P -45 106 +....*...* +*...* +......* +.....** +. +..**.** +....* +#P -31 114 +......* +. +.*.** +.*.*......* +*....**...* +.*........* +.*.......* +. +.....* +#P -18 115 +..*** +..*.* +**..* +*** +*** +#P -43 95 +*** +.**.** +.**.* +.*.* +.*.* +..** +....* +.*.* +* +#P -32 97 +...* +...** +....* +.*.* +*..* +*.* +*.* +.* +#P -32 89 +..* +..* +..* +*.* +.* +#P -33 84 +.....* +..***.** +**.*** +....* +#P -35 78 +..* +**.*.** +..**.* +....* +#P -45 74 +.....* +***.*.**** +...**.* +.**....**.* +#P -26 54 +.** +..** +..* +..** +.** +. +..* +*** +...*.* +.*...** +.....* +. +.*** +#P -13 73 +...* +..*** +. +*...*....*.* +*....**.***** +*..*.*..*...* +.....* +#P 0 80 +.** +..** +..* +..** +.** +. +..* +*** +...*.* +.*...** +.....* +. +.*** +#P -28 51 +** +** +#P -36 59 +** +** +#P -44 67 +** +** +#P -52 75 +** +** +#P 10 97 +** +** +#P 2 105 +** +** +#P -6 113 +** +** +#P 273 266 +..*....* +**.****.** +..*....* +#P 268 268 +.* +* +* +#P 266 273 +**...** +.***** +..*** +...* +#P 269 284 +** +** +#P -270 -286 +** +** +#P -272 -279 +..*** +. +..*.* +.***** +**...** +**...** +#P -274 -270 +* +** +*** +** +* +#P -283 -270 +..* +.** +*** +.** +..* +#P 41 0 +..** +.*.* +*** +** +** +.*.* +..* +#P 40 9 +**...** +**...** +. +..*** +..*** +...* +#P 38 20 +..*** +..*** +.*...* +. +**...** +#P 40 34 +** +** +#P 34 12 +..*** +..* +...* +.* +.** +*.* +#P 27 23 +** +.** +* +#P 19 30 +.* +.** +*.* +#P 30 39 +** +** +#P 11 36 +.**....* +*..*..*.* +.***.*.** +....**.** +.....*.** +......*.* +.......* +#P 5 34 +..** +.*.* +* +*..* +* +.*.* +..** +#P -4 36 +** +** +#P 3 -38 +** +** +#P -8 -41 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -16 -40 +....** +...*.* +.*...* +**.*** +...** +#P -22 -43 +..** +.*.* +* +*..* +* +.*.* +..** +#P -31 -41 +** +** +#P -22 -32 +* +*.* +** +#P -30 -25 +.* +* +*** +#P -34 -27 +** +** +#P -68 -25 +** +** +#P -59 -28 +...* +..** +.** +*** +.** +..** +...* +#P -52 -26 +** +** +** +#P -49 -30 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -80 -7 +** +** +#P -71 -9 +..** +.*.* +* +*..* +* +.*.* +..** +#P -65 -7 +.**....* +*..*..*.* +.***.*.** +....**.** +.....*.** +......*.* +.......* +#P -42 -4 +* +**** +.**** +.*..* +.**** +**** +* +#P -33 -6 +...* +..*.* +**...* +**...* +**...* +..*.* +...* +#P -18 -4 +** +** +#P -57 -13 +.* +.** +*.* +#P -41 -9 +.* +** +*.* +#P -49 -21 +.....* +****..* +..*.*** +...* +* +...* +* +#P -34 -20 +.**** +*...* +....* +*..* +#P -4 -20 +.**** +*...* +....* +*..* +#P 6 -18 +*** +* +.* +#P -44 -45 +.** +** +..* +#P 63 63 +.* +..* +*** diff --git a/programs/demos/life2/lif/HWSSGUN.lif b/programs/demos/life2/lif/HWSSGUN.lif new file mode 100644 index 000000000..750a05416 --- /dev/null +++ b/programs/demos/life2/lif/HWSSGUN.lif @@ -0,0 +1,174 @@ +#Life 1.05 +#D p120 HWSS gun +#N +#P -45 13 +** +** +#P -36 10 +..** +.*.* +* +*..* +* +.*.* +..** +#P -30 8 +.......* +......*.* +.....*.** +....**.** +.***.*.** +*..*..*.* +.**....* +#P -13 6 +..** +..* +*.* +** +#P -42 26 +** +** +#P -36 24 +....* +..*.* +** +** +** +..*.* +....* +#P -27 28 +* +* +* +#P -26 24 +..* +**** +**..* +...** +#P -19 26 +** +** +...** +...*** +...** +** +** +#P -10 31 +** +*.* +..* +..** +#P -11 18 +..** +*..* +. +*..* +.*..* +..*.* +...* +. +..** +..** +#P -22 18 +*.* +.** +.* +#P -17 18 +.* +.** +*.* +#P 6 18 +.** +.*..* +. +.*..* +*..* +*.* +.* +. +.** +.** +#P 6 31 +..** +.*.* +.* +** +#P 15 26 +** +*..* +....* +....* +....* +*..* +** +#P 26 24 +...*.* +.*...* +.* +*....* +.* +.*...* +...*.* +#P 40 26 +** +** +#P 9 6 +** +.* +.*.* +..** +#P 14 8 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 32 10 +...* +..** +.** +*** +.** +..** +...* +#P 39 12 +** +**..** +**..** +#P 23 14 +*.* +** +.* +#P 18 22 +.* +** +*.* +#P 3 7 +.* +** +*.* +#P -2 3 +.* +.** +*.* +#P -11 -9 +**.****** +**.****** +** +**.....** +**.....** +**.....** +.......** +******.** +******.** +#P 2 -13 +.....* +....*.* +...*...* +..*...* +.*...* +*...* +.*.* +..* diff --git a/programs/demos/life2/lif/IRRAT2.lif b/programs/demos/life2/lif/IRRAT2.lif new file mode 100644 index 000000000..85684ebb0 --- /dev/null +++ b/programs/demos/life2/lif/IRRAT2.lif @@ -0,0 +1,420 @@ +#Life 1.05 +#D Irrational 2 +#D Population growth appears to be linear with an irrational multiplier. +#D The probability that a MWSS will hit a boat seems to be 1/sqrt(2) +#D for the lower (westward) stream, and sqrt(2)-1 for the upper +#D (eastward) stream. If this is true, then the population in gen t is +#D about (78 sqrt(2) - 73)t/40 for t even, and (82 sqrt(2) - 77)t/40 +#D for t odd. If you can prove any of this, please let me know. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 5/20/91 +#N +#P -76 -33 +.* +* +*...* +**** +. +. +. +....** +..**..* +..*..*** +..*....* +...***** +.....** +. +.*..* +* +*...* +**** +#P -68 -33 +..** +.**** +**.** +.** +#P -66 -24 +.* +*** +#P -63 -28 +.* +.** +**.* +.*.* +..** +.* +#P -58 -17 +.* +* +*...* +**** +#P -51 -19 +*.* +.** +.* +#P -49 -11 +**** +*...* +* +.*..* +#P -47 -5 +.*** +*...* +....* +..** +#P -67 -9 +**** +*...* +* +.* +. +.....* +...*** +..*...* +..* +..**.* +....* +.....* +. +. +**** +*...* +* +.* +#P -60 -1 +*** +*** +.** +* +#P -59 5 +.** +**.** +.**** +..** +#P -82 9 +**** +*...* +* +.* +. +. +...** +..*..* +..*..* +..**.** +....** +. +. +. +**** +*...* +* +.* +#P -74 9 +.** +**.** +.**** +..** +#P -72 14 +...* +...** +.....* +***** +**** +* +#P -65 24 +.* +* +*...* +**** +#P -57 20 +*** +* +.* +#P -52 15 +*** +* +.* +#P -47 10 +*** +* +.* +#P -42 5 +*** +* +.* +#P -37 0 +*** +* +.* +#P -32 -5 +*** +* +.* +#P -36 -14 +*.* +.** +.* +#P -33 -11 +.* +.** +*.* +#P -27 -10 +*** +* +.* +#P -26 -4 +**** +*...* +* +.*..* +. +.....* +...*** +..*...* +..* +..**.* +....* +.....* +. +. +**** +*...* +* +.* +#P -19 4 +*** +*** +.** +* +#P -18 10 +.** +**.** +.**** +..** +#P -17 -5 +..*** +.***** +**.*** +.** +#P -12 3 +..* +** +.*.* +..** +#P -6 14 +****** +*.....* +* +.* +#P -14 -12 +...** +***.** +***** +.*** +#P -4 -11 +.* +*.* +** +#P 5 -16 +..** +**.** +**** +.** +#P 6 -7 +.*** +*..* +**.** +#P 13 -9 +** +* +#P 9 10 +***** +*....* +* +.* +#P 14 0 +.**** +*...* +....* +...* +#P 23 -15 +.** +**** +**.** +..** +. +. +. +. +** +.** +** +* +. +. +.** +**** +**.** +..** +#P 24 8 +* +.** +** +#P 29 3 +* +.** +** +#P 30 8 +.* +* +*** +#P 33 13 +*** +* +.* +#P 34 -2 +* +.** +** +#P 39 -7 +* +.** +** +#P 44 -12 +* +.** +** +#P 49 -17 +* +.** +** +#P 54 -22 +* +.** +** +#P 60 -27 +..** +**.** +**** +.** +#P 76 -26 +..** +.**** +.**.** +...** +. +. +. +** +*.* +*.** +.** +.* +. +. +..** +.**** +.**.** +...** +#P 67 -18 +...*** +*** +* +*** +#P 68 -11 +.**** +*...* +....* +...* +#P 62 -8 +.** +**** +**.** +..** +. +. +. +* +.* +.** +** +* +. +. +.** +**** +**.** +..** +#P 57 -3 +...* +.* +.*..* +* +.*.* +.* +...** +#P 53 -7 +.**** +*...* +....* +...* +#P 42 -1 +....* +.....* +....*** +....*** +*****.*** +.***...** +..* +#P 44 8 +.** +**** +**.** +..** +#P 47 17 +..* +.*.* +* +..** +#P 53 14 +..** +**.** +**** +.** +#P 71 16 +..** +**.** +**** +.** +. +. +* +** +.** +.* +* +. +. +. +..** +**.** +**** +.** +#P 68 22 +*** +* +.* +.* +..* +#P 59 22 +...*.* +.*....* +.*...* +*...* +.** +.** +#P 62 29 +*..* +....* +*...* +.**** diff --git a/programs/demos/life2/lif/IRRAT5.lif b/programs/demos/life2/lif/IRRAT5.lif new file mode 100644 index 000000000..30779d84d --- /dev/null +++ b/programs/demos/life2/lif/IRRAT5.lif @@ -0,0 +1,351 @@ +#Life 1.05 +#D Irrational 5 +#D Population growth is linear with an irrational multiplier. +#D Each middleweight spaceship produced by the puffers either hits a +#D boat or is deleted by a glider. Denoting the first possibility by +#D 1 and the second by 0, we obtain a sequence beginning 101011011010... +#D If we prepend 101, we obtain the Fibonacci string sequence, defined +#D by starting with 1 and then repeatedly replacing each 0 by 1 and each +#D 1 by 10: 1 -> 10 -> 101 -> 10110 -> 10110101 -> ... (See Knuth's +#D "The art of computer programming, vol. 1", exercise 1.2.8.36 for +#D another definition.) The density of 1's in this sequence is +#D (sqrt(5)-1)/2, which implies that the population in gen t is +#D asymptotic to (8 - 31 sqrt(5)/10) t. More specifically, the +#D population in gen 20 F[n] - 92 (n>=6) is 98 F[n] - 124 F[n-1] + 560, +#D where F[n] is the n'th Fibonacci number. (F[0]=0, F[1]=1, and +#D F[n] = F[n-1] + F[n-2] for n>=2.) +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 5/12/91 +#N +#P -67 -32 +..** +.**** +**.** +.** +. +. +. +....* +...* +..** +...** +....* +. +. +..** +.**** +**.** +.** +#P -62 -25 +* +.* +.* +..* +*** +#P -58 -31 +**** +*...* +* +.*..* +#P -57 -26 +....** +....** +..*...* +.*...* +*....* +.*.* +#P -49 -16 +..** +.**** +**.** +.** +#P -58 -8 +.** +**.** +.**** +..** +. +. +....* +...** +..** +...* +....* +. +. +. +.** +**.** +.**** +..** +#P -53 -2 +** +...* +.*.* +....* +*..* +...* +.* +#P -49 5 +.* +* +*...* +**** +#P -73 10 +.** +**.** +.**** +..** +. +. +....* +...** +..**.* +...*.* +....** +. +. +. +.** +**.** +.**** +..** +#P -64 16 +...*** +.....* +...*** +*** +#P -64 9 +.* +* +*...* +**** +#P -56 25 +..** +.**** +**.** +.** +#P -48 21 +.** +** +..* +#P -43 16 +.** +** +..* +#P -38 11 +.** +** +..* +#P -33 6 +.** +** +..* +#P -28 1 +.** +** +..* +#P -40 -10 +.** +**.** +.**** +..** +#P -26 -12 +....* +.....* +*....* +.***** +#P -17 -3 +.** +**.** +.**** +..** +. +. +....* +...** +..** +...** +. +. +. +. +.** +**.** +.**** +..** +#P -8 -4 +.* +* +*...* +**** +#P -5 -16 +...* +....* +*...* +.**** +#P 1 12 +..** +.**** +**.** +.** +#P 5 1 +..** +**.** +**** +.** +#P 13 -13 +.**** +*...* +....* +...* +. +. +.* +..* +..* +.** +* +. +. +. +.**** +*...* +....* +...* +#P 22 9 +.** +**.*** +.***** +..*** +#P 26 -3 +..* +*.* +.** +#P 31 -8 +..* +*.* +.** +#P 36 -13 +..* +*.* +.** +#P 41 -18 +..* +*.* +.** +#P 46 -23 +..* +*.* +.** +#P 52 -29 +...* +....* +*...* +.**** +#P 36 8 +.**** +*...* +....* +...* +#P 69 -26 +.**** +*...* +....* +...* +. +. +** +*.* +..* +*** +. +. +. +. +.**** +*...* +....* +...* +#P 60 -20 +....** +..* +.*..* +** +.** +#P 61 -12 +..** +**.** +**** +.** +#P 54 -8 +.**** +*...* +....* +*..* +. +. +** +..* +..* +.** +* +. +. +. +.**** +*...* +....* +...* +#P 51 -3 +.** +*** +* +*** +.* +..* +#P 46 -8 +..** +**.** +**** +.** +#P 45 12 +...* +....* +*...* +.**** +#P 63 14 +...* +....* +*...* +.**** +. +. +. +* +.** +..* +..* +** +. +. +...* +....* +*...* +.**** +#P 61 21 +.* +** +.* +.* +#P 52 21 +.....* +..**** +.***** +* +.** +..* +#P 55 28 +.** +**** +**.** +..** diff --git a/programs/demos/life2/lif/IRRATU.lif b/programs/demos/life2/lif/IRRATU.lif new file mode 100644 index 000000000..923b9d878 --- /dev/null +++ b/programs/demos/life2/lif/IRRATU.lif @@ -0,0 +1,264 @@ +#Life 1.05 +#D Unknown irrational +#D Population growth appears to be linear. If you can find the rate +#D of growth, please let me know. (It's probably irrational, and +#D probably different for even and odd generations.) Just proving +#D that the pattern never blows up isn't quite trivial. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 6/16/91 +#N +#P 33 -31 +...** +.**.** +.**** +..** +. +. +.* +.** +*.** +*.* +** +. +. +. +...** +.**.** +.**** +..** +#P 28 -23 +** +* +#P 25 -32 +...* +....* +*...* +.**** +#P 16 -15 +..** +**.** +**** +.** +#P 25 -8 +.**** +*...* +....* +*..* +#P 22 -3 +.** +***** +*....* +***..* +.*..** +..** +#P 25 6 +.**** +*...* +....* +...* +#P 17 6 +..** +**.** +**** +.** +#P 41 8 +..** +**.** +**** +.** +. +. +* +** +.** +.* +* +. +. +. +..** +**.** +**** +.** +#P 36 14 +...** +.* +.*.* +* +.*..* +.* +...* +#P 27 12 +..** +. +.*..* +**.** +.*.***** +..*..*** +......* +#P 32 7 +...* +....* +*...* +.**** +#P 24 23 +.** +**** +**.** +..** +#P 7 -10 +.**** +*...* +....* +...* +#P 12 13 +** +.** +* +#P 17 18 +** +.** +* +#P 3 14 +.**** +****** +****.** +....** +#P -2 21 +**...*......* +..*.*........* +**..*........* +.....********* +#P 3 27 +.**** +****** +****.** +....** +#P -10 24 +....* +.....* +*....* +.***** +#P -5 13 +.*** +***** +***.** +...** +#P -13 8 +.....* +......* +*.....* +.****** +#P 18 -1 +** +* +#P 11 -17 +** +* +#P 10 -24 +..** +..* +*.* +** +#P -2 -22 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P -12 -20 +...* +..**** +.**.*.* +***.*..* +.**.*.* +..**** +...* +#P -22 -18 +** +* +#P -37 -17 +** +* +#P -40 -9 +...* +..*** +.***** +*.*.*.* +**...** +#P -42 -2 +.....* +....*.* +...**.* +...*** +..*..* +..*** +.*...* +*.....* +.*...* +..*** +#P -40 17 +** +* +#P -45 22 +** +* +#P -38 20 +....* +.**** +**** +*..* +**** +.**** +....* +#P -22 22 +** +*.* +.*** +..*** +.*** +*.* +** +#P -13 20 +..** +..* +*.* +** +#P -28 22 +.* +.** +*.* +#P -32 6 +.* +..* +*** +#P -29 -2 +** +* +#P -24 -4 +...* +.**** +..*.** +*.*.*** +..*.** +.**** +...* +#P -16 2 +.* +* +*** +#P -7 -2 +...** +.*..* +* +* +* +.*..* +...** +#P 5 -6 +** +* +#P 5 1 +** +* diff --git a/programs/demos/life2/lif/JAWS.lif b/programs/demos/life2/lif/JAWS.lif new file mode 100644 index 000000000..da4f3d65c --- /dev/null +++ b/programs/demos/life2/lif/JAWS.lif @@ -0,0 +1,239 @@ +#Life 1.05 +#D Jaws, a switch-engine based quadratic growth mechanism. +#D +#D The population roughly follows the equation +#D p = (5.167e-6)t^2 + 2.72t + 1000. +#D +#D If you can't see the pattern, that's probably because +#D it is too large and sparse, and most Life programs at +#D the time of this writing are not powerful enough to +#D view it. +#D +#D By Nick Gotts, February 1997. +#N +#P -268 -632 +..*.* +.....* +.*..* +*** +. +. +. +. +. +.............* +............*.* +. +...........*..* +...........** +...........* +#P -489 -400 +...........................* +..........................*** +..........................*** +.............................*** +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +.** +*** +.** +...* +...* +...* +#P -220 -312 +...*** +*** +*** +.* +. +. +. +. +.............* +.............* +.............* +...........** +..........*** +...........** +#P -585 -215 +...........................* +..........................*** +..........................*** +.............................*** +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +.** +*** +.** +...* +...* +...* +#P -29 1900 +.........................** +........................*.*.** +...........................*** +............................** +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +.* +* +** +..* +.*** +.*** +#P -150 -948 +.....* +.....* +**....* +...*.* +..**.* +. +. +. +. +. +. +...............* +.............**.** +. +.............** +.............* +...............* +...............* +#P -603 756 +.........................*** +..........................*..* +..............................* +...........................*.* +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +* +** +*..* +. +.*.* +..* +#P -653 338 +.........................*** +..........................*..* +..............................* +...........................*.* +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +. +* +** +*..* +. +.*.* +..* diff --git a/programs/demos/life2/lif/Jason1.lif b/programs/demos/life2/lif/Jason1.lif new file mode 100644 index 000000000..2ab36dfb5 --- /dev/null +++ b/programs/demos/life2/lif/Jason1.lif @@ -0,0 +1,17 @@ +#Life 1.05 +#D A nice cycler +#D Found by watching random starts. +#D Shapes are correct, but spacing is wrong. +#D they need to be horizontally closer. +#D 11th October 1998 +#N +#P -10 -4 +....** +....*** +.....***...* +......**...** +***..***...*** +......**...** +.....***...* +....*** +....** \ No newline at end of file diff --git a/programs/demos/life2/lif/LINEPUF.lif b/programs/demos/life2/lif/LINEPUF.lif new file mode 100644 index 000000000..75b3c149c --- /dev/null +++ b/programs/demos/life2/lif/LINEPUF.lif @@ -0,0 +1,185 @@ +#Life 1.05 +#D Line Puffer of width 33 +#D +#D The width is defined by the length of the first free-standing line +#D in the puffer's plume. The formula for this is 12n+1-s, where n is +#D the number of middle segments, and s is the number of cells covered +#D by the little 3-cell, 5-unit puff-suppressors on the upper edge of +#D this otherwise symmetrical pattern. +#D +#D Here, n=4, and s=6+5+5. The Y-shaped puff-suppressors can have 5, +#D 6, or 7 units of spacing on between them, or between one of them and +#D the end. You only need 2 or 3 such suppressors to produce any +#D puffer width. +#D +#D Notice that placing random debris behind the puffer sometimes +#D affects the plume permanently - even turning it asymmetrical if the +#D debris was asymmetrical. It also affects the period of the puffer, +#D that is, the number of generations it takes to repeat. By +#D increasing the width, the period can be made to rise exponentially, +#D surpassing 10^6 at a width of only about 70. But the most amazing +#D thing is that it has a half-life on the order of 10^8 generations. +#D +#D By Hartmut Holzwart and Al Hensel, April 1994 +#N +#P 3 -22 +* +..* +* +. +. +* +..* +* +. +* +* +..* +#P 1 -49 +*.* +*..* +...** +.....* +...**** +..*....* +....*..* +....*..* +......* +*.**** +*...* +...* +.*.* +. +..*** +...** +..*** +. +.*.* +.*..* +....* +..*..* +....** +#P 10 -48 +* +**** +..** +.....* +..**** +......* +..*..*** +....*** +.....* +*.*** +**..* +.*** +.* +...* +.*.* +....* +.*.* +...* +.* +.*** +..*** +..** +#P 6 -26 +*.*..** +*.*.** +* +*.*.** +*.*..** +*.....** +*.*..*.** +*.*.***..* +*........* +*.*.***..* +*.*..*.** +*.....** +*.*..** +*.*.** +* +*.*.** +*.*..** +*.....** +*.*..*.** +*.*.***..* +*........* +*.*.***..* +*.*..*.** +*.....** +*.*..** +*.*.** +* +*.*.** +*.*..** +*.....** +*.*..*.** +*.*.***..* +*........* +*.*.***..* +*.*..*.** +*.....** +*.*..** +*.*.** +* +*.*.** +*.*..** +*.....** +*.*..*.** +*.*.***..* +*........* +*.*.***..* +*.*..*.** +*.....** +*.*..** +*.*.** +* +*.*.** +*.*..** +#P 1 27 +....** +..*..* +....* +.*..* +.*.* +. +..*** +...** +..*** +. +.*.* +...* +*...* +*.**** +......* +....*..* +....*..* +..*....* +...**** +.....* +...** +*..* +*.* +#P 10 27 +..** +..*** +.*** +.* +...* +.*.* +....* +.*.* +...* +.* +.*** +**..* +*.*** +.....* +....*** +..*..*** +......* +..**** +.....* +..** +**** +* diff --git a/programs/demos/life2/lif/LINEPUF2.lif b/programs/demos/life2/lif/LINEPUF2.lif new file mode 100644 index 000000000..b84d6d783 --- /dev/null +++ b/programs/demos/life2/lif/LINEPUF2.lif @@ -0,0 +1,449 @@ +#Life 1.05 +#D Superstable line puffer of width 76 +#D +#D The slight instability in the previous line +#D puffer is corrected in this version, which +#D is believed to be perfectly stable and not +#D have a half-life. In the previous version, +#D a line puffer of width 76 collapses after +#D 39.7 million generations. +#D +#D Unfortunately, adding puff-suppressors +#D brings back the instability. So the formula +#D for the width of this puffer is 12n+7m+7, +#D introducing 7-unit spacers so that all +#D sufficiently large widths are possible. +#D +#D Tim Coe, May 1996. +#N +#P 10 -76 +*.* +*..* +...** +.....* +...**** +..*....* +....*..* +....*..* +......* +*.**** +*...* +...* +.*.* +. +..*** +...** +..*** +. +.*.* +...* +*...* +*.**** +......* +....*..* +....*..* +..*....* +...**** +.....* +...** +*..* +*.* +#P 7 -44 +**.* +...* +*.** +* +#P 29 -49 +*.* +*..* +...** +.....* +...**** +..*....* +....*..* +....*..* +......* +*.**** +*...* +...* +.*.* +. +..*** +...** +...** +***** +..* +....* +..*.* +.....* +..*.* +....* +..* +***** +...** +...** +..*** +. +.*.* +...* +*...* +*.**** +......* +....*..* +....*..* +..*....* +...**** +.....* +...** +*..* +*.* +#P 15 -33 +...*.*....*.* +**.*..*..*..* +......**...* +...*......* +...*.***** +** +...*.***** +...*......* +......**...* +**.*..*..*..* +...*.*....*.* +#P 23 -78 +* +**** +..** +.....* +..**** +......* +..*..*** +....*** +.....* +*.*** +**..* +.*** +.* +...* +.*.* +....* +.*.* +...* +.* +.*** +**..* +*.*** +.....* +....*** +..*..*** +......* +..**** +.....* +..** +**** +* +#P 18 -47 +...*.* +...* +.*..** +..*** +*.* +* +* +#P 8 -41 +.........* +.....*.*** +....*.** +....** +*..** +*.** +#P 29 -3 +*.* +*..* +...** +.....* +...**** +..*....* +....*..* +....*..* +......* +*.**** +*...* +...* +.*.* +. +..*** +...** +...** +***** +..* +....* +..*.* +.....* +..*.* +....* +..* +***** +...** +...** +..*** +. +.*.* +...* +*...* +*.**** +......* +....*..* +....*..* +..*....* +...**** +.....* +...** +*..* +*.* +#P 15 13 +...*.*....*.* +**.*..*..*..* +......**...* +...*......* +...*.***** +** +...*.***** +...*......* +......**...* +**.*..*..*..* +...*.*....*.* +#P 23 47 +* +**** +..** +.....* +..**** +......* +..*..*** +....*** +.....* +*.*** +**..* +.*** +.* +...* +.*.* +....* +.*.* +...* +.* +.*** +**..* +*.*** +.....* +....*** +..*..*** +......* +..**** +.....* +..** +**** +* +#P 10 45 +*.* +*..* +...** +.....* +...**** +..*....* +....*..* +....*..* +......* +*.**** +*...* +...* +.*.* +. +..*** +...** +..*** +. +.*.* +...* +*...* +*.**** +......* +....*..* +....*..* +..*....* +...**** +.....* +...** +*..* +*.* +#P 7 40 +* +*.** +...* +**.* +#P 18 40 +* +* +*.* +..*** +.*..** +...* +...*.* +#P 8 35 +*.** +*..** +....** +....*.** +.....*.*** +.........* +#P 5 -40 +* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +#P 8 -34 +*.** +*..** +....** +....** +*..** +*.** +. +*.** +*..** +....** +....** +*..** +*.** +. +*.** +*..** +....** +*..*.** +*.***..* +.......* +*.***..* +*..*.** +....** +*..** +*.** +. +*.** +*..** +....** +*..*.** +*.***..* +.......* +*.***..* +*..*.** +....** +*..** +*.** +#P 5 4 +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +.* +* +#P 8 4 +*.** +*..** +....** +*..*.** +*.***..* +.......* +*.***..* +*..*.** +....** +*..** +*.** +. +*.** +*..** +....** +....** +*..** +*.** +. +*.** +*..** +....** +*..*.** +*.***..* +.......* +*.***..* +*..*.** +....** +*..** +*.** diff --git a/programs/demos/life2/lif/LOGGROW.lif b/programs/demos/life2/lif/LOGGROW.lif new file mode 100644 index 000000000..6e2abbf0f --- /dev/null +++ b/programs/demos/life2/lif/LOGGROW.lif @@ -0,0 +1,3126 @@ +#Life 1.05 +#D t log(t) +#D Population in generation t is asymptotic to t log(t)/48. +#D More specifically, for n >= 2, the population in gen 60n is +#D +#D . n n - m n - m + 4 +#D . 5747 + 247n + 5 SUM (2 floor(-----) - floor(---------)). +#D . m=1 4m 4m +#D +#D Three breeders and two puffers create a sequence of large period +#D guns; the N'th gun has period 240N. In gen t there are about +#D t/60 finished guns, which have emitted about t/(240*1) + t/(240*2) +#D + t/(240*3) + ... + t/(240*(t/60)) ~ t log(t)/240 gliders. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 11/13/90 +#N +#P -129 -141 +..* +.*** +**.* +*** +.** +#P -115 -141 +..* +.*** +**.* +*** +.** +#P -123 -139 +...* +..*** +.*..** +.**.** +***..* +.**.* +..* +..*...* +..* +..* +..**.* +.....** +#P -128 -132 +*** +*..* +* +* +.*.* +#P -123 -126 +** +..* +#P -122 -124 +...* +...* +*.* +.* +#P -113 -123 +..* +.*** +**.* +*** +.** +#P -115 -113 +..* +*.* +.** +#P -108 -117 +..*.....* +.***...*** +**.*...*.** +***.....*** +.**.....** +#P -104 -111 +.* +*** +. +*.* +.* +#P -106 -103 +***.*** +..*.* +#P -104 -99 +*** +#P -110 -98 +..* +*.* +.** +#P -140 -104 +.*.............* +***...........*** +*.**....*.....*.** +.***...***.....*** +.**...**..*....** +........*** +#P -127 -95 +.*** +*..* +...* +...* +*.* +#P -135 -90 +** +** +#P -143 -87 +..* +.*** +**.* +*** +.** +#P -134 -86 +..* +**.** +**.** +**.** +..** +#P -124 -88 +***...*** +*..*.*..* +*.......* +*.......* +.*.*.*.* +#P -122 -82 +..* +.*** +**.** +.*** +.*** +.*** +.*.* +.*.* +..* +#P -134 -76 +** +.** +* +#P -129 -71 +** +.** +* +#P -124 -66 +** +.** +* +#P -80 -136 +.***...........*** +*..*..........*..* +...*....***......* +...*....*..*.....* +*.*....*...*..*.* +.......**** +........* +#P -66 -128 +..* +.*** +**.* +*** +.** +#P -73 -126 +*** +.** +.** +.**.** +..*.* +...* +#P -82 -118 +.*** +*..* +...* +...* +*.* +#P -77 -112 +** +*** +** +..* +#P -92 -112 +***...*** +*..*.*..* +*.......* +*.......* +.*.*.*.* +#P -90 -106 +..* +.*** +**.** +.*** +.*** +.*** +.*.* +.*.* +..* +#P -82 -97 +*.* +** +.* +#P -67 -99 +*** +*..* +* +* +.*.* +#P -53 -99 +*** +*..* +* +* +.*.* +#P -62 -97 +..*** +.*..* +.*...* +**..*.* +..* +...**.* +...*** +...*** +...** +...*.* +..*..* +.....* +.* +**..* +**..* +.*** +.*** +#P -67 -91 +.* +*** +*.** +.*** +.** +#P -52 -82 +.*** +*..* +...* +...* +*.* +#P -87 -86 +..* +.** +**.* +.*.** +..**.* +.***** +***** +*..* +....* +*..* +*** +#P -110 -89 +...** +...**.** +.* +....* +*...** +*...*..* +*..*..* +...*..* +...* +...*.* +.*..**** +...**..** +...*...* +....*** +.....* +#P -75 -84 +.*.....* +***...*** +*.**.**.* +.***.*** +.**...** +#P -73 -78 +..* +.*.* +*...* +.*.* +.*** +#P -73 -70 +**.** +**.** +**.** +..* +. +.*** +#P -57 -73 +** +*.* +* +#P -62 -68 +** +*.* +* +#P -67 -63 +** +*.* +* +#P -70 -57 +** +** +#P -67 -58 +..*** +.*..* +....* +*...* +....* +.*.* +#P -91 -56 +.** +*..* +*..* +.** +#P -82 -48 +** +*.* +* +#P -103 -58 +.** +*..* +*..* +.** +#P -109 -51 +** +.** +* +#P -164 -65 +***...........*** +*..*..........*..* +*......***....* +*.....*..*....* +.*.*..*...*....*.* +.......**** +.........* +#P -150 -57 +.* +*** +*.** +.*** +.** +#P -159 -51 +** +** +#P -167 -48 +.*** +*..* +...* +...* +*.* +#P -159 -47 +..*** +.*...* +*.....* +.* +..**** +#P -158 -37 +*** +..* +.* +#P -153 -32 +*** +..* +.* +#P -149 -50 +..*.....* +.***...*** +**.*...*.** +***.....*** +.**.....** +#P -146 -44 +..* +.*** +*...* +. +. +**.** +..* +#P -147 -35 +.*...* +*.*.*.* +.***** +.**.** +..*.* +..*** +#P -129 -63 +..* +.*** +**.* +*** +*** +.** +#P -123 -58 +* +* +#P -135 -55 +*** +*..* +* +* +.*.* +#P -121 -55 +*** +*..* +* +* +.*.* +#P -130 -53 +..*** +.*..* +.*...* +**..*.* +..* +...**.* +...*** +...*** +#P -121 -47 +.* +*** +*.** +.*** +.** +#P -120 -40 +..*.....* +.***...*** +**.*...*.** +***.....*** +.**.....** +#P -117 -34 +..* +.*** +*...* +. +. +**.** +..* +#P -118 -25 +.*...* +*.*.*.* +.***** +.**.** +..*.* +..*** +#P -131 -39 +.** +. +.*...* +. +.* +* +*..* +*..* +.** +#P -138 -38 +.*** +*..* +...* +...* +*.* +#P -154 -24 +..*** +.*..* +....* +*...* +....* +.*.* +#P -148 -27 +*** +..* +.* +#P -143 -22 +*** +..* +.* +#P -128 -26 +*** +..* +.* +#P -123 -21 +*** +..* +.* +#P -118 -16 +*** +..* +.* +#P -128 -7 +*** +..* +.* +#P -124 -14 +..* +.*** +**.* +*** +*** +.** +#P -111 -18 +.*** +*..* +...* +...* +*.* +#P -102 -28 +** +*.* +.** +#P -91 -26 +.** +*.* +** +#P -44 -61 +..* +.*** +**.* +*** +.** +#P -30 -61 +..* +.*** +**.* +*** +.** +#P -38 -59 +...* +..*** +.*..** +.**.** +***..* +.**.* +..* +..*...* +..* +..* +..**.* +.....** +. +** +..* +....* +....* +.*.* +..* +#P -27 -44 +.* +*** +*.** +.*** +.** +#P -43 -52 +*** +*..* +* +* +.*.* +#P -34 -34 +.** +** +..* +#P -39 -29 +.** +** +..* +#P -44 -24 +.** +** +..* +#P -41 -20 +.* +*** +*.** +.*** +.*** +.** +#P -73 -51 +..*.............* +.***...........*** +**.*.....*....**.* +***.....***...*** +.**....*..**...** +.......*** +#P -72 -42 +*** +*..* +* +* +.*.* +#P -62 -37 +** +** +#P -66 -33 +..* +**.** +**.** +**.** +.** +#P -56 -34 +.* +*** +*.** +.*** +.** +#P -51 -45 +***...*** +*..*.*..* +*.......* +*.......* +.*.*.*.* +#P -48 -39 +.* +*** +*** +#P -50 -33 +.*...* +.*...* +*.*.*.* +..*** +..*** +...* +#P -49 -19 +.** +** +..* +#P -64 -23 +.** +** +..* +#P -80 -35 +***...*** +*..*.*..* +*.......* +*.......* +.*.*.*.* +#P -77 -29 +.* +*** +*** +#P -79 -23 +.*...* +.*...* +*.*.*.* +..*** +..*** +...* +#P -69 -18 +.** +** +..* +#P -83 -14 +.* +*** +*.** +.*** +.** +#P -74 -13 +.** +** +..* +#P -72 -9 +..*** +.*..* +....* +*...* +....* +.*.* +#P -64 -4 +.** +** +..* +#P -113 1 +** +** +#P -102 2 +** +*.* +.** +#P -91 4 +.** +*.* +** +#P -79 3 +** +** +#P -113 8 +*** +..* +.* +#P -79 11 +.** +** +..* +#P -72 11 +.*.............* +***...........*** +*.**....*.....*.** +.***...***.....*** +.**...**.*.....** +#P -66 19 +* +*** +.* +.*..* +..*** +#P -59 20 +.*** +*..* +...* +...* +*.* +#P -75 28 +..* +.*** +**.* +*** +.** +#P -70 34 +*.* +** +..*** +#P -36 7 +.***...........*** +*..*..........*..* +...*....***......* +...*....*..*.....* +*.*....*......*.* +#P -30 13 +* +* +#P -25 12 +.* +* +#P -29 15 +.* +*** +*** +** +.***** +...*** +#P -29 22 +* +* +#P -28 24 +.* +.** +** +* +#P -36 15 +..* +.*** +**.* +*** +.** +#P -44 22 +..*.....* +.***...*** +**.*...*.** +***.....*** +.**.....** +#P -40 28 +.* +*** +. +*.* +.* +#P -42 36 +***.*** +..*.* +#P -40 40 +*** +#P -19 24 +*** +*..* +* +* +.*.* +#P -26 34 +*** +* +.* +#P -31 39 +*** +* +.* +#P -36 44 +*** +* +.* +#P -41 49 +*** +* +.* +#P -33 48 +*** +*..* +* +*...* +* +.*.* +#P -56 27 +***...*** +*..*.*..* +*.......* +*.......* +.*.*.*.* +#P -54 33 +..* +.*** +**.** +**.** +.*.* +..* +#P -55 41 +.**.** +*.....* +.*...* +..*** +..*.* +...* +...* +#P -64 41 +** +.** +* +#P -59 46 +** +.** +* +#P -54 51 +** +.** +* +#P -61 52 +..* +.*** +**.* +*** +*** +.** +#P -57 59 +..* +.***.*** +*...**** +.***..*.* +..* +#P -54 67 +..* +.*.* +** +#P -113 31 +** +** +#P -106 29 +....** +....** +.** +*** +.** +....** +....** +#P -98 30 +..* +.***** +*..** +** +..* +#P -91 31 +** +..* +...* +...* +...* +..* +** +#P -79 33 +** +** +#P -82 47 +.** +*.* +..* +#P -89 55 +*** +..* +.* +#P -113 61 +** +** +#P -106 59 +....** +....** +.** +*** +.** +....** +....** +#P -98 60 +..* +.*****.* +*..** +** +..* +#P -91 61 +.* +..* +...* +...* +...* +..* +** +#P -79 63 +** +** +#P -67 62 +.** +*.* +..* +#P -74 70 +*** +..* +.* +#P -82 77 +.** +*.* +..* +#P -89 85 +*** +..* +.* +#P -113 91 +** +** +#P -106 89 +....** +....** +.** +*** +.** +....** +....** +#P -98 90 +..* +.***** +*..** +** +..* +#P -91 91 +** +..* +...* +...* +...* +..* +** +#P -79 93 +** +** +#P -52 77 +.** +*.* +..* +#P -59 85 +*** +..* +.* +#P -67 92 +.** +*.* +..* +#P -74 100 +*** +..* +.* +#P -82 107 +.** +*.* +..* +#P -89 115 +*** +..* +.* +#P -113 121 +** +** +#P -106 119 +....** +....** +.** +*** +.** +....** +....** +#P -98 120 +..* +.***** +*..** +** +..* +#P -91 121 +** +..* +...* +...* +...* +..* +** +#P -79 123 +** +** +#P -47 72 +..** +..* +*.* +** +#P -10 67 +.** +**** +**.** +..** +#P -10 81 +.** +**** +**.** +..** +#P -15 72 +...* +.* +.*..** +*.....* +.*.*..** +.*...** +...*** +#P -19 68 +.**** +*...* +....* +*..* +#P -27 60 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P -32 63 +** +..* +..** +..* +** +#P -38 63 +..*** +.** +* +.** +..*** +#P -42 70 +.* +.** +*.* +#P -37 75 +.* +.** +*.* +#P -44 78 +.**** +****** +****.** +....** +#P -30 74 +....* +.....* +....*** +....*** +*****.*** +.***...** +..* +#P -27 84 +..** +**.** +**** +.** +#P -23 108 +*.* +.** +.* +#P 462 65 +...** +.**.** +.**** +..** +. +. +.* +.** +*.** +*.* +** +. +. +. +...** +.**.** +.**** +..** +#P 454 78 +*..* +....* +*...* +.**** +#P 452 70 +** +** +#P 445 71 +.*** +.*** +*...* +**** +.*** +#P 446 62 +.** +**** +**.** +..** +#P 446 79 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 442 82 +* +.* +.** +.* +* +#P 438 82 +.* +.* +* +.* +.* +#P 430 81 +....* +..**.* +***** +*..* +***** +..**.* +....* +#P 437 71 +*.* +.** +.* +#P 432 76 +*.* +.** +.* +#P 429 68 +....** +****.** +****** +.**** +#P 421 75 +...** +..*..* +..*.* +.*** +*** +..* +..* +** +#P 420 86 +....* +**..** +*....* +.**** +.** +#P 412 80 +.** +*..* +.* +#P 456 102 +...**** +..*...* +......* +..*..* +. +. +..** +.*..* +.*..* +**.** +.** +. +. +. +...**** +..*...* +......* +..*..* +#P 447 107 +..* +.** +* +.***** +..**** +.....* +#P 450 102 +..** +**.** +**** +.** +#P 441 95 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P 431 97 +......* +.******* +*..***.** +.******* +......* +#P 441 117 +*..* +....* +*...* +.**** +#P 435 113 +*** +..* +.* +#P 430 108 +*** +..* +.* +#P 424 113 +.****** +*.....* +......* +*....* +..** +#P 412 95 +.........** +........*..** +........* +...***.****...* +...******......* +.....****.* +.*....* +*.**.****....* +*..*.*......* +.**..***** +...*.**.*** +...........** +#P 424 108 +.* +** +#P 417 113 +.**** +*...* +....* +*..* +#P 415 119 +..** +.*..* +.*..* +**.** +.** +#P 417 127 +.**** +*...* +....* +*..* +#P 409 127 +..** +**.** +**** +.** +#P 406 118 +** +** +#P 399 118 +..* +.*.* +*...* +*...* +*...* +*..* +..* +#P 399 111 +.**** +*...* +....* +*..* +#P 399 90 +* +*** +...* +..** +#P 393 99 +*..* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +*..* +#P 389 102 +* +.** +*** +.** +* +#P 382 101 +...* +.*** +.** +* +.** +.*** +...* +#P 388 112 +.* +** +*.* +#P 369 90 +* +*** +...* +..** +#P 373 107 +.* +** +*.* +#P 365 105 +..** +*.** +*.*.** +.....* +...*** +#P 380 124 +*..* +....* +*...* +.**** +#P 380 138 +*..* +....* +*...* +.**** +#P 375 130 +..*.* +**...* +***.*.** +***....* +...*...* +....*** +....* +#P 372 124 +.** +**** +**.** +..** +#P 365 116 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 361 119 +* +.* +.** +.* +* +#P 357 119 +.* +.* +* +.* +.* +#P 349 118 +....* +..**.* +***** +*..* +***** +..**.* +....* +#P 366 132 +* +. +. +..* +*.* +#P 360 134 +.** +* +*...* +.*** +#P 363 141 +.**** +*...* +....* +*..* +#P 373 153 +.** +**** +**.** +..** +. +. +. +. +** +.** +** +* +. +. +.** +**** +**.** +..** +#P 365 160 +** +* +*..* +.*** +...** +#P 364 154 +.**** +*...* +....* +*..* +#P 356 170 +..** +**.** +**** +.** +#P 352 164 +* +* +*.* +.* +.** +#P 356 146 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 352 149 +* +.* +.** +.* +* +#P 348 149 +.* +.* +* +.* +.* +#P 341 148 +...* +..*.* +.*** +*** +.*** +..*.* +...* +#P 345 160 +.* +.** +*.* +#P 339 164 +.**** +****** +****.** +....** +#P 337 153 +.** +.** +*..* +..*** +**.** +.* +..*** +..*** +#P 336 147 +.** +*..* +*..* +.** +#P 329 148 +..* +..* +....* +..*..* +..*..* +.****.* +**....* +.*** +..** +...**** +#P 353 132 +.** +*.* +..* +#P 348 127 +.** +*.* +..* +#P 343 122 +.** +*.* +..* +#P 333 112 +.** +*.* +..* +#P 343 101 +.** +*..* +*..* +.** +#P 339 90 +* +*** +...* +..** +#P 338 127 +...** +***.** +***** +.*** +#P 331 123 +.** +**** +**.** +..** +#P 328 130 +..** +.*..* +.*..** +*..** +**** +#P 331 137 +.** +**** +**.** +..** +#P 322 138 +.**** +*...* +....* +*..* +#P 315 141 +.* +** +*.* +#P 319 129 +** +** +#P 311 129 +...* +..*** +.**.** +***.*** +***.** +..*.* +#P 313 121 +.** +**** +**.** +..** +#P 314 101 +** +*.* +.** +#P 309 90 +* +*** +...* +..** +#P 307 111 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P 302 113 +.* +..* +*..* +..* +.* +#P 295 112 +...* +.*.* +*..* +* +*..* +.*.* +...* +#P 301 123 +** +*.* +* +#P 284 101 +** +*.* +.** +#P 279 90 +* +*** +...* +..** +#P 286 118 +** +*.* +* +#P 279 116 +*** +. +.* +#P 282 118 +** +..* +** +* +#P 286 162 +...** +.**.** +.**** +..** +. +. +.* +.** +*.** +*.* +** +. +. +. +...** +.**.** +.**** +..** +#P 277 168 +*** +* +*** +...*** +#P 278 161 +*..* +....* +*...* +.**** +#P 270 155 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P 260 157 +......* +.**..*.* +*..**...* +.**..*.* +......* +#P 270 177 +.** +**** +**.** +..** +#P 264 173 +** +.** +.* +..* +#P 259 168 +** +.** +* +#P 253 173 +....** +****.** +****** +.**** +#P 270 126 +.* +** +*.* +#P 256 112 +.** +*..* +*..* +.** +#P 254 101 +** +*.* +.** +#P 249 90 +* +*** +...* +..** +#P 257 131 +.**** +*...* +....* +*..* +#P 254 136 +.** +***** +*....* +***..* +.*..** +..** +#P 257 145 +.**** +*...* +....* +*..* +#P 249 131 +..** +**.** +**** +.** +#P 242 123 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P 237 125 +.* +..* +*..* +..* +.* +#P 230 124 +...* +.*.* +*..* +* +*..* +.*.* +...* +#P 245 141 +** +** +#P 237 137 +..*.** +*.....* +......* +*.....* +.*...* +..*** +#P 240 146 +*..* +....* +*...* +.**** +#P 241 155 +.........** +........*..* +........*..** +...**....**.*** +....*.**....*** +.......*....*** +....*....***** +***...******** +.**...* +..*...***** +...** +......*....* +.........**** +...........*.* +............* +.............* +#P 227 149 +.** +** +..* +#P 231 139 +*** +..* +.* +#P 226 134 +*** +..* +.* +#P 221 129 +*** +..* +.* +#P 215 132 +.*** +***** +***.** +...** +#P 220 119 +*..* +....* +*...* +.**** +#P 226 112 +.** +*.* +** +#P 224 101 +** +*.* +.** +#P 219 90 +* +*** +...* +..** +#P 215 60 +*..* +....* +*...* +.**** +. +. +. +. +*** +..* +*.* +** +. +. +*..* +....* +*...* +.**** +#P 205 66 +** +** +#P 210 70 +** +#P 207 71 +* +#P 207 74 +.** +**** +**.** +..** +#P 198 67 +..* +.*** +* +***** +#P 198 59 +.**** +*...* +....* +*..* +#P 190 66 +.* +..* +*** +#P 185 71 +.* +..* +*** +#P 180 62 +...** +.*....* +.......* +.*.....* +..****** +#P 198 76 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P 194 79 +** +*** +** +#P 185 77 +...* +....** +.*** +*** +.*** +....** +...* +#P 176 75 +...* +..*.* +.....* +*....* +*....* +.*..* +..*** +#P 189 90 +* +*** +...* +..** +#P 194 101 +** +*.* +.** +#P 196 112 +.** +*.* +** +#P 195 124 +** +** +#P 213 150 +.** +**** +**.** +..** +#P 213 164 +.** +**** +**.** +..** +#P 210 156 +.* +**** +***.* +....** +*.*** +.*** +#P 204 158 +.***** +.* +. +** +*...* +#P 201 156 +.* +.* +* +#P 197 157 +.* +* +.* +..** +#P 204 151 +.**** +*...* +....* +*..* +#P 208 199 +*..* +....* +*...* +.**** +#P 206 206 +.** +**.** +.*..* +.*..* +..** +#P 208 213 +*..* +....* +*...* +.**** +#P 200 213 +.** +**** +**.** +..** +#P 197 206 +.....* +..**** +.***** +* +.** +..* +#P 195 166 +.** +**** +**.** +..** +#P 189 171 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 185 174 +* +.* +.** +.* +* +#P 181 174 +.* +.* +* +.* +.* +#P 173 173 +....* +..**.* +***** +*..* +***** +..**.* +....* +#P 190 197 +*..* +....* +*...* +.**** +#P 185 202 +.*** +.*** +*.* +#P 184 187 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P 180 190 +** +*** +** +#P 171 188 +...* +....** +.*** +*** +.*** +....** +...* +#P 171 197 +.** +** +..* +#P 187 164 +.* +* +*** +#P 172 169 +.* +* +*** +#P 182 134 +.** +** +..* +#P 165 124 +** +** +#P 166 112 +.** +*.* +** +#P 164 101 +** +*.* +.** +#P 159 90 +* +*** +...* +..** +#P 161 168 +** +..* +#P 161 170 +.....* +....*.* +*.*...* +.*.*** +#P 157 195 +.......** +.***** +******..* +***** +......** +#P 152 202 +*..* +....* +*...* +.**** +#P 150 209 +.** +**.** +.*..* +.*..* +..** +#P 152 216 +*..* +....* +*...* +.**** +#P 144 202 +.** +**** +**.** +..** +#P 138 187 +....** +. +..**** +** +#P 157 147 +.** +**** +**.** +..** +#P 150 153 +.....* +....**** +..*****.* +.*......** +*...*.*** +.*...*** +..* +#P 157 161 +.** +**** +**.** +..** +#P 148 162 +.**** +*...* +....* +*..* +#P 141 163 +*..* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +*..* +#P 141 176 +.** +*..* +*..* +.** +#P 133 167 +**..*** +**..*** +**..*** +#P 143 153 +* +* +#P 136 151 +..* +.*** +*.** +* +.* +#P 140 146 +..** +**.** +**** +.** +#P 135 124 +** +** +#P 137 119 +.** +** +..* +#P 136 112 +.** +*.* +** +#P 134 101 +** +*.* +.** +#P 134 95 +.* +* +*** +#P 129 90 +* +*** +...* +..** +#P 128 165 +** +..* +#P 128 170 +..* +** +#P 124 167 +.* +* +.* +#P 130 155 +* +.** +** +#P 125 160 +* +.** +** +#P 120 165 +* +.** +** +#P 137 194 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 131 198 +.*.* +*..** +.*.* +#P 126 196 +.* +.* +** +. +** +.* +.* +#P 123 198 +* +* +* +#P 141 213 +** +** +#P 134 208 +..* +*..* +*...* +*...* +*...* +.*.* +..* +#P 135 219 +.**** +*...* +....* +*..* +#P 126 211 +.** +*.* +..* +#P 121 206 +.** +*.* +..* +#P 116 201 +.** +*.* +..* +#P 106 188 +....** +...*..* +......* +.*...* +* +..** +#P 112 177 +.** +*.* +** +#P 119 213 +.**** +*...* +....* +*..* +. +. +.* +..* +..* +.** +* +. +. +. +.**** +*...* +....* +*..* +#P 117 218 +.* +* +#P 112 219 +.* +** +.** +..** +#P 116 224 +** +#P 111 213 +..** +**.** +**** +.** +#P 104 205 +....** +****.** +****** +.**** +. +.** +**** +**.** +..** +#P 99 207 +.* +..* +*..* +..* +.* +#P 92 206 +...* +.*.* +*..* +* +*..* +.*.* +...* +#P 102 228 +*..* +....* +*...* +.**** +#P 98 223 +*.* +*..* +. +.*** +#P 92 220 +*** +..* +.* +#P 87 215 +*** +..* +.* +#P 82 209 +** +..* +** +#P 77 205 +*** +..* +.* +#P 124 138 +..** +**.** +**** +.** +#P 121 144 +**** +*..** +.*..** +.*..* +..** +#P 124 152 +..** +**.** +**** +.** +#P 112 144 +...*.* +.*....* +.*...* +*...* +.** +.** +#P 115 151 +*..* +....* +*...* +.**** +#P 108 154 +.**** +*...* +....* +*..* +. +*....* +......* +*.....* +.****** +#P 101 156 +..** +.**** +*...** +.**** +..** +#P 92 155 +.....* +....*.* +..**..* +**.* +..**..* +....*.* +.....* +#P 107 135 +.** +**** +**.** +..** +#P 100 142 +*.* +.** +.* +#P 95 147 +*.* +.** +.* +#P 90 152 +*.* +.** +.* +#P 105 124 +** +** +#P 107 119 +* +* +.* +#P 103 110 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P 101 102 +.***** +*.***.* +.*...* +..*** +...* +#P 99 90 +* +*** +...* +..** +#P 99 112 +* +*.* +** +#P 84 134 +.** +**** +**.** +..** +#P 82 149 +.*** +***** +***.** +...** +#P 79 139 +...* +.* +.*..** +*.....* +.*.*..** +.*...** +...*** +#P 70 141 +......* +..*..*** +.*.***** +**.** +.*..* +. +..** +#P 73 150 +.***** +*....* +.....* +*...* +..* +#P 80 162 +*.* +.** +.* +#P 81 168 +.** +**** +**.** +..** +#P 82 177 +.** +*.* +** +#P 80 188 +** +*.* +.** +#P 76 195 +*..* +....* +*...* +.**** +#P 66 152 +*..* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +*..* +#P 62 155 +* +.** +*** +.** +* +#P 55 154 +...* +.*** +.** +* +.** +.*** +...* +#P 67 133 +..** +**.** +**** +.** +#P 60 139 +* +.** +** +#P 55 144 +* +.** +** +#P 50 149 +* +.** +** +#P 45 155 +** +** +.* +#P 40 159 +* +.** +** +#P 53 166 +** +** +#P 52 177 +.** +*.* +** +#P 50 188 +** +*.* +.** +#P 51 200 +** +** +#P 77 213 +..* +*...* +.....* +*....* +.***** +#P 79 223 +*** +..* +*.* +** +#P 79 229 +*..* +....* +*...* +.**** +#P 70 222 +.** +** +.*..* +..* +....** +#P 69 214 +.*** +***** +***.** +...** +#P 62 205 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 58 208 +* +.* +.** +.* +* +#P 54 208 +.* +.* +* +.* +.* +#P 46 207 +....* +..**.* +***** +*..* +***** +..**.* +....* +#P 62 232 +.**** +*...* +....* +*..* +#P 57 227 +** +.* +.* +..** +#P 51 222 +.** +*.* +..* +#P 46 217 +.** +*.* +..* +#P 41 212 +.** +*.* +..* +#P 36 207 +.** +*.* +..* +#P 35 216 +.***** +*....* +.....* +*...* +..* +#P 75 124 +** +** +#P 77 119 +* +* +.* +#P 73 110 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P 71 102 +.***** +*.***.* +.*...* +..*** +...* +#P 69 90 +* +*** +...* +..** +#P 69 112 +* +*.* +** +#P 61 119 +.* +* +*** +#P 54 127 +* +*.* +** +#P 39 90 +* +*** +...* +..** +#P 41 102 +.***** +*.***.* +.*...* +..*** +...* +#P 43 110 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P 47 119 +* +* +.* +#P 45 124 +** +** +#P 39 112 +* +*.* +** +#P 31 119 +.* +* +*** +#P 24 127 +* +*.* +** +#P 16 134 +.* +* +*** +#P 9 142 +* +*.* +** +#P 27 155 +** +** +#P 23 166 +** +** +#P 21 172 +...** +..*..* +..*..* +..*.* +.*** +.*** +*..* +*.* +*** +#P 20 188 +** +*.* +.** +.** +..** +.*.* +...* +#P 21 200 +** +** +#P -3 155 +** +** +#P -7 166 +** +** +#P -9 173 +..*** +.**.** +.**.** +.***** +**...** +#P -8 180 +.** +***** +* +..*** +....* +..** +..** +#P -11 189 +**...** +*.*.*.* +.***** +..*** +...* +#P -9 200 +** +** +#P 0 191 +*.* +.** +.* +#P 9 90 +* +*** +...* +..** +#P 11 102 +.***** +*.***.* +.*...* +..*** +...* +#P 13 110 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P 17 119 +* +* +.* +#P 15 124 +** +** +#P 9 112 +* +*.* +** +#P 1 119 +.* +* +*** +#P -6 127 +* +*.* +** +#P -14 134 +.* +* +*** +#P -21 142 +* +*.* +** +#P -29 149 +.* +* +*** +#P -37 166 +** +** +#P -39 173 +..*** +.**.** +.**.** +.***** +**...** +#P -38 180 +.** +***** +* +..*** +....* +..** +..** +#P -41 189 +**...** +*.*.*.* +.***** +..*** +...* +#P -39 200 +** +** +#P -30 191 +*.* +.** +.* +#P -22 198 +* +.** +** +#P -15 206 +*.* +.** +.* +#P -21 90 +* +*** +...* +..** +#P -19 102 +.***** +*.***.* +.*...* +..*** +...* +#P -17 110 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P -13 119 +* +* +.* +#P -15 124 +** +** +#P -21 112 +* +*.* +** +#P -29 119 +.* +* +*** +#P -36 127 +* +*.* +** +#P -44 134 +.* +* +*** +#P -51 142 +* +*.* +** +#P -59 149 +.* +* +*** +#P -66 157 +* +*.* +** +#P -74 164 +.* +* +*** +#P -67 166 +** +** +#P -69 173 +..*** +.**.** +.**.** +.***** +**...** +#P -68 180 +.** +***** +* +..*** +....* +..** +..** +#P -71 189 +**...** +*.*.*.* +.***** +..*** +...* +#P -69 200 +** +** +#P -60 191 +*.* +.** +.* +#P -52 198 +* +.** +** +#P -45 206 +*.* +.** +.* +#P -37 213 +* +.** +** +#P -32 220 +...** +..* +..*.* +...* +.* +*....* +......* +*.....* +.****** +#P -97 166 +** +** +#P -99 173 +..*** +.**.** +.**.** +.***** +**...** +#P -98 180 +.** +***** +* +..*** +....* +..** +..** +#P -101 189 +**...** +*.*.*.* +.***** +..*** +...* +#P -99 200 +** +** +#P -90 191 +*.* +.** +.* +#P -82 198 +* +.** +** +#P -75 206 +*.* +.** +.* +#P -67 213 +* +.** +** +#P -62 216 +** +** +#P -75 220 +..* +*...* +.....* +*....* +.***** diff --git a/programs/demos/life2/lif/LOGGROW2.lif b/programs/demos/life2/lif/LOGGROW2.lif new file mode 100644 index 000000000..114f5f046 --- /dev/null +++ b/programs/demos/life2/lif/LOGGROW2.lif @@ -0,0 +1,824 @@ +#Life 1.05 +#D log(t)^2 +#D Population in generation t is asymptotic to +#D (5 log(t)^2)/(3 log(2)^2). More specifically, for +#D n>=2, the population in generation 960*2^n is +#D 5n^2/3 + 60n + 1875 + (if n mod 3 = 0 then 0 else 25/3). +#D This uses a caber tosser, a modified block pusher, and a toggleable +#D p120 gun. Each glider from the caber tosser turns on the gun and +#D causes the block pusher to go through one cycle (sending out a +#D salvo and awaiting the return gliders). When the cycle is +#D complete, the gun is turned back off. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 4/24/92 +#N +#P -82 94 +......* +......**.** +....*..* +..*......* +..*...*..* +***..**** +.**..*..* +..*...* +...***.* +....*** +.....* +#P -76 104 +.........* +......**.* +....** +..*..*..** +.*.*.**..** +***.** +.**.....* +..* +...***** +....** +.....* +#P -56 120 +......* +......**.** +....*..* +..*......* +..*...*..* +***..**** +.**..*..* +..*...* +...***.* +....*** +.....* +#P -62 93 +..* +..*** +.**.** +. +....** +....* +...** +...* +..*** +*.*** +* +* +#P -47 88 +..*** +..*..* +.* +....** +*...* +..** +#P -79 82 +*** +#P -72 80 +** +*.* +*.** +.** +.* +#P -56 65 +...*** +.*..* +* +.*.* +#P -38 81 +...* +..** +*..* +. +*.* +.* +#P -30 91 +...*** +.*..* +* +.*.* +#P -73 73 +* +** +#P -65 65 +* +** +#P -57 57 +* +** +#P -35 119 +* +** +#P -27 111 +* +** +#P -19 103 +* +** +#P -13 94 +* +** +#P 5 -4 +** +* +#P 3 7 +**...** +. +.*...* +..*** +..*** +#P 5 17 +...* +..*** +..*** +. +**...** +*.....* +#P 7 26 +.** +** +#P 2 29 +...* +..*.* +.*...* +..*** +**...** +#P 0 47 +...* +..*** +.***** +**...** +#P 2 58 +* +** +#P -13 16 +......* +.....* +**..*....* +.*.*..*.** +....** +#P -18 26 +* +*** +...* +..** +#P -16 35 +**...** +**...** +.***** +..*.* +. +..*** +#P -14 49 +...* +..*** +.***** +**...** +#P -11 60 +** +.* +#P -14 71 +**...** +. +.*...* +..*** +..*** +#P -16 78 +...* +..*** +.*...* +...* +*.....* +*.....* +.*...* +..*** +#P -30 69 +.** +*.* +.* +#P -23 20 +.* +*.* +.* +#P -29 19 +...* +.*** +* +** +#P -34 29 +...* +..*** +.***** +**...** +.***** +.*...* +..*.* +...* +#P -36 39 +...* +.**.** +. +*.....* +. +**...** +#P -31 51 +** +* +.*** +...* +#P -104 -34 +** +* +#P -107 -25 +..*** +.*...* +*.....* +**.*.** +#P -105 -19 +.* +*.* +*.* +** +#P -109 -15 +...* +..*** +.*...* +*.***.* +.***** +#P -106 3 +**...** +*.*.*.* +.***** +..*** +...* +#P -104 15 +..*** +.**.** +.**.** +.***** +**...** +#P -99 6 +.** +*.* +..* +#P -101 28 +.* +** +#P -59 18 +.** +*.* +..* +#P -66 33 +.* +** +** +* +#P -72 38 +...* +.*** +* +** +#P -87 31 +..** +.*** +*.*..*...* +**..**..** +....** +#P -92 35 +** +* +#P -95 40 +...* +.*...* +.***** +**...** +.***** +..*** +...* +#P -93 57 +..*** +.*...* +. +*.....* +**...** +#P -90 69 +.* +** +#P -81 70 +..** +...* +*** +* +#P -79 64 +**...** +..*** +.*...* +..*.* +...* +#P -77 45 +..*** +. +..*.* +.***** +**...** +**...** +#P -89 48 +.** +*.* +..* +#P -77 53 +** +*.* +* +#P -13 -140 +** +* +#P -8 -143 +...* +.**** +..*.** +*.*.*** +..*.** +.**** +...* +#P 11 -145 +*.* +*...* +....* +.....* +....* +*...* +*.* +#P 25 -142 +..** +.* +* +* +* +.* +..** +#P 38 -140 +** +.* +...** +...*** +...** +.* +** +#P 49 -137 +.* +** +#P -28 -126 +** +* +#P -19 -129 +..** +.*.* +* +*..* +* +.*.* +..** +#P -13 -127 +.*** +*..* +.** +#P -9 -131 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P 4 -133 +..** +..* +*.* +** +#P 10 -136 +** +* +#P -23 -121 +** +* +#P -25 -112 +**...** +*.....* +. +.*...* +..*** +#P -23 -101 +...* +.**.** +. +*.....* +. +**...** +#P -20 -87 +.* +** +#P -5 -122 +** +* +#P -2 -119 +** +* +#P 3 -126 +...* +..** +. +...* +..*.* +.*..* +*..* +. +...* +..** +#P -9 -107 +* +*** +...* +..** +#P -7 -99 +...* +..*** +..*** +. +**...** +*.....* +#P -5 -86 +* +** +#P 2 -107 +.* +..* +*** +#P 16 -115 +** +.* +.*.* +..** +#P 19 -120 +....* +**..**.*** +*.....**** +....** +#P 24 -113 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P 19 -100 +** +* +#P 39 -129 +** +.* +.*.* +..** +#P 48 -127 +** +*.* +...* +*..* +...* +*.* +** +#P 59 -125 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P 73 -122 +.* +** +#P 39 -122 +.* +.** +. +.* +*.* +*..* +.*..* +. +.* +.** +#P 37 -111 +** +.* +#P 41 -109 +** +.* +#P 42 -104 +..** +.*.* +.* +** +#P 48 -109 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P 66 -111 +...* +..**** +.**.* +***.*.* +.**.* +..**** +...* +#P 76 -109 +** +.* +#P 43 -93 +...* +.*** +* +** +#P 38 -82 +**...** +.***** +.**.** +.**.** +..*** +#P 43 -74 +** +* +.*** +...* +#P 41 -70 +* +** +** +.* +#P 54 -92 +** +* +#P 63 -95 +* +** +.** +.*** +.** +** +* +#P 75 -93 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P 86 -95 +..** +..* +*.* +** +#P 86 -87 +** +.* +#P 83 -80 +...* +..*** +..*** +. +**...** +*.....* +#P 81 -62 +**...** +. +.*...* +..*** +..*** +#P 79 -55 +..** +...* +*** +* +#P 83 -72 +.* +** +*.* +#P 99 -84 +** +* +#P 97 -74 +...* +..*** +.***** +**...** +.***** +.*...* +..*.* +...* +#P 99 -64 +...* +.**.** +. +*.....* +. +**...** +#P 102 -48 +...* +..*** +.***** +*.*.*.* +**...** +#P 100 -32 +**...** +.***** +.**.** +.**.** +..*** +#P 105 -24 +** +* +.*** +...* +#P 102 -40 +.** +** +..* +#P 94 -62 +.* +* +*** +#P 92 -44 +.* +** +#P 84 -45 +....** +**** +***.** +.....* +#P 78 -28 +** +* +#P 64 -32 +.* +* +*** +#P 53 -48 +.** +*.* +..* +#P 43 -4 +** +*.* +..* +..** +#P 31 -9 +....* +.**** +**** +*..* +**** +.**** +....* +#P 24 -6 +** +* +#P 33 -17 +.* +** +*.* +#P 22 -20 +..** +...* +*** +* +#P 24 -30 +**...** +*.....* +. +.*...* +..*** +#P 26 -39 +** +.* +#P 11 -62 +.* +** +#P 8 -73 +**...** +.***** +..*** +...* +#P 15 -68 +..** +.*.* +.* +** +#P 6 -83 +* +*** +...* +..** +#P -3 -75 +...* +.*** +* +** +#P -8 -68 +...* +..*** +..*** +. +**...** +*.....* +#P -10 -50 +**...** +. +.*...* +..*** +..*** +#P -8 -41 +* +** +#P -8 -60 +.* +** +*.* +#P -18 -81 +.**** +*........* +*...**..** +.*..* +#P -23 -78 +** +* +#P -26 -73 +..*** +..*** +.*...* +*.....* +.*...* +..*** +#P -24 -56 +...* +..*** +.***** +*.*.*.* +**...** +#P -22 -44 +.* +** +#P -32 -70 +** +* +#P -34 -61 +**...** +*.....* +. +.*...* +..*** +#P -32 -46 +...* +..*** +.***** +**...** +.***** +.*...* +..*.* +...* +#P -35 -35 +...* +..*** +..*** +. +**...** +*.....* +#P -37 -17 +**...** +. +.*...* +..*** +..*** +#P -39 -10 +..** +...* +*** +* +#P -36 -47 +** +.* +#P -45 -51 +** +* +.* +** +#P -57 -57 +......* +.....* +.*..*....* +**.*..*.** +....** +#P -62 -53 +.* +** diff --git a/programs/demos/life2/lif/LONEDOTS.lif b/programs/demos/life2/lif/LONEDOTS.lif new file mode 100644 index 000000000..996849e15 --- /dev/null +++ b/programs/demos/life2/lif/LONEDOTS.lif @@ -0,0 +1,384 @@ +#Life 1.05 +#D Lone Dot Agars +#D by Dean Hickerson, Al Hensel. +#D See also TWINDOTS, POLES, OSCSP2. +#N +#P -60 -57 +............**.......** +............*.........* +**...........*.*...*.* +* +.*.*...........*.*.* +. +...*.*.......*.*.* +. +.....*.*...*.*...*.*.....................** +..........................**..**........*.* +.......*.*.*.......*.*...*.*..*.* +......................................*.* +.....*.*.*...........*.*.*......*.* +....................................*.* +...*.*...*.*.......*.*.*..........* +.....................................* +.*.*.......*.*...*.*...*.*.......*.* +.**..................................*.*......** +.............*.*.*.......*.*...*.*...........*.* +.......................................*.* +...........*.*.*...........*.*.*...........*.* +.........................................* +.........*.*...*.*.......*.*.*..............* +........*...............................*.* +........**.......*.*...*.*...*.*............*.* +....................*.*...............*.*......* +...................**.**.......*.*............** +..................................*.*.* +.................................**.** +#P -6 -58 +..............** +..........**.*.* +..........* +...........*...*...** +....................* +...........*.*.*.*.* +........................** +.........*.*.....*.*.*.*.* +.....** +.....*.*.*.....*.*...*...*...** +..............................* +.......*.*.*.*.*.....*.*.*.*.* +..................................** +.....*.*...*...*...*.*.....*.*.*.*.* +. +**.*.*.....*.*.*.*.*.....*.*...*...* +*...................................* +.*...*...*.*.....*.*.*.*.*.....*.*.** +. +.*.*.*.*.*.....*.*...*...*...*.* +.** +.......*.*.*.*.*.....*.*.*.*.* +......* +......**...*...*...*.*.....*.*.* +..............................** +...........*.*.*.*.*.....*.* +...........** +.................*.*.*.*.* +................* +................**...*...* +..........................* +.....................*.*.** +.....................** +#P 37 -54 +.....................*** +...................* +..............**.*.*...* +..............*...........** +...............*.....*.*.*.* +. +.......***.....*.*.*.*.....* +.....*........................** +**.*.*...*...*.*...*.....*.*.*.* +* +.*.....*.*.*.*.....*.*.*.*.....* +..................................** +.*.*.*.*.....*...*.*...*.....*.*.*.* +.** +.....*.....*.*.*.*.....*.*.*.*.....* +......................................** +.....*.*.*.*.....*...*.*...*.....*.*.*.* +.....** +.........*.....*.*.*.*.....*.*.*.*.....* +........................................* +.........*.*.*.*.....*...*.*...*...*.*.** +.........**........................* +.............*.....*.*.*.*.....*** +. +.............*.*.*.*.....* +.............**...........* +.................*...*.*.** +.....................* +.................*** +#P -59 -19 +................** +............**...* +............*.*.* +. +..............*.*.*...** +.......................* +.........**.*.*...*.*.* +.........* +..........*...*.....*.*.*...** +.............................* +..........*.*.*.*.*.*...*.*.* +......** +......*.*.*.....*...*.....*.*.*...** +...................................* +........*.*.*...*.*.*.*.*.*...*.*.* +. +...**.*.*...*.*.*.....*...*.....*.*.* +...*...............................** +....*...*.....*.*.*...*.*.*.*.*.* +. +....*.*.*.*.*.*...*.*.*.....*...* +**...............................* +*.*.*.....*...*.....*.*.*...*.*.** +. +..*.*.*...*.*.*.*.*.*...*.*.* +.* +.**...*.*.*.....*...*.....*.*.* +.............................** +........*.*.*...*.*.*.*.*.* +.......* +.......**...*.*.*.....*...* +...........................* +..............*.*.*...*.*.** +.............* +.............**...*.*.* +. +....................*.*.* +...................*...** +...................** +#P -14 -18 +................** +............**.*.* +............* +.............*...*...** +......................* +.............*.*.*.*.* +.........**...............** +.........*.*.*.....*.*.*.*.* +. +...........*.*.*.*.*...*...*...** +................................* +......**.*.*...*...*...*.*.*.*.* +......*.............................** +.......*...*...*.*.*.*.*.....*.*.*.*.* +. +.......*.*.*.*.*.....*.*.*.*.*...*...* +...**.................................* +...*.*.*.....*.*.*.*.*...*...*...*.*.** +. +.....*.*.*.*.*...*...*...*.*.*.*.* +. +**.*.*...*...*...*.*.*.*.*.....*.*.* +*.................................** +.*...*...*.*.*.*.*.....*.*.*.*.* +. +.*.*.*.*.*.....*.*.*.*.*...*...* +.**.............................* +.......*.*.*.*.*...*...*...*.*.** +......* +......**...*...*...*.*.*.*.* +. +...........*.*.*.*.*.....*.*.* +...........**...............** +.................*.*.*.*.* +................* +................**...*...* +..........................* +.....................*.*.** +.....................** +#P 32 -18 +.........................* +.......................*.* +...........................* +.....................** +....................*......** +. +...............**.*.*...*.*....* +...............*........*....*.* +................*...*.*..........* +...........................** +...........**.*.*...*.....*......** +...........* +............*...*.*.*.*.*.*...*.*....* +..............................*....*.* +.......**.*.*...*.....*...*.*..........* +.......*.........................** +........*...*.*.*.*.*.*...*.....*......** +. +......*.*...*.....*...*.*.*.*.*.*...*.* +....*...............................* +..*.*...*.*.*.*.*.*...*.....*...*.* +. +**......*.....*...*.*.*.*.*.*...* +......**.........................* +.*..........*.*...*.....*...*.*.** +...*.*....* +...*....*.*...*.*.*.*.*.*...* +.............................* +......**......*.....*...*.*.** +............** +.......*..........*.*...* +.........*.*....*........* +.........*....*.*...*.*.** +. +............**......* +..................** +.............* +...............*.* +...............* +#P -114 18 +.....................** +....................*..* +....................*.** +..............**..**.*..** +..............*..*...*.*..* +...............*...*.....* +...........**......*....* +...........*..*.*..........** +............*.....*.*.*.*..* +........**......*........*.*.* +........*..*.*......*...**..*.* +.........*.....*.*........*.*..* +.....**......*.....*.*..**.*.*.* +.....*..*.*......*.....*...*.*.** +......*.....*.*......*...*...*..* +..**......*.....*.*......*.....*....** +..*..*.*......*.....*.*.......*....*..* +...*.....*.*......*.....*.*........*.** +.......*.....*.*......*.....*.*..**.*..** +.**........*.....*.*......*.....*...*.*..* +*...*.*.*......*.....*.*......*...*.....* +**.*...*..*.*......*.....*.*......*....* +.*.*.*.**.....*.*......*.....*.*..........** +.*..*.*.....*.....*.*......*.....*.*.*.*..* +..*.*..**.......*.....*.*......*........*.*.* +...*.*.*.*.*.*......*.....*.*......*...**..*.* +.....*.........*.*......*.....*.*........*.*..* +....**...*...*.....*.*......*.....*.*..**.*.*.* +.................*.....*.*......*.....*...*.*.** +.......**...*.*......*.....*.*......*...*...*..* +......*...*..*..*.*......*.....*.*......*.....* +.......**..*.**.....*.*......*.....*.*.......* +.........**.*.....*.....*.*......*.....*.* +.........*..*.........*.....*.*......*.....*.* +..........**....**........*.....*.*......*..** +...............*...*.*.*......*.....*.* +...............**.*...*..*.*......*.....*.* +................*.*.*.**.....*.*......*..** +................*..*.*.....*.....*.* +.................*.*..**.......*.....*.* +..................*.*.*.*.*.*......*..** +....................*.........*.* +...................**...*...*.....*.* +................................*..** +......................**...*.* +.....................*...*..*..*.* +......................**..*.**..** +........................**.* +........................*..* +.........................** +#P -59 36 +............**..** +............*..*.* +.............* +.........**.....*..** +.........*..*.*...*.* +..........*.....* +......**.....*.....*..** +......*..*.*...*.*...*.* +.......*.....*.....* +...**.....*.....*.....*..** +...*..*.*...*.*...*.*...*.* +....*.....*.....*.....* +**.....*.....*.....*.....*..** +*..*.*...*.*...*.*...*.*...*.* +.*.....*.....*.....*.....* +....*.....*.....*.....*.....* +*.*...*.*...*.*...*.*...*.*..* +**..*.....*.....*.....*.....** +.......*.....*.....*.....* +...*.*...*.*...*.*...*.*..* +...**..*.....*.....*.....** +..........*.....*.....* +......*.*...*.*...*.*..* +......**..*.....*.....** +.............*.....* +.........*.*...*.*..* +.........**..*.....** +................* +............*.*..* +............**..** +#P -20 31 +....**..**..**..**..**..**..**..** +....*..*.*..*..*.*..*..*.*..*..*.* +.....*.......*.......*.......* +........*.......*.......*.......* +**..*.*.....*.*.....*.*.....*.*.....** +*.*.....*.*.....*.*.....*.*.....*.*..* +....*.......*.......*.......*.......* +.*.......*.......*.......*.......* +*..*.*.....*.*.....*.*.....*.*.....*.* +**.....*.*.....*.*.....*.*.....*.*..** +.....*.......*.......*.......* +........*.......*.......*.......* +**..*.*.....*.*.....*.*.....*.*.....** +*.*.....*.*.....*.*.....*.*.....*.*..* +....*.......*.......*.......*.......* +.*.......*.......*.......*.......* +*..*.*.....*.*.....*.*.....*.*.....*.* +**.....*.*.....*.*.....*.*.....*.*..** +.....*.......*.......*.......* +........*.......*.......*.......* +**..*.*.....*.*.....*.*.....*.*.....** +*.*.....*.*.....*.*.....*.*.....*.*..* +....*.......*.......*.......*.......* +.*.......*.......*.......*.......* +*..*.*.....*.*.....*.*.....*.*.....*.* +**.....*.*.....*.*.....*.*.....*.*..** +.....*.......*.......*.......* +........*.......*.......*.......* +**..*.*.....*.*.....*.*.....*.*.....** +*.*.....*.*.....*.*.....*.*.....*.*..* +....*.......*.......*.......*.......* +.*.......*.......*.......*.......* +*..*.*.....*.*.....*.*.....*.*.....*.* +**.....*.*.....*.*.....*.*.....*.*..** +.....*.......*.......*.......* +........*.......*.......*.......* +....*.*..*..*.*..*..*.*..*..*.*..* +....**..**..**..**..**..**..**..** +#P 30 31 +..........**........** +..**.**....*...*.....*...* +..**.*.*...*.***.....*.***..........**..** +.....*......*.........*............*.*..** +.....*.**.....****......****.......* +..**.*.......**..*.....**..*.....**.****** +..*..***....*...*.....*...*.....*...*....* +...**.......*.........*.........*...*.*.* +.....*..*.*...*.*.*.*...*.*.*.*...*...* +.....* +......**..*.*.*.*...*.*.*.*...*.*.*.......* +........................................*** +........*.*.*...*.*.*.*...*.*.*.*..**..* +.....................................*..* +........*...*.*.*.*...*.*.*.*...*.*..**.* +....**................................*.** +....*.*.*.*.*.*...*.*.*.*...*.*.*.*.*.* +.**.*................................** +..*.**..*.*...*.*.*.*...*.*.*.*...* +..*..* +...*..**..*.*.*.*...*.*.*.*...*.*.*.......* +***.....................................*** +*.......*.*.*...*.*.*.*...*.*.*.*..**..* +.....................................*..* +........*...*.*.*.*...*.*.*.*...*.*..**.* +....**................................*.** +....*.*.*.*.*.*...*.*.*.*...*.*.*.*.*.* +.**.*................................** +..*.**..*.*...*.*.*.*...*.*.*.*...* +..*..* +...*..**..*.*.*.*...*.*.*.*...*.*.* +*** +*.......*.*.*...*.*.*.*...*.*.*.*..** +.....................................* +....*...*...*.*.*.*...*.*.*.*...*.*..* +..*.*.*...*.........*.........*.......** +.*....*...*.....*...*.....*...*....***..* +.******.**.....*..**.....*..**.......*.** +.......*.......****......****.....**.* +.**..*.*............*.........*......* +.**..**..........***.*.....***.*...*.*.** +.................*...*.....*...*....**.** +.....................**........** diff --git a/programs/demos/life2/lif/LOOP.lif b/programs/demos/life2/lif/LOOP.lif new file mode 100644 index 000000000..2521a0d43 --- /dev/null +++ b/programs/demos/life2/lif/LOOP.lif @@ -0,0 +1,251 @@ +#Life 1.05 +#D Two-glider loop between retreating Corderships +#D by David Bell. See also: HOTEL, SAWTOOT6, CORDER, +#D and the rest of the Cordership series. +#N +#P 8 -75 +.* +.* +*.* +.* +.* +#P -1 -74 +..*** +.*..** +*.....* +......* +.**..* +...** +#P 23 -62 +..* +**.** +..* +#P 21 -57 +..** +.*..* +*...** +*....* +.*...* +.*..* +...* +#P 34 -49 +.* +.* +*.* +.* +.* +#P 25 -48 +..*** +.*..** +*.....* +......* +.**..* +...** +#P 29 -33 +..** +***.* +*...* +*.** +..* +#P 18 -34 +....* +..** +.** +* +.***** +..* +#P 14 -49 +..** +..** +..* +.** +.* +.* +**.* +..* +#P 10 -45 +** +#P 12 -55 +...* +...* +...* +*.***.* +*****.* +*.* +#P -22 -44 +...*** +......* +.**....* +....*...* +*....*..* +*...*...* +***.*.** +....* +**** +** +#P -15 -36 +....*** +...*...* +...*....* +.....*...* +..***.*..* +.*.......* +.*.*...* +**.*...* +**.*** +#P 4 -18 +...*** +......* +.**....* +....*...* +*....*..* +*...*...* +***.*.** +....* +**** +** +#P -11 -69 +** +** +#P -19 -61 +** +** +#P -27 -53 +** +** +#P 27 -23 +** +** +#P 19 -15 +** +** +#P 11 -7 +** +** +#P -3 -4 +* +*.* +** +#P 1 1 +.** +*.* +..* +#P -36 44 +.* +.* +*.* +.* +.* +#P -31 42 +..** +.*..** +* +*.....* +.**..* +..*** +#P -27 59 +..* +**.** +..* +#P -26 50 +..* +.*..* +*...* +*....* +**...* +.*..* +..** +#P -10 70 +.* +.* +*.* +.* +.* +#P -5 68 +..** +.*..** +* +*.....* +.**..* +..*** +#P -33 28 +..* +.**.* +*...* +*.*** +.** +#P -23 28 +...* +***** +.....* +...** +..** +.* +#P -18 49 +....*.* +*.***** +*.***.* +...* +...* +...* +#P -17 41 +.* +*.** +..* +..* +.** +.* +** +** +#P -11 44 +** +#P -12 8 +.......** +.....**** +....* +.**.*.*** +*...*...* +*..*....* +*...* +.*....** +..* +...*** +#P 6 27 +....***.** +..*...*.** +..*...*.* +*.......* +*..*.*** +*...* +.*....* +..*...* +...*** +#P 14 34 +.......** +.....**** +....* +.**.*.*** +*...*...* +*..*....* +*...* +.*....** +..* +...*** +#P -12 5 +** +** +#P -20 13 +** +** +#P -28 21 +** +** +#P 26 51 +** +** +#P 18 59 +** +** +#P 10 67 +** +** diff --git a/programs/demos/life2/lif/LWSSGUN.lif b/programs/demos/life2/lif/LWSSGUN.lif new file mode 100644 index 000000000..ee40ac75a --- /dev/null +++ b/programs/demos/life2/lif/LWSSGUN.lif @@ -0,0 +1,48 @@ +#Life 1.05 +#D Lightweight Spaceship gun +#D by Dieter Leithner, Oct 1993 +#N +#P -22 -13 +** +** +. +. +. +. +. +. +** +** +#P -5 -21 +* +** +.** +** +. +. +. +** +.** +** +* +#P 8 -17 +*** +* +* +.* +. +.* +* +* +*** +#P 25 -17 +** +** +#P -23 12 +**.*...*.** +*..*...*..* +.***...*** +#P -26 19 +**.............** +**..**.....**..** +....**.....** diff --git a/programs/demos/life2/lif/LWSSRAK2.lif b/programs/demos/life2/lif/LWSSRAK2.lif new file mode 100644 index 000000000..b290629ff --- /dev/null +++ b/programs/demos/life2/lif/LWSSRAK2.lif @@ -0,0 +1,46 @@ +#Life 1.05 +#D p32 orthogonal lwss rake. +#D Based on Tim Coe's rake. +#N +#P -4 -8 +.**** +*...* +....* +...* +#P -8 -4 +....** +. +*.**...** +***.***.** +..******* +....**** +#P -11 5 +.****** +*.....* +......* +.....* +#P -16 -11 +...** +***.** +***** +.*** +#P -29 -14 +.****** +*.....* +......* +.....* +#P -37 -10 +.***** +*....* +.....* +....* +#P -22 5 +...* +....* +*...* +.**** +#P -23 11 +..*** +.***** +****.** +....** diff --git a/programs/demos/life2/lif/LWSSRAKE.lif b/programs/demos/life2/lif/LWSSRAKE.lif new file mode 100644 index 000000000..bd9d47bbd --- /dev/null +++ b/programs/demos/life2/lif/LWSSRAKE.lif @@ -0,0 +1,63 @@ +#Life 1.05 +#D A period 32 LWSS backrake. +#D By Tim Coe, April 1996. +#N +#P 11 -14 +.****** +*.....* +*.....* +.*...* +...* +...** +..**** +..**.** +....** +#P 1 -21 +....* +.....* +*....* +.***** +#P 3 -5 +.***** +*....* +.....* +....* +#P 21 6 +......** +*.****.** +*..***** +*...*** +#P 24 12 +.**** +*...* +....* +...* +#P 17 -1 +.****** +*.....* +......* +.....* +#P 12 15 +...** +***.** +***** +.*** +#P 6 8 +.** +*.* +..* +#P -1 18 +.****** +*.....* +......* +.....* +#P -9 14 +.***** +*....* +.....* +....* +#P -30 5 +.*** +***** +***.** +...** diff --git a/programs/demos/life2/lif/MAKEBILS.lif b/programs/demos/life2/lif/MAKEBILS.lif new file mode 100644 index 000000000..05c32368c --- /dev/null +++ b/programs/demos/life2/lif/MAKEBILS.lif @@ -0,0 +1,391 @@ +#Life 1.05 +#D Glider syntheses for 4 billiard tables +#D A collection of 4 glider syntheses, found by David Buckingham, +#D of billiard table oscillators: +#D 12 gliders -> p8 Hertz oscillator +#D 14 gliders -> p3 MIT oscillator +#D 10 gliders -> p2 scrubber +#D 6 gliders -> p3 (unnamed?) +#D (Collection assembled by Dean Hickerson, 1/25/93. The syntheses +#D are much older.) +#N +#P -31 -32 +..* +*.* +.** +#P -22 -36 +* +*.* +** +#P -28 -27 +.* +..* +*** +#P -12 -27 +*.* +** +.* +#P -18 -20 +.* +** +*.* +#P -8 -16 +.* +** +*.* +#P -28 -17 +.** +*.* +..* +#P -35 -14 +** +.** +* +#P -27 -12 +** +.** +* +#P -21 -13 +** +.** +* +#P -27 -4 +.** +*.* +..* +#P -16 -8 +** +*.* +* +#P -38 -40 +*..*..*..*..*..*..*..*..*..*..*..* +#P -38 -37 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P 28 -36 +..* +** +.** +#P 10 -28 +.* +..* +*** +#P 2 -24 +.* +..* +*** +#P 24 -25 +* +*.* +** +#P 31 -23 +* +*.* +** +#P 6 -11 +* +.** +** +#P 18 -13 +*.* +** +.* +#P 12 -8 +*.* +.** +.* +#P 18 -6 +..* +** +.** +#P 3 -2 +** +.** +* +#P 13 -2 +** +.** +* +#P 21 -2 +..* +** +.** +#P 20 2 +.* +** +*.* +#P 30 2 +.** +** +..* +#P -2 -40 +*..*..*..*..*..*..*..*..*..*..*..*..*..* +#P -2 -37 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P 37 -37 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P 25 8 +*..*..*..*..* +#P -21 6 +* +*.* +** +#P -26 10 +.* +..* +*** +#P -28 14 +.* +.** +*.* +#P -23 17 +*.* +.** +.* +#P -27 21 +.* +.** +*.* +#P -34 19 +*** +..* +.* +#P -8 19 +.* +* +*** +#P -14 24 +*.* +** +.* +#P -16 28 +*** +* +.* +#P -21 32 +.** +*.* +..* +#P -38 2 +*..*..*..*..*..*..*..*..*..*..*..*..* +#P -38 5 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P -38 38 +*..*..*..*..*..*..*..*..*..*..*..*..* +#P 5 11 +*.* +.** +.* +#P 12 15 +.* +* +*** +#P 17 15 +..* +** +.** +#P 9 18 +* +.** +** +#P 1 23 +** +.** +* +#P 13 27 +.* +** +*.* +#P -2 5 +* +. +. +*..*..*..*..*..*..*..*..* +#P -2 11 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P 22 11 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P -2 32 +*..*..*..*..*..*..*..*..* +. +. +* diff --git a/programs/demos/life2/lif/MAKEFISH.lif b/programs/demos/life2/lif/MAKEFISH.lif new file mode 100644 index 000000000..3d7375b11 --- /dev/null +++ b/programs/demos/life2/lif/MAKEFISH.lif @@ -0,0 +1,106 @@ +#Life 1.05 +#D Glider syntheses for LWSS, MWSS, HWSS, and the Schick Engine. +#D +#D Notice that if you delete the upper-left glider in the HWSS +#D synthesis on the right, the result will be an LWSS instead. +#N +#P -34 -17 +*.* +.** +.* +#P -28 -21 +*.* +** +.* +#P -30 -12 +.** +*.* +..* +#P -27 -2 +..* +*.* +.** +#P -30 5 +.** +*.* +..* +#P -17 -2 +*.* +** +.* +#P -20 13 +.* +..* +*** +#P -19 18 +.** +** +..* +#P -14 16 +.** +** +..* +#P -1 -15 +..* +*.* +.** +#P 29 10 +.** +** +..* +#P 17 -4 +* +*.* +** +#P 12 1 +.** +*.* +..* +#P 1 13 +*** +..* +.* +#P -45 -7 +..* +** +.** +#P -48 8 +.** +** +..* +#P -49 -6 +* +*.* +** +#P -53 -4 +.* +..* +*** +#P -51 1 +..* +** +.** +#P -53 5 +.* +** +*.* +#P -58 6 +.* +** +*.* +#P -60 11 +.** +*.* +..* +#P -67 8 +*** +..* +.* +#P -61 -3 +*.* +.** +.* +#P -59 -10 +..* +*.* +.** diff --git a/programs/demos/life2/lif/MAKEFUSE.lif b/programs/demos/life2/lif/MAKEFUSE.lif new file mode 100644 index 000000000..a3fa106bf --- /dev/null +++ b/programs/demos/life2/lif/MAKEFUSE.lif @@ -0,0 +1,100 @@ +#Life 1.05 +#D Glider synthesis for a fuse +#D This can be ignited easily by another glider. +#N +#P -27 -20 +* +.** +** +#P -28 -2 +*** +..* +.* +#P 8 34 +.** +*.* +..* +#P 26 33 +.* +** +*.* +#P -10 -20 +*.* +** +.* +#P -14 -16 +*.* +** +.* +#P -6 -16 +..* +** +.** +#P -14 -12 +*** +..* +.* +#P -2 -12 +*.* +** +.* +#P -6 -8 +*.* +** +.* +#P 2 -8 +..* +** +.** +#P -6 -4 +*** +..* +.* +#P 6 -4 +*.* +** +.* +#P 2 0 +*.* +** +.* +#P 10 0 +..* +** +.** +#P 2 4 +*** +..* +.* +#P 14 4 +*.* +** +.* +#P 10 8 +*.* +** +.* +#P 18 8 +..* +** +.** +#P 10 12 +*** +..* +.* +#P 22 12 +*.* +** +.* +#P 18 16 +*.* +** +.* +#P 26 16 +..* +** +.** +#P 18 20 +*** +..* +.* diff --git a/programs/demos/life2/lif/MAKEGUN.lif b/programs/demos/life2/lif/MAKEGUN.lif new file mode 100644 index 000000000..d99c8c08c --- /dev/null +++ b/programs/demos/life2/lif/MAKEGUN.lif @@ -0,0 +1,36 @@ +#Life 1.05 +#D Glider synthesis for a glider gun +#D with only 8 gliders +#N +#P -22 -4 +*.* +.** +.* +#P -6 -7 +* +*.* +** +#P -9 -4 +* +.** +** +#P -12 1 +** +.** +* +#P 13 -6 +* +*.* +** +#P 10 1 +** +*.* +* +#P 4 4 +.* +.** +*.* +#P 22 2 +*** +* +.* diff --git a/programs/demos/life2/lif/MAKEHSLR.lif b/programs/demos/life2/lif/MAKEHSLR.lif new file mode 100644 index 000000000..e804fc323 --- /dev/null +++ b/programs/demos/life2/lif/MAKEHSLR.lif @@ -0,0 +1,503 @@ +#Life 1.05 +#D Glider synthesis for a hustler +#D 123 gliders crash to form the period 3 oscillator "hustler". First, +#D 14 gliders are used to form the p8 Hertz oscillator, with non-standard +#D induction coils. The induction coils are then repeatedly modified by +#D the next 99 gliders. Finally, 10 gliders are used to reshape the +#D billiard table and induction coils, creating the hustler. +#D The steps of the construction were figured out by David Buckingham. +#D Dean Hickerson put them together, about 3/12/91, from notes by +#D Buckingham dated 1/30/90. +#N +#P 8 2 +.* +** +*.* +#P -8 -11 +.* +..* +*** +#P -8 5 +.** +*.* +..* +#P -1 9 +** +.** +* +#P -7 10 +** +.** +* +#P 14 -11 +*.* +** +.* +#P 10 14 +** +*.* +* +#P 18 6 +.* +** +*.* +#P -11 -16 +..* +*.* +.** +#P -15 8 +** +.** +* +#P -7 18 +.** +*.* +..* +#P 15 17 +*** +* +.* +#P 23 -11 +* +*.* +** +#P 4 -20 +* +*.* +** +#P -16 -19 +.* +..* +*** +#P -23 -11 +..* +*.* +.** +#P -31 15 +** +.** +* +#P 13 31 +.** +** +..* +#P 21 30 +*** +* +.* +#P 27 15 +.** +** +..* +#P 33 -23 +* +*.* +** +#P -22 -41 +.* +..* +*** +#P -32 31 +.* +.** +*.* +#P 22 35 +** +*.* +* +#P 32 14 +*** +* +.* +#P 40 -24 +* +*.* +** +#P -30 -39 +*.* +.** +.* +#P -35 36 +** +.** +* +#P 54 50 +** +*.* +* +#P 37 -41 +* +*.* +** +#P -30 -45 +* +.** +** +#P 51 55 +** +*.* +* +#P 51 60 +** +*.* +* +#P 51 71 +.** +** +..* +#P 59 70 +*** +* +.* +#P 60 75 +** +*.* +* +#P 69 80 +*** +* +.* +#P 72 73 +.* +** +*.* +#P 80 66 +.* +** +*.* +#P 92 78 +.** +** +..* +#P 93 87 +.** +** +..* +#P 107 123 +** +*.* +* +#P 117 133 +*** +* +.* +#P 129 123 +** +*.* +* +#P 137 118 +.* +** +*.* +#P 140 122 +.** +** +..* +#P 120 142 +.** +** +..* +#P 141 145 +** +*.* +* +#P 152 137 +** +*.* +* +#P 144 155 +** +*.* +* +#P 159 167 +.** +** +..* +#P 165 165 +** +*.* +* +#P 166 151 +.** +** +..* +#P -35 -50 +* +.** +** +#P -52 -40 +.* +..* +*** +#P -65 -51 +..* +*.* +.** +#P -59 -58 +.* +..* +*** +#P -85 -83 +* +.** +** +#P -82 -88 +* +.** +** +#P -82 -93 +* +.** +** +#P -83 -104 +.* +..* +*** +#P -91 -102 +*.* +.** +.* +#P -91 -108 +* +.** +** +#P -101 -112 +..* +*.* +.** +#P -103 -106 +* +.** +** +#P -121 -114 +* +.** +** +#P -126 -121 +..* +*.* +.** +#P -134 -116 +..* +*.* +.** +#P -114 -131 +*.* +.** +.* +#P -118 -134 +* +.** +** +#P -137 -120 +.* +..* +*** +#P -128 -150 +..* +*.* +.** +#P -148 -135 +* +.** +** +#P -148 -153 +*.* +.** +.* +#P -151 -163 +*.* +.** +.* +#P -161 -170 +* +.** +** +#P -167 -168 +..* +*.* +.** +#P -168 -154 +* +.** +** +#P 40 -46 +.* +* +*** +#P 50 -46 +..* +** +.** +#P 57 -45 +*.* +** +.* +#P 56 -51 +*.* +** +.* +#P 61 -51 +* +*.* +** +#P 74 -62 +..* +** +.** +#P 82 -83 +..* +** +.** +#P 77 -90 +*.* +** +.* +#P 102 -104 +* +*.* +** +#P 105 -109 +.* +* +*** +#P 101 -117 +..* +** +.** +#P 112 -126 +.* +* +*** +#P 125 -120 +*.* +** +.* +#P 128 -125 +..* +** +.** +#P 132 -117 +* +*.* +** +#P 133 -128 +* +*.* +** +#P 127 -137 +..* +** +.** +#P 142 -148 +.* +* +*** +#P 157 -144 +.* +* +*** +#P 141 -155 +..* +** +.** +#P 149 -155 +* +*.* +** +#P 154 -166 +*.* +** +.* +#P 169 -176 +.* +* +*** +#P -58 44 +.* +.** +*.* +#P -55 50 +.** +*.* +..* +#P -49 58 +*** +..* +.* +#P -74 71 +.* +.** +*.* +#P -77 76 +** +.** +* +#P -75 84 +** +.** +* +#P -88 78 +.** +*.* +..* +#P -89 72 +.** +*.* +..* +#P -92 78 +** +.** +* +#P -106 88 +.* +.** +*.* +#P -122 112 +.* +.** +*.* +#P -125 117 +** +.** +* +#P -129 109 +.** +*.* +..* +#P -129 120 +** +.** +* +#P -119 128 +** +.** +* +#P -126 130 +*** +..* +.* +#P -139 139 +.* +.** +*.* +#P -138 147 +*** +..* +.* +#P -145 147 +** +.** +* +#P -159 141 +*** +..* +.* +#P -151 158 +.** +*.* +..* +#P -171 173 +*** +..* +.* diff --git a/programs/demos/life2/lif/MAKEOSCS.lif b/programs/demos/life2/lif/MAKEOSCS.lif new file mode 100644 index 000000000..aee004db0 --- /dev/null +++ b/programs/demos/life2/lif/MAKEOSCS.lif @@ -0,0 +1,761 @@ +#Life 1.05 +#D Glider syntheses for ten oscillators +#D +#D Pentadecathlon, tumbler, mold, figure 8, unix, mazing, +#D A for All, (unnamed p2), octagon II, Achim's p4. +#N +#P -85 -31 +..* +*.* +.** +#P -83 -27 +*** +* +.* +#P -87 -24 +*.* +.** +.* +#P -70 -24 +** +.** +* +#P -66 -28 +** +.** +* +#P -62 -29 +*.* +.** +.* +#P -61 -23 +.** +*.* +..* +#P -53 -23 +** +*.* +* +#P -52 -29 +*.* +** +.* +#P -48 -28 +.** +** +..* +#P -44 -24 +.** +** +..* +#P -31 -34 +.* +..* +*** +#P -26 -35 +* +*.* +** +#P -28 -30 +*.* +** +.* +#P -24 -26 +* +*.* +** +#P -26 -19 +.* +** +*.* +#P -10 -33 +.* +..* +*** +#P -12 -29 +.* +.** +*.* +#P -5 -19 +*** +* +.* +#P 0 -24 +** +*.* +* +#P 10 -35 +.* +..* +*** +#P 19 -32 +* +*.* +** +#P 24 -27 +.* +* +*** +#P 15 -23 +*.* +.** +.* +#P 10 -19 +.* +.** +*.* +#P 15 -19 +** +*.* +* +#P 27 -18 +** +*.* +* +#P 42 -34 +* +.** +** +#P 42 -24 +*** +..* +.* +#P 37 -18 +*** +..* +.* +#P 44 -20 +*** +* +.* +#P 52 -24 +.* +** +*.* +#P -76 -6 +..* +*.* +.** +#P -56 -4 +.* +* +*** +#P -54 5 +*.* +.** +.* +#P -59 6 +.* +.** +*.* +#P -53 9 +*** +..* +.* +#P -79 10 +*** +..* +.* +#P -74 9 +*** +* +.* +#P -65 10 +*.* +.** +.* +#P -65 14 +** +*.* +* +#P -71 19 +*** +* +.* +#P -76 25 +.** +*.* +..* +#P -87 19 +.* +.** +*.* +#P -56 23 +*** +* +.* +#P -31 -5 +.* +..* +*** +#P -40 4 +..* +*.* +.** +#P -32 10 +* +.** +** +#P -31 23 +.** +*.* +..* +#P -15 1 +* +*.* +** +#P -14 14 +.** +** +..* +#P -6 20 +** +*.* +* +#P -15 29 +*** +* +.* +#P 19 -8 +..* +*.* +.** +#P 24 -4 +*** +* +.* +#P 9 2 +.* +..* +*** +#P 13 7 +** +*.* +* +#P 51 19 +*** +* +.* +#P 36 34 +** +*.* +* +#P 87 -34 +* +*.* +** +#P 61 -17 +* +.** +** +#P 62 -12 +.* +..* +*** +#P 67 -8 +.* +* +*** +#P 74 -17 +.* +* +*** +#P 67 6 +*** +* +.* +#P 62 10 +*** +..* +.* +#P 61 15 +** +.** +* +#P 74 15 +*** +* +.* +#P 87 32 +** +*.* +* +#P -93 -39 +*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P -75 -39 +*..*..*..*..*..*..*..*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P -36 -39 +*..*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P -15 -39 +*..*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..* +#P 6 -39 +*..*..*..*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..*..*..* +#P 33 -39 +*..*..*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..*..* +#P 57 -39 +*..*..*..*..*..*..*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P 93 -39 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P 93 3 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +#P 57 3 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..*..*..*..*..*..* +#P 3 -9 +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..* +#P -45 -12 +*..*..*..*..*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..* +#P -93 -12 +*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +* +. +. +*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..* diff --git a/programs/demos/life2/lif/MAKEPOLE.lif b/programs/demos/life2/lif/MAKEPOLE.lif new file mode 100644 index 000000000..6d4d8f2d4 --- /dev/null +++ b/programs/demos/life2/lif/MAKEPOLE.lif @@ -0,0 +1,192 @@ +#Life 1.05 +#D Glider synthesis for a barberpole +#D See also POLES. +#N +#P 7 -11 +.* +** +*.* +#P 3 -19 +.* +..* +*** +#P -2 -11 +.** +*.* +..* +#P -8 -23 +*.* +.** +.* +#P -10 1 +** +.** +* +#P -12 14 +*** +..* +.* +#P -17 18 +*** +..* +.* +#P -22 15 +.** +*.* +..* +#P -23 -31 +..* +*.* +.** +#P 31 -25 +.* +* +*** +#P 28 16 +** +*.* +* +#P -22 23 +.* +.** +*.* +#P -27 27 +.* +.** +*.* +#P -31 25 +** +.** +* +#P -32 -39 +* +.** +** +#P 39 -32 +*.* +** +.* +#P 35 26 +.** +** +..* +#P -32 33 +.** +*.* +..* +#P -37 37 +.** +*.* +..* +#P -41 35 +*** +..* +.* +#P -42 -47 +.* +..* +*** +#P 47 -40 +* +*.* +** +#P 43 36 +*** +* +.* +#P -41 43 +** +.** +* +#P -46 47 +** +.** +* +#P -51 44 +.* +.** +*.* +#P -52 -54 +*.* +.** +.* +#P 54 -48 +..* +** +.** +#P 51 45 +.* +** +*.* +#P -51 53 +*** +..* +.* +#P -56 57 +*** +..* +.* +#P -61 54 +.** +*.* +..* +#P -62 -62 +..* +*.* +.** +#P 62 -56 +.* +* +*** +#P 59 55 +** +*.* +* +#P -61 62 +.* +.** +*.* +#P -66 66 +.* +.** +*.* +#P -70 64 +** +.** +* +#P -71 -70 +* +.** +** +#P 70 -63 +*.* +** +.* +#P 66 65 +.** +** +..* +#P -71 72 +.** +*.* +..* +#P -76 76 +.** +*.* +..* +#P -80 74 +*** +..* +.* +#P -81 -78 +.* +..* +*** +#P 78 -71 +* +*.* +** +#P 74 75 +*** +* +.* diff --git a/programs/demos/life2/lif/MAX.lif b/programs/demos/life2/lif/MAX.lif new file mode 100644 index 000000000..0b25f94dd --- /dev/null +++ b/programs/demos/life2/lif/MAX.lif @@ -0,0 +1,62 @@ +#Life 1.05 +#D MAX, the smallest known example of a "spacefiller" +#D +#D This is the fastest-growing known pattern in Conway's Game of Life +#D (possibly the fastest possible). It fills space to a density of 1/2, +#D conjectured to be the maximum density, and does it at a speed of c/2 +#D in each of the 4 directions, which has been proven to be the maximum +#D possible speed. +#D +#D Population is [(t+19)^2+463]/4 for t divisible by 4; +#D . [(t+19)^2+487]/4 for t even, not div. by 4; +#D . [(t+18)^2+639]/4 for t odd. +#D +#D Original construction, top/bottom stretchers by Hartmut Holzwart; +#D Size optimization, left/right stretchers by David Bell; +#D Original idea, middle part, l/r stretcher connection by Al Hensel. +#D This spacefiller by David Bell, September 1993. +#N +#P -14 -21 +.....*.* +....*..* +...** +..* +.**** +*....* +*..* +*..* +.*.........***...*** +..****.*..*..*...*..* +...*...*.....*...* +....*........*...* +....*.*......*...* +. +...***.....***...*** +...**.......*.....* +...***......******* +...........*.......* +....*.*...*********** +...*..*..*............** +...*.....************...* +...*...*.............*...* +....*...************.....* +.....**............*..*..* +........***********...*.* +.........*.......* +..........*******......*** +..........*.....*.......** +.........***...***.....*** +. +...........*...*......*.* +...........*...*........* +...........*...*.....*...* +........*..*...*..*..*.**** +.........***...***.........* +.........................*..* +.........................*..* +.......................*....* +........................**** +..........................* +........................** +.....................*..* +.....................*.* diff --git a/programs/demos/life2/lif/MAX2.lif b/programs/demos/life2/lif/MAX2.lif new file mode 100644 index 000000000..a002b7c60 --- /dev/null +++ b/programs/demos/life2/lif/MAX2.lif @@ -0,0 +1,35 @@ +#Life 1.05 +#D Small spacefiller drawn by spaceships. +#D A 187 point rotationally symmetric spacefiller with +#D flipper stretchers in place of the normally period +#D 2 stretchers. The pattern on the interior of this +#D spacefiller is forced by the stabilization requirements. +#D This spacefiller also exists in a vertically reflected +#D symmetric form that also has 187 points. By Tim Coe. +#N +#P -17 -12 +.............***...*** +............*..*...*..* +...............*...* +...............*...* +.*.............*...* +*............................****** +*.....*......***...***......*.....* +******........*..*..*.............* +........*.....*.***.**.....*.....* +........*....*............*.* +....****....********.**.** +...*****........*..*...*.*....** +..**.***...****..*..****...***.** +...**....*.*...*..*........***** +.........**.**.********....**** +......*.*............*....* +.*.....*.....**.***.*.....* +*.............*..*..*........****** +*.....*......***...***......*.....* +******............................* +...............*...*.............* +...............*...* +...............*...* +............*..*...*..* +.............***...*** diff --git a/programs/demos/life2/lif/MAX3.lif b/programs/demos/life2/lif/MAX3.lif new file mode 100644 index 000000000..ff6992b0b --- /dev/null +++ b/programs/demos/life2/lif/MAX3.lif @@ -0,0 +1,33 @@ +#Life 1.05 +#D A 187 point spacefiller that fits in a 27 by 27 box. +#D Some cheating has taken place to squish it into this +#D area. By Tim Coe. +#N +#P -13 -13 +...........***...*** +........*..*..*.*..* +.....****..*.......* +.....***...*.......* +...*...*....*.*.*.* +...***......*.*.*.* +..*....*.....*...* +.******.....******* +** +.*...**....**..*..** +...**..*..*.*.*.*.*..** +...*.*....**.*.*..**...* +..***...*...........*...* +..*.....***********.....* +..*...*...........*...*** +...*...**..*.*.**....*.* +....**..*.*.*.*.*..*..** +.......**..*..**....**...* +.........................** +........*******.....****** +.........*...*.....*....* +........*.*.*.*......*** +........*.*.*.*....*...* +.......*.......*...*** +.......*.......*..**** +.......*..*.*..*..* +.......***...*** diff --git a/programs/demos/life2/lif/MEMORY.lif b/programs/demos/life2/lif/MEMORY.lif new file mode 100644 index 000000000..758fc6cd0 --- /dev/null +++ b/programs/demos/life2/lif/MEMORY.lif @@ -0,0 +1,281 @@ +#Life 1.05 +#D 8-bit serial memory cell +#D +#D The reset line comes in +#D from the lower left, and +#D the set line comes in from +#D the lower right. The set +#D line pre-empts the reset +#D line, so the result shown +#D here is that the memory is +#D set to 11111111. +#N +#P -34 -24 +** +** +#P -22 -33 +...* +..** +.***.* +** +.** +..* +. +..* +.** +** +.***.* +..** +...* +#P -12 -40 +..** +.*..* +***.** +.*.** +.*.** +..*.* +..*.* +..*..* +.**..* +*....* +*..** +*..* +.*.* +.*.* +.**.* +.**.* +**.*** +.*..* +..** +#P -2 -41 +..* +..** +*.*** +....** +...** +...* +. +...* +...** +....** +*.*** +..** +..* +#P 14 -32 +** +** +#P -58 -5 +** +** +#P -52 -13 +..*...** +**.*.*** +*....*** +*...* +.*** +. +.*** +*...* +*....*** +**.*.*** +..*...** +#P -40 -8 +...** +..*** +*** +*** +*** +..*** +...** +#P -32 -8 +** +*** +..*** +..*** +..*** +*** +** +#P -31 -12 +** +** +#P -3 2 +...* +..*.* +..*.* +*.*.*.* +**...** +#P 19 -18 +** +** +#P 18 -14 +..* +.*** +.*.** +** +** +*** +..*** +....* +.*..* +*..* +.** +#P 24 -14 +..* +.*** +**.* +...** +...** +..*** +*** +* +*..* +.*..* +..** +#P 30 12 +** +** +#P 37 4 +..**** +.**..* +**..* +.*..* +..** +. +..** +.*..* +**..* +.**..* +..**** +#P 49 9 +...*...* +..*.*.*.* +**..*.*..** +**.......** +**..*.*..** +..*.*.*.* +...*...* +#P 57 5 +** +** +#P 4 14 +*** +..* +.* +#P -14 37 +** +** +#P -10 25 +...** +*....* +*.*...* +.....* +.**.** +. +.....** +. +.**..* +.*..* +.**.* +...* +. +** +** +#P 1 24 +..* +*..* +***** +***.** +.**.* +..** +. +..** +.**.* +***.** +***** +*..* +..* +#P 16 26 +** +** +#P -14 51 +***...*** +*..*.*..* +**.*.*.** +**.....** +#P -14 59 +..** +*..* +*.* +*** +#P -9 59 +** +*..* +.*.* +.*** +..** +..** +..** +#P -38 38 +.** +*.* +..* +#P -49 50 +*** +..* +.* +#P -61 61 +.** +*.* +..* +#P -72 73 +*** +..* +.* +#P -84 84 +.** +*.* +..* +#P -95 96 +*** +..* +.* +#P -107 107 +.** +*.* +..* +#P -118 119 +*** +..* +.* +#P 58 61 +*** +* +.* +#P 70 72 +** +*.* +* +#P 81 84 +*** +* +.* +#P 93 95 +** +*.* +* +#P 104 107 +*** +* +.* +#P 116 118 +** +*.* +* +#P 127 130 +*** +* +.* +#P 139 141 +** +*.* +* diff --git a/programs/demos/life2/lif/MIRAGE.lif b/programs/demos/life2/lif/MIRAGE.lif new file mode 100644 index 000000000..67ad7e0a2 --- /dev/null +++ b/programs/demos/life2/lif/MIRAGE.lif @@ -0,0 +1,170 @@ +#Life 1.05 +#D Mirage (Fata Morgana) +#D Life is but a dream. +#N +#P -20 -22 +....* +.*...*...** +...*...* +..*...*...** +*...*...* +.*...*...*.* +...*...* +..*...* +....*...* +*....* +#P -33 -17 +........*..* +..........* +....*...* +..*...* +.*...*...* +...*...* +*...*...* +..*...*...* +.*...*...* +...*...*...* +*...*...* +..*...*...* +.....*...* +.*.*...* +...*.......* +.*...*.* +..........* +...*.......* +.*..*.* +..* +#P -21 -14 +* +. +. +*.*...* +....* +...* +.* +...* +..* +*.....* +.*..*...* +.....*...* +...*...* +.*....*...* +....*...* +.*...*...* +.......* +....*.* +. +.......* +......* +....* +.....* +#P -28 2 +....* +..*...* +.*...*....* +...*...* +*...*...* +..*...* +.*...*..* +...*......* +#P -12 2 +....*....* +..*...*....* +...*...*..* +.*...* +*...*...* +..*...*....* +*..*...*..* +.....* +#P -10 -6 +*....*...* +..*...*.* +*...* +...*.....* +.*...*..* +..* +....**..*.* +#P 1 -7 +....* +.*...*...**..*.* +...*...* +..*...*...**..* +*...*...*.....* +.*...*...*.* +...*...* +..*...* +....*...* +*....* +........* +#P 0 4 +..*.*...* +*....* +...*...* +..*...* +....*...* +.*...* +...*...* +..*...* +....* +#P 18 -8 +.........* +.......* +.**...*...*..* +....*...*...* +**...*...* +...*...*...* +*.*...*...* +....*...* +.....*...* +...*...* +......* +. +....* +.......* +....* +.....*.* +...* +....* +#P 10 0 +....*.* +.*....*.* +....*...* +.*...* +...*...*..* +..*...* +*...*...* +.*...*...* +...*...* +..*...* +*...*...* +.....*....* +#P 16 12 +...*..*.* +.*......*.* +*.....*...* +...*...* +.....*...* +....*...* +..*...*...* +...*...*...* +.....*...* +....*...* +......*...* +.......* +#P -26 11 +.*.*...* +....* +..*...* +.*...* +...*...* +*...* +..*...* +.*...* +...* +#P 28 -13 +.....* +*.*...* +*...* +...* +.*...* +..* diff --git a/programs/demos/life2/lif/MWSSGUN.lif b/programs/demos/life2/lif/MWSSGUN.lif new file mode 100644 index 000000000..3626e98e1 --- /dev/null +++ b/programs/demos/life2/lif/MWSSGUN.lif @@ -0,0 +1,75 @@ +#Life 1.05 +#D Middleweight Spaceship gun +#D By Bill Gosper. +#D +#D Spaceship guns are actually rather easy to make, +#D thanks to their glider syntheses (see MAKEFISH). +#D With those, you can make an *WSS gun of just +#D about any period that you can make a glider gun. +#D (See also MWSSRAK2.) +#N +#P -25 -25 +** +** +#P -33 -16 +.*** +*..* +**.* +#P -26 -16 +*** +*..* +*.** +#P -39 1 +..** +.*.* +.* +** +#P -33 13 +*** +*..** +.*** +..* +#P -27 13 +..*** +**..* +.*** +..* +#P -25 23 +** +** +#P -19 -23 +** +** +#P -9 -30 +.** +** +.***** +..**** +. +..**** +.***** +** +.** +#P 12 -28 +.*...* +*.....* +......* +.*...** +..*** +. +..*** +.*...** +......* +*.....* +.*...* +#P 28 -20 +** +** +#P -11 -11 +..* +** +.** +#P 1 -22 +*.* +** +.* diff --git a/programs/demos/life2/lif/MWSSRAK2.lif b/programs/demos/life2/lif/MWSSRAK2.lif new file mode 100644 index 000000000..2daf72a6d --- /dev/null +++ b/programs/demos/life2/lif/MWSSRAK2.lif @@ -0,0 +1,123 @@ +#Life 1.05 +#D Back-rake +#D +#D This is a simple combination of 3 glider rakes +#D whose gliders are aligned to form MWSS traveling +#D in the opposite direction. This is well-known. +#D It is fun to collide the stream with random junk, +#D partly because the source is rarely destroyed. +#N +#P 22 -22 +...* +....* +*...* +.**** +. +. +. +* +.** +..* +..* +.* +. +. +...* +....* +*...* +.**** +#P 14 -22 +.** +**** +**.** +..** +#P 4 -6 +...* +....* +*...* +.**** +#P 19 4 +.**** +*...* +....* +...* +. +. +.* +..* +..* +.** +* +. +. +. +.**** +*...* +....* +...* +#P 11 18 +..** +**.** +**** +.** +#P 1 2 +.**** +*...* +....* +...* +#P 30 24 +...**** +..*...* +......* +.....* +. +. +..** +.*..* +.*..* +**.** +.** +. +. +. +...**** +..*...* +......* +.....* +#P 24 24 +..** +**.** +**** +.** +#P 21 29 +..* +.** +* +.***** +..**** +.....* +#P 15 39 +...* +....* +*...* +.**** +#P -11 15 +*** +..* +.* +#P -6 20 +*** +..* +.* +#P -1 25 +*** +..* +.* +#P 4 30 +*** +..* +.* +#P 9 35 +*** +..* +.* diff --git a/programs/demos/life2/lif/MWSSRAKE.lif b/programs/demos/life2/lif/MWSSRAKE.lif new file mode 100644 index 000000000..8d7fd5779 --- /dev/null +++ b/programs/demos/life2/lif/MWSSRAKE.lif @@ -0,0 +1,92 @@ +#Life 1.05 +#D MWSS rake +#D +#D Boy, don't you wish you could +#D use this on your lawn! +#N +#P 20 -20 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P 16 -17 +** +*** +** +#P 7 -19 +...* +....** +.*** +*** +.*** +....** +...* +....** +#P 10 -9 +....** +****.** +****** +.**** +#P 5 -28 +..* +*...* +.....* +*....* +.***** +#P -4 -11 +*** +*.* +....* +..** +..** +#P 0 -5 +.**** +****** +****.** +....** +#P -12 -19 +....** +****.** +****** +.**** +#P -20 -19 +.*** +***** +***.** +...** +#P -12 -12 +** +** +#P -11 -6 +..* +*.* +.** +#P 1 9 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P -3 12 +** +*** +** +#P -9 4 +....** +****.** +****** +.**** +#P -8 20 +....** +****.** +****** +.**** diff --git a/programs/demos/life2/lif/OSCSP2.lif b/programs/demos/life2/lif/OSCSP2.lif new file mode 100644 index 000000000..1c8e42c66 --- /dev/null +++ b/programs/demos/life2/lif/OSCSP2.lif @@ -0,0 +1,524 @@ +#Life 1.05 +#D p2 oscillators +#D +#D By various artists - mostly well- +#D known, but most of these are also +#D easy to generate with a search +#D program. +#D +#D Other p2's in this collection: +#D POLES, QUILT, LONEDOTS, TWINDOTS, +#D VENETIAN, VENETIAN3. +#N +#P -1 -29 +*** +#P 8 -30 +* +** +** +.* +#P -18 -30 +** +* +...* +..** +#P -10 -29 +.* +.*.* +*.* +..* +#P -22 -21 +...* +...*.* +.* +......** +** +......* +..*.* +....* +#P -10 -20 +.*** +. +**..* +. +.*..** +. +..*** +#P 2 -21 +....*** +** +*.*.** +. +..*.* +.* +.** +#P 13 -20 +...* +.*.*.* +...* +**.*.** +...* +..*.* +#P 24 -20 +..** +.*.* +...*.** +**.*.** +...* +..** +#P 38 -39 +**....** +*.*..*.* +..*..* +..*..* +...** +#P 34 -9 +....* +...*.* +...*..* +.**....* +*....** +.*..* +..*.* +...* +#P 35 -23 +......** +.....*..* +....*.*..* +....*.**.* +..**....* +.*....** +*.**.* +*..*.* +.*..* +..** +#P -58 -43 +......*..* +......****** +. +....******** +...* +...*...**.** +**.*...**.** +.*.*.** +.*.*.** +**.* +.*.*.** +.*.*.** +**.*...**.** +...*...**.** +...* +....******** +. +......****** +......*..* +#P -41 -28 +...* +...*.* +.* +. +** +. +..* +. +..** +. +.* +. +** +......* +..*.* +....* +#P -29 -25 +..** +. +..* +. +** +. +.* +. +..** +. +..* +#P -34 -28 +....* +....*.* +*.* +* +#P -33 -16 +* +* +..*.* +....* +#P -46 -43 +* +* +. +*** +...* +...* +...*.** +**.*.* +**.*.* +...*.** +**.*.* +**.*.* +...*.** +...* +...* +*** +. +* +* +#P -33 -41 +.......* +...**.*.* +...**.*.* +.**...*.** +.**...* +......* +.***** +* +.*** +...* +#P -18 -47 +......* +......*** +.........* +....***.*.* +...*..*.*.* +...*....*.** +**.**...* +.*......* +.*.***** +..* +...*** +.....* +#P -1 -43 +..**.**.**.** +...*.*...*.*.* +...*.......*..* +.**.*******.** +*..*...*...* +.*.*.**.**.* +..**.**.**.** +#P 18 -44 +...**.** +...**.*...** +........*..* +.******.*** +*..*.* +**...*.** +....**.** +#P 17 -33 +...**....** +....*.....* +..*.*.*.**...* +*..*.**..*.*..* +*..*.*..**.*..* +.*...**.*.*.* +....*.....* +....**....** +#P 50 -39 +.**....** +.*.*..*.* +...*..* +...*..* +**.****.** +**.*..*.** +...*..* +...*..* +**.****.** +.*.*..*.* +.*.*..*.* +**.*..*.** +...**** +...*..* +**.*..*.** +**.*..*.** +...**** +...*..* +....** +#P -58 -19 +......** +......** +. +....****** +...*......* +...*...**.* +**.*...**.*.** +**.*.**...*.** +...*.**...* +...*......* +....****** +. +......** +......** +#P -39 -9 +.*** +.........* +..**.*.*.* +.......*.* +..* +.......* +*.* +*.*.*.** +* +......*** +#P -50 0 +....** +..*..* +..*** +. +..*** +.*...* +.*...* +..*.* +*.*.*.* +**...** +#P -22 -8 +**................................................** +*.....*...*....*....*....*....*....*....*....*.....* +.*.**.*.*.*.**.*.**.*.**.*.**.*.**.*.**.*.**.*.**.* +......*...*....*....*....*....*....*....*....* +***..*.*.*.*..*.*..*.*..*.*..*.*..*.*..*.*..*.*..*** +#P 45 -12 +....*.* +..*..*..* +...*.*.* +.***.*.*** +.....* +*****.***** +.....* +.***.*.*** +...*.*.* +..*..*..* +....*.* +#P -38 4 +....*...* +**.*.*.*..* +*.**.*.*..* +.....***..* +......*.** +*.**.*.* +**.*.*.* +......* +#P -26 4 +..*...................*.....*...................* +*..**....**...**....**..*.*..**....**...**....**..* +*..***..*..*.*..*..***..*.*..***..*..*.*..*..***..* +*..*..*..***.***..*..*..*.*..*..*..***.***..*..*..* +.**...*..**...**..*...**...**...*..**...**..*...** +........*.......*.................*.......* +#P 26 4 +..*...* +*..*.*.*.** +*..*.*.**.* +*..*** +.**.* +...*.*.**.* +...*.*.*.** +....* +#P -52 14 +....* +..***** +.*.....* +.*..***.* +**.*....* +...*....*.** +...*.***..* +....*.....* +.....***** +.......* +#P -33 16 +.**.** +*.**..* +**....* +.*...* +*....** +*..**.* +.**.** +#P -20 16 +..**.** +.*.*.** +*..* +**...** +...*..* +**.*.* +**.** +#P -7 15 +....* +....*** +..**...* +.*.*..** +.*..**..** +**..**..* +..**..*.* +..*...** +...*** +.....* +#P 7 14 +.....** +....*..* +...*.*.* +.........* +.**.......* +*........*.* +*.*........* +.*.......** +..* +....*.*.* +....*..* +.....** +#P 26 16 +...**.* +...*...** +....* +**....* +*.*..* +....* +*..* +.* +.* +#P 40 2 +........**..** +........*..*.* +.........* +.............* +....**.*.*..*...** +....*...**..**.*.* +.....* +.................* +**.*.*..........*...** +*...**..........**.*.* +.* +....................* +*.*.**..........**...* +**...*..........*.*.** +....* +................* +....*.*.**..**...* +....**...*..*.*.** +........* +............* +........*.*..* +........**..** +#P -51 29 +..** +....* +.* +..** +. +****** +* +..*.* +..* +#P -44 32 +*.*.*.*...*.*.*.*...*.*.*.*...* +*.....*.*.*.....*.*.*.....*.*.*.* +...*....*....*....*....*....* +...******....******....****** +. +.....**........**........** +.....**........**........** +#P -11 29 +..* +..** +..** +...* +. +.***** +*....* +..*.* +..* +#P 4 30 +....* +..***** +.*.....* +*..***..* +.**...** +...** +...** +.**...** +*..***..* +.*.....* +..***** +....* +#P 19 30 +....* +...*.* +**..*..** +*.**....* +..**.** +*....**.* +**..*..** +...*.* +....* +#P 34 26 +....** +...*..* +**..**..** +*........* +.*.****.* +..**..** +.**....** +.*..**..* +. +.*.****.* +*.**..**.* +**..**..** +...*..* +....** +#P 50 31 +** +*.....** +.*.*..** +....** +..*.** +......* +.*..* +.**...*.* +.......** +#P -51 43 +** +*.* +....*.* +.*..*...*.*.*.*.*.*.*.*.* +.......*..*..*..*..*..*..* +.**....*.*.*.*.*.*.*.*.*.* +....** +..** +....* +#P -25 45 +*.*.....* +.*..*.*.*.*.*.*.* +.*.*..*.*.*..*..* +.*.*.*..*..*.*.* +.*.....*.* +#P -8 47 +.* +.*.* +*..*.* +..*..*.* +....*..*.*.*.*.*.* +......*..*..*..*..* +........*.*.*.*.*.* +#P 11 48 +.....** +....*.* +*.* +..*..* +. +....** +.** +...** +..* +#P 25 46 +**..*.....*...*.....*...*.....*..** +*..*..*.*..*.*..*.*..*.*..*.*..*..* +.*.*..*.*..*.*..*.*..*.*..*.*..*.* +**.*..*.*..*.*..*.*..*.*..*.*..*.** +. +**.****.****.****.****.****.****.** +**.***...***.***...***.***...***.** diff --git a/programs/demos/life2/lif/OSCSP3.lif b/programs/demos/life2/lif/OSCSP3.lif new file mode 100644 index 000000000..0288e4073 --- /dev/null +++ b/programs/demos/life2/lif/OSCSP3.lif @@ -0,0 +1,687 @@ +#Life 1.05 +#D p3 oscillators +#D +#D By Dean Hickerson's Apple IIe search program, +#D Bob Wainwright, Richard Schroeppel, David +#D Buckingham, Mark Niemec, Peter Raynham, +#D various. +#N +#P -79 -37 +..***...*** +. +*....*.*....* +*....*.*....* +*....*.*....* +..***...*** +. +..***...*** +*....*.*....* +*....*.*....* +*....*.*....* +. +..***...*** +#P -79 -20 +...***.*** +....**.** +....**.** +*...*...*...* +****.....**** +***.......*** +. +***.......*** +****.....**** +*...*...*...* +....**.** +....**.** +...***.*** +#P -78 -3 +.....* +....*** +..***.*** +..*.....* +.**.....** +**.......** +.**.....** +..*.....* +..***.*** +....*** +.....* +#P -78 11 +**...*...** +**..***..** +..***.*** +..*.....* +.**.....** +**.......** +.**.....** +..*.....* +..***.*** +**..***..** +**...*...** +#P -77 27 +..**** +..*..* +***..*** +*......* +*......* +***..*** +..*..* +..**** +#P -77 40 +...**.* +...*.** +**.* +.*.*.**** +*.......* +****.*.* +.....*.** +..**.* +..*.** +#P -60 -37 +......* +.....*.* +....*.*.* +....*...* +..**..*..** +.*....*....* +*.*.**.**.*.* +.*....*....* +..**..*..** +....*...* +....*.*.* +.....*.* +......* +#P -61 -21 +....**...** +....*.*.*.* +......*.* +.....*.*.* +**...*...*...** +*..**..*..**..* +.**....*....** +...*.**.**.* +.**....*....** +*..**..*..**..* +**...*...*...** +.....*.*.* +......*.* +....*.*.*.* +....**...** +#P -59 -3 +..**.** +...*.*.* +*..*...* +***..*..** +.....*....* +**.**.**.** +*....* +.**..*..*** +...*...*..* +...*.*.* +....**.** +#P -60 14 +....**** +.****..**** +*.**....**.* +**........* +. +**........* +*.**....**.* +.****..**** +....**** +#P -60 26 +.*........* +*.**....**.* +.****..**** +....**** +#P -60 34 +.***....*** +*.***..***.* +.**.****.** +#P -61 43 +....* +....***...*.*** +...*.*...*.* +***.*...*** +..........* +#P -43 -38 +......* +.....*.* +.....*..* +..**.**.* +.*.*....*** +.*.*.*.*...* +**.*.*...*..* +...*..**.*** +...* +....****** +.........* +......*** +......* +#P -42 -19 +.....** +.....*.* +.......* +**.****.** +**.*....*.* +...*.*..*.* +...*.*....*.** +....**.****.** +......* +......*.* +.......** +#P -43 -3 +....*.* +....**.* +.......*** +....**....* +**.*..**..* +.*.*....*.** +*...*...*...* +.**.*....*.* +..*..**..*.** +..*....** +...*** +.....*.** +......*.* +#P -43 19 +.....**.** +.*....*.** +*.**..* +.****.* +....** +#P -43 28 +.* +*.**..** +.****..* +....*** +. +....*** +.****..* +*.**..** +.* +#P -42 41 +* +*** +...* +..** +. +....** +....* +.....*** +.......* +#P -32 41 +* +*** +...* +..*..** +..*....* +...**..* +......* +.......*** +.........* +#P -26 -37 +...**....** +...*......* +**.*.*..*.*.** +*..*.*..*.*..* +..**.*..*.** +......** +#P -23 -26 +.**.** +..*.*.* +..*...* +**.**.** +.*...* +.*.*.* +..**.** +#P -25 -14 +....*.** +....**.* +. +....***..** +...*...*..* +.***...*.* +*......*.** +.***.** +...*.* +...*.* +....* +#P -26 1 +.....** +.....** +. +...**** +*.*....* +**.*...* +...*...*.** +...*....*.* +....**** +. +....** +....** +#P -26 17 +....* +...*.* +..*.*.* +..*.*.* +**....** +.*.*.* +.*.*.* +..*.* +...* +#P -28 30 +..* +..*** +**...* +.*.*.* +.* +..**..* +.....** +#P -14 17 +.....* +****...* +...*...* +.......* +....* +.....** +#P -14 27 +.....* +****...*...*** +...*...*...** +.......*..*** +....*.....*.* +.....**....* +#P -14 38 +............** +.....*.......* +****...*..*** +...*...*..** +.......*...** +....* +.....** +#P -22 41 +* +*** +...* +..** +. +....** +....*.* +...*.** +....*...** +........*.* +..........* +..........** +#P -4 -39 +...** +..*..* +.*..*.* +.**.*.* +......** +*.**.* +**.*.* +....* +#P -10 -25 +....** +**.*.* +**.* +...* +...*..* +....**.* +.......* +.......** +#P -9 -12 +..**.** +*..*.*.* +**...*.* +.....*.** +...*...* +..*.**.* +..*...* +.**...*.* +.......** +#P -12 1 +.....* +....*.* +....*.* +...**.** +*.*.....*.* +**.*.*.*.** +...*...* +...*...* +....*** +. +...*.** +...**.* +#P -1 16 +.** +*..* +*.*..* +.*...* +.....* +..* +...** +#P 8 -39 +......** +..**..* +.*..*.* +*.*.*.** +.*....* +..***.* +.....* +....* +....** +#P 1 -25 +....** +...*.* +...* +**.* +**.*..* +...*.** +...* +..** +#P 4 -12 +...** +...*.*.** +.....*.** +**...* +*..*...** +.***.**.* +....* +.**.* +.*.* +#P 1 1 +.....* +....*.* +....*.* +...**.** +*.*.....*.* +**.*.*.*.** +...*...* +...*.*.* +....*.* +.....* +#P 9 10 +.......** +......*..* +......*.*..* +.......*....* +............* +........*** +.** +*..* +*.*..*....** +.*...*....*.* +.....*..**.* +..*.....*.* +...**....* +#P 7 28 +.**.** +*.*.* +**..*.* +....*...* +****....* +*.......* +..* +. +...*** +#P 5 40 +....* +....* +....** +......* +***..*..* +..*.*...* +...*....* +. +....*** +#P 18 41 +..* +..*** +**...* +.*..*..* +.*.*...* +..*....* +. +...*** +#P 12 -26 +..* +.*.* +*..*** +.**...* +...*.*.* +...*...* +....**.** +......*..* +......*.* +.......* +#P 17 -12 +......** +......*.* +...**.*.* +...*..*.** +**.*....* +**.****.* +.......* +.....* +.....** +#P 17 0 +....** +.....*** +...*....* +.***.**.* +*......* +.***.* +...*.** +#P 21 -39 +...** +..*..* +*..*.* +**.*.** +......* +**.** +.*.* +.*.* +..* +#P 26 -25 +...* +...*** +.**...* +*..*.*.* +.*.*...* +**.*.** +..*.* +..*.* +...* +#P 30 -12 +*.** +**.*..** +...*.*..* +...*..*.* +....*...** +.....**...* +.......*** +.......* +#P 30 0 +..** +.*..* +.*.*..* +**.*.** +* +.***.**** +.....*..* +*.** +**.** +#P 41 11 +......** +.......* +......* +......** +.........** +......***.* +*.**.* +**.*.* +.....*...* +....*...**....** +....**....**...* +..........*...* +..............*.*.** +..............*.**.* +.........*.*** +.........** +............** +.............* +............* +............** +#P 41 39 +......** +..*...* +.*.*...*** +.*.****...* +**....*.*.* +..***.* +..*.**.*.* +...*...** +.....**..* +..**...*..* +..*....*..* +#P 21 20 +.............** +............*..* +.............*.* +.........**...* +..........*.** +............* +............* +. +**........***......* +****.*........*...** +*.*..***.*....* +.........*....*.***..*.* +....**...*........*.**** +....*......***........** +. +...........* +...........* +..........**.* +.........*...** +........*.* +........*..* +.........** +#P 58 32 +...*..* +...*..* +****..**** +. +....** +. +...**** +.***..*** +.*......* +.***..*** +...**** +. +....** +. +****..**** +...*..* +...*..* +#P 39 -38 +**.** +*.**...** +.....*..* +.***.*** +* +**..** +.....* +....* +....** +#P 39 -25 +** +*..** +.**..* +....*.* +.**...* +*.*.** +*..* +.*.* +..* +#P 41 0 +..**.** +.*.*.*.* +*.......* +.***.*** +. +.**.*.** +.*.**.** +#P 44 -13 +..** +...*..** +...*.*..* +**.*..*.* +*.*.*...** +..*.*.**..* +..*..*...** +...*.* +....* +#P 50 -25 +** +*..** +.**..* +....*.* +.**...* +*..**.** +**...*..* +.....*.* +......* +#P 53 -39 +..** +...* +...*.** +..**.*.* +*......* +**.*.** +.*.* +.*.*.**** +..**.*..* +#P 63 -25 +.....*.....* +**...*.*.*.*...** +*..*.........*..* +.*******.******* +. +...****.*.**** +...*..*.**.*..* +.............** +#P 59 -12 +....** +.....* +**.* +.*.** +.*....* +**.*.** +.*.* +.*..*** +**....* +#P 70 -11 +..** +*..* +**.*.** +.*.*..* +.*....*.** +..***.*.** +.....* +....* +....** +#P 58 1 +....** +.....* +...* +..*.**** +..*....* +.**.* +..*.*.**** +*.*.*....* +**...*** +.......** diff --git a/programs/demos/life2/lif/OSCSP3X.lif b/programs/demos/life2/lif/OSCSP3X.lif new file mode 100644 index 000000000..44c6c3bd7 --- /dev/null +++ b/programs/demos/life2/lif/OSCSP3X.lif @@ -0,0 +1,429 @@ +#Life 1.05 +#D Extensible p3 oscillators +#D +#D By Dean Hickerson's Apple IIe search program, +#D Bob Wainwright, Charles Trawick, David +#D Buckingham, various. +#N +#P -57 -18 +...* +..*.* +..*.* +...* +*** +* +#P -51 -15 +** +*.* +..* +..** +#P -56 -24 +** +.* +.*.* +..** +#P -51 -20 +*** +*** +#P -47 -18 +** +*.* +..* +..** +#P -52 -27 +** +.* +.*.* +..** +#P -47 -23 +*** +*** +#P -43 -21 +** +*.* +..* +..** +#P -48 -30 +** +.* +.*.* +..** +#P -43 -26 +*** +*** +#P -39 -24 +** +*.* +..* +..** +#P -44 -33 +** +.* +.*.* +..** +#P -39 -29 +*** +*** +#P -35 -27 +** +*.* +..* +..** +#P -40 -36 +** +.* +.*.* +..** +#P -35 -35 +....* +..*** +.* +*.* +*.* +.* +#P -15 -36 +..***...*** +. +*....*.*....* +*....*.*....* +*....*.*....* +..***...*** +. +..***...*** +*....*.*....* +*....*.*....* +*....*.*....* +. +..***...*** +#P -12 -11 +....* +..***** +.*.....* +..*.*..* +*.*....* +**..** +#P -3 -10 +.*** +*....* +*....* +*....* +. +.*** +#P -2 -17 +..*** +. +*....* +*....* +*....* +..*** +#P 5 -18 +.*** +*....* +*....* +*....* +. +.*** +#P 6 -25 +..*** +. +*....* +*....* +*....* +..*** +#P 13 -25 +.*** +. +*....* +*....* +*....* +.*** +#P 14 -18 +..*** +*....* +*....* +*....* +. +..*** +#P 21 -19 +...* +.***** +*.....* +*..*.* +*....*.* +..**..** +#P 56 -32 +...* +...* +..** +*** +#P 62 -32 +* +* +** +.*** +#P 56 -26 +*** +..** +...* +...* +#P 62 -26 +.*** +** +* +* +#P 56 -17 +...* +...* +..** +*** +#P 62 -17 +* +* +** +.*** +#P 54 -11 +.*** +** +* +* +#P 47 -9 +....* +....* +...** +.*.* +* +** +#P 64 -11 +*** +..** +...* +...* +#P 70 -9 +* +* +** +.*.* +....* +...** +#P -51 5 +...*** +....** +....** +*...* +**** +*** +#P -44 5 +*** +** +** +.*...* +..**** +...*** +#P -56 12 +...*** +..**** +.*...* +** +** +*** +#P -63 13 +...*** +....** +....** +*...* +**** +*** +#P -61 20 +*** +**** +*...* +....** +....** +...*** +#P -54 21 +*** +** +** +.*...* +..**** +...*** +#P -51 28 +*** +**** +*...* +....** +....** +...*** +#P -41 12 +*** +**** +*...* +....** +....** +...*** +#P -34 13 +*** +** +** +.*...* +..**** +...*** +#P -32 20 +...*** +..**** +.*...* +** +** +*** +#P -38 20 +..* +.*.* +.*..* +. +..*.* +*...* +**** +. +** +** +#P -44 28 +..* +.*.* +*..* +. +*.* +*...* +.**** +. +...** +...** +#P -18 8 +...** +.*...* +*..*.* +**...* +. +**...* +*..*.* +.*...* +...** +#P -11 6 +..........** +.....**...**...** +.**..*..........* +*..*.*..******..* +****.*.*......*.* +.**..*..**..**..* +.**.....**..** +.**..*..**..**..* +****.*.*......*.* +*..*.*..******..* +.**..*..........* +.....**...**...** +..........** +#P 7 6 +..........** +.....**...**...** +.**..*..........* +*..*.*..******..* +****.*.*......*.* +.**..*..**..**..* +.**.....**..** +.**..*..**..**..* +****.*.*......*.* +*..*.*..******..* +.**..*..........* +.....**...**...** +..........** +#P 25 8 +.** +*..* +**** +.** +.** +.** +**** +*..* +.** +#P 30 8 +.** +*...* +*.*..* +*...** +. +*...** +*.*..* +*...* +.** +#P 44 5 +....*..*.*..*.*..*.*..*.* +....*..*.*..*.*..*.*..*.* +.*.**..*.*..*.*..*.*..*.* +*.*.....*....*....*....* +.*......*....* +#P 71 3 +.** +..*..* +*.*.*.* +*.*..* +*.* +.* +#P 44 15 +...*..*.*..*.*..* +...*..*.*..*.*..*..* +..**..*.*..*.*..***.* +***....*....*......* +.......* +#P 44 21 +*** +...** +*** +#P 44 26 +*** +..* +...* +..*.* +...** +#P 50 29 +****.**** +*..*.*..* +.**...** +#P 60 25 +.**...** +*..*.*..* +****.**** +#P 69 26 +.** +.*..* +.*.** +.* +** +#P -16 26 +....* +*..*.* +****.* +.....* +..**.* +.* +.** +#P -9 25 +.......**......**......**...*.** +......*..*....*..*....*..*..**.* +...*...**..*...**..*...*.*.....*.** +.******..******..******..******.*.* +*.....*.*.....*.*.....*.*.....*.* +*.*.*...*.*.*...*.*.*...*.*.*...*.* +*.*...*.*.*...*.*.*...*.*.*...*.*.* +..*.*.....*.*.....*.*.....*.*.....* +*.*.******..******..******..****** +**.*.....*.*...*..**...*..**...* +...*.**..*..*....*..*....*..* +...**.*...**......**......** +#P 27 29 +...** +....* +*.** +* +*.**** +*.*..* +.* diff --git a/programs/demos/life2/lif/OSCSP4.lif b/programs/demos/life2/lif/OSCSP4.lif new file mode 100644 index 000000000..b5cff1bb7 --- /dev/null +++ b/programs/demos/life2/lif/OSCSP4.lif @@ -0,0 +1,2383 @@ +#Life 1.06 +#D p4 oscillators, arranged by symmetry. +#D +#D By Dean Hickerson's Apple IIe search program, +#D Bill Gosper, Bob Wainwright, John Conway, +#D Achim Flammenkamp, David Buckingham, various. +#N +15 31 +14 29 +15 28 +14 28 +13 28 +12 28 +11 27 +15 26 +14 26 +11 26 +13 25 +11 25 +10 25 +13 24 +11 24 +8 24 +-16 26 +-15 25 +-14 24 +-25 25 +-25 24 +-19 31 +-20 31 +-20 30 +-18 29 +-18 28 +-19 28 +-20 28 +-21 28 +-22 28 +-22 27 +-17 26 +-18 26 +-19 26 +-19 25 +-24 25 +-17 24 +-19 24 +16 31 +16 30 +18 28 +17 28 +16 28 +19 27 +16 26 +20 25 +18 25 +16 25 +19 24 +16 23 +-25 23 +-27 23 +-28 23 +-25 22 +-28 22 +-25 21 +-26 21 +-17 23 +-19 23 +-18 22 +-20 22 +-21 22 +-22 22 +-23 22 +-17 21 +-19 21 +-23 21 +-18 20 +-20 20 +-21 20 +-23 20 +-18 19 +-20 19 +-23 19 +-17 18 +-18 18 +-20 18 +-22 18 +-21 17 +-17 -14 +-17 -17 +-18 -17 +-19 -18 +-17 -19 +-18 -19 +-20 -19 +-22 -19 +-23 -19 +-20 -20 +-22 -20 +-23 -20 +-20 -21 +-19 -22 +-20 -22 +-14 -17 +-15 -17 +-16 -17 +-13 -18 +-16 -18 +-9 -19 +-10 -19 +-12 -19 +-14 -19 +-15 -19 +-16 -19 +-9 -20 +-10 -20 +-12 -20 +-12 -21 +-12 -22 +-13 -22 +-11 50 +-12 49 +-11 48 +5 -17 +4 -17 +3 -17 +2 -17 +1 -17 +0 -17 +5 -19 +4 -19 +2 -19 +0 -19 +6 -20 +4 -20 +0 -20 +6 -21 +2 -21 +5 -22 +4 -22 +3 -22 +1 -22 +0 -22 +3 -23 +1 -23 +16 -17 +19 -18 +17 -18 +19 -19 +18 -19 +16 -19 +16 -20 +16 -21 +14 -16 +15 -17 +14 -17 +13 -17 +12 -17 +11 -18 +9 -18 +14 -19 +12 -19 +10 -19 +9 -19 +12 -20 +14 -21 +12 -21 +15 -22 +13 -22 +14 -23 +17 -37 +16 -37 +18 -38 +18 -39 +17 -39 +-16 -13 +-15 -14 +-16 -15 +-90 -73 +-91 -73 +-93 -73 +-95 -73 +-93 -74 +-93 -75 +-94 -75 +-93 -65 +-92 -66 +-93 -66 +-92 -67 +-93 -67 +-92 -68 +-90 -70 +-91 -70 +-92 -70 +-93 -70 +-94 -70 +-89 -71 +-96 -71 +-89 -72 +-91 -72 +-93 -72 +-96 -72 +-93 -57 +-94 -58 +-95 -58 +-96 -58 +-96 -59 +-94 -50 +-95 -50 +-94 -51 +-92 -52 +-94 -52 +-91 -53 +-93 -53 +-90 -54 +-91 -54 +-93 -56 +-94 -56 +-81 -53 +-82 -53 +-82 -54 +-87 -54 +-88 -54 +-87 -55 +-88 -55 +-78 -73 +-80 -73 +-80 -74 +-73 -75 +-79 -75 +-80 -75 +-69 -73 +-70 -73 +-72 -73 +-72 -74 +-72 -75 +-82 -73 +-83 -73 +-81 -71 +-83 -72 +-74 -67 +-75 -67 +-79 -67 +-80 -67 +-74 -68 +-76 -68 +-79 -68 +-80 -68 +-76 -69 +-73 -70 +-74 -70 +-75 -70 +-77 -70 +-78 -70 +-79 -70 +-80 -70 +-77 -71 +-73 -72 +-74 -72 +-75 -72 +-78 -72 +-80 -72 +-72 -70 +-71 -71 +-69 -72 +-72 -72 +-61 -73 +-62 -73 +-57 -74 +-58 -74 +-61 -74 +-59 -75 +-61 -75 +-59 -76 +-61 -76 +-63 -76 +-64 -76 +-60 -77 +-61 -77 +-63 -77 +-64 -77 +-61 -78 +-59 -79 +-61 -79 +-59 -80 +-60 -80 +-55 -74 +-56 -74 +-54 -75 +-54 -76 +-55 -76 +-59 -65 +-60 -65 +-57 -71 +-58 -71 +-57 -72 +-58 -72 +-77 -57 +-80 -57 +-74 -58 +-75 -58 +-77 -58 +-80 -58 +-73 -59 +-75 -59 +-77 -59 +-75 -60 +-80 -60 +-75 -61 +-76 -61 +-81 -59 +-72 -58 +-72 -59 +-79 -50 +-80 -50 +-80 -51 +-78 -52 +-78 -53 +-79 -53 +-80 -53 +-78 -55 +-79 -55 +-77 -56 +-79 -56 +-57 -58 +-57 -59 +-57 -61 +-58 -61 +-59 -61 +-62 -61 +-63 -61 +-60 -62 +-63 -62 +-58 -63 +-60 -63 +-62 -63 +-58 -64 +-61 -64 +-56 -58 +-56 -59 +-54 -61 +-55 -61 +-56 -61 +-53 -62 +-56 -62 +-53 -63 +-54 -63 +-58 -49 +-59 -49 +-60 -49 +-62 -49 +-63 -49 +-61 -50 +-63 -50 +-57 -51 +-58 -51 +-59 -51 +-60 -51 +-58 -52 +-53 -49 +-55 -49 +-52 -50 +-55 -50 +-52 -51 +-53 -51 +-56 -51 +-60 -46 +-61 -46 +-57 -47 +-60 -47 +-58 -48 +-60 -48 +-56 -47 +-52 -48 +-53 -48 +-55 -48 +-39 -73 +-40 -73 +-28 -73 +-29 -73 +-41 -71 +-41 -72 +-35 -65 +-36 -65 +-34 -67 +-36 -68 +-38 -68 +-39 -68 +-39 -69 +-37 -70 +-38 -70 +-33 -71 +-34 -71 +-35 -71 +-36 -71 +-39 -71 +-40 -71 +-38 -72 +-29 -68 +-30 -68 +-32 -68 +-29 -69 +-30 -70 +-31 -70 +-27 -71 +-28 -71 +-29 -71 +-32 -71 +-27 -72 +-30 -72 +-33 -57 +-34 -57 +-37 -57 +-38 -57 +-39 -57 +-40 -57 +-35 -58 +-33 -59 +-34 -59 +-37 -61 +-35 -62 +-36 -62 +-37 -62 +-37 -63 +-37 -64 +-41 -57 +-44 -57 +-45 -57 +-46 -57 +-43 -58 +-46 -58 +-44 -59 +-45 -59 +-32 -57 +-32 -58 +-41 -54 +-43 -54 +-44 -54 +-44 -55 +-42 -56 +-43 -56 +-39 -53 +-34 -54 +-35 -54 +-37 -54 +-34 -55 +-35 -56 +-36 -56 +-83 -25 +-85 -25 +-86 -25 +-83 -26 +-85 -26 +-87 -26 +-82 -27 +-85 -27 +-87 -27 +-84 -28 +-85 -28 +-87 -28 +-88 -28 +-85 -29 +-83 -30 +-85 -30 +-83 -31 +-84 -31 +-77 -25 +-78 -25 +-80 -25 +-76 -26 +-78 -26 +-80 -26 +-76 -27 +-78 -27 +-80 -27 +-75 -28 +-76 -28 +-78 -28 +-78 -29 +-78 -30 +-80 -30 +-79 -31 +-80 -31 +-86 -17 +-87 -18 +-88 -18 +-81 -24 +-82 -24 +-65 -25 +-66 -25 +-65 -27 +-66 -27 +-66 -28 +-66 -30 +-65 -31 +-66 -31 +-57 -25 +-58 -25 +-59 -25 +-64 -25 +-61 -26 +-62 -26 +-57 -27 +-58 -27 +-59 -27 +-63 -27 +-57 -28 +-64 -28 +-59 -29 +-61 -29 +-63 -29 +-64 -29 +-57 -30 +-59 -30 +-61 -30 +-57 -31 +-58 -31 +-72 -18 +-72 -19 +-66 -24 +-61 -17 +-62 -17 +-63 -17 +-60 -23 +-63 -23 +-57 -24 +-60 -24 +-61 -24 +-62 -24 +-63 -24 +-43 -25 +-44 -25 +-48 -25 +-41 -26 +-42 -26 +-45 -26 +-46 -26 +-47 -26 +-43 -27 +-45 -28 +-46 -28 +-41 -29 +-43 -29 +-45 -29 +-42 -31 +-45 -31 +-43 -32 +-44 -32 +-39 -25 +-39 -26 +-40 -26 +-40 -27 +-40 -28 +-41 -23 +-42 -23 +-45 -23 +-46 -23 +-42 -24 +-45 -24 +-47 -24 +-40 -24 +-89 -18 +-89 -19 +-87 -10 +-88 -10 +-87 -11 +-85 -12 +-87 -12 +-84 -13 +-86 -13 +-81 -14 +-83 -14 +-84 -14 +-81 -15 +-86 -16 +-87 -16 +-73 -10 +-74 -10 +-74 -11 +-74 -12 +-76 -12 +-77 -12 +-75 -13 +-80 -13 +-76 -14 +-75 -15 +-76 -15 +-77 -15 +-74 -16 +-75 -16 +-80 -16 +-75 -17 +-73 -18 +-74 -18 +-65 -14 +-66 -14 +-66 -15 +-65 -16 +-62 -9 +-60 -11 +-61 -11 +-62 -11 +-63 -11 +-64 -11 +-60 -12 +-64 -12 +-61 -13 +-58 -14 +-59 -14 +-60 -14 +-63 -14 +-64 -14 +-58 -15 +-61 -15 +-60 -16 +-61 -16 +-62 -16 +-62 -7 +-61 -8 +-63 -8 +-34 -9 +-34 -10 +-34 -11 +-36 -11 +-37 -11 +-38 -11 +-39 -11 +-33 -12 +-34 -12 +-36 -12 +-39 -12 +-37 -14 +-38 -14 +-48 -10 +-44 -11 +-48 -11 +-41 -12 +-48 -12 +-41 -13 +-43 -13 +-45 -13 +-46 -13 +-47 -13 +-50 -9 +-50 -10 +-52 -10 +-53 -10 +-50 -11 +-53 -11 +-50 -12 +-51 -12 +-49 -8 +-50 -8 +-31 -10 +-32 -10 +-31 -11 +-34 -8 +-35 -8 +-83 7 +-85 7 +-85 12 +-86 12 +-84 11 +-87 11 +-83 10 +-85 10 +-87 10 +-83 9 +-86 9 +-82 8 +-71 7 +-72 6 +-73 7 +-73 13 +-74 13 +-75 12 +-74 10 +-76 10 +-76 9 +-73 8 +-74 8 +-75 8 +-71 14 +-72 14 +-70 13 +-72 13 +-70 12 +-69 11 +-70 11 +-72 11 +-68 10 +-72 10 +-69 9 +-70 9 +-71 9 +-71 8 +-54 7 +-55 6 +-56 5 +-57 7 +-59 7 +-61 7 +-57 6 +-59 6 +-60 6 +-57 13 +-58 12 +-58 11 +-60 11 +-61 11 +-58 10 +-61 10 +-60 9 +-61 9 +-62 9 +-57 8 +-59 8 +-62 8 +-56 12 +-55 11 +-55 10 +-56 10 +-55 8 +-56 8 +-42 7 +-43 7 +-44 7 +-42 6 +-44 6 +-46 6 +-45 5 +-46 5 +-47 13 +-45 12 +-48 12 +-41 11 +-47 11 +-43 10 +-45 10 +-46 10 +-47 10 +-41 9 +-46 9 +-45 8 +-40 11 +-40 10 +-46 23 +-41 22 +-45 22 +-47 22 +-45 21 +-47 21 +-46 20 +-47 20 +-47 19 +-45 18 +-47 18 +-45 17 +-46 17 +-40 23 +-40 22 +-43 28 +-42 27 +-44 27 +-43 26 +-41 24 +-42 24 +-43 24 +-44 24 +-45 24 +-50 21 +-49 20 +-51 20 +-50 19 +-65 19 +-65 18 +-60 23 +-60 22 +-63 22 +-63 21 +-62 20 +-63 19 +-64 19 +-58 26 +-57 25 +-58 25 +-61 25 +-62 25 +-60 24 +-62 24 +-55 28 +-56 28 +-56 27 +-56 26 +-81 23 +-83 23 +-85 23 +-86 23 +-83 22 +-81 21 +-83 21 +-82 20 +-81 19 +-81 18 +-82 18 +-78 23 +-78 22 +-79 21 +-80 21 +-81 29 +-81 28 +-81 26 +-82 25 +-81 24 +-83 24 +-85 24 +-86 24 +-80 29 +-80 28 +-78 26 +-79 26 +-80 26 +-75 25 +-77 25 +-75 24 +-76 24 +-78 24 +-79 24 +-74 47 +-75 47 +-79 47 +-76 46 +-77 46 +-78 46 +-76 45 +-82 47 +-83 47 +-81 50 +-82 49 +-83 48 +-78 53 +-76 52 +-77 52 +-78 52 +-75 51 +-79 51 +-80 51 +-74 50 +-76 50 +-77 50 +-78 50 +-74 49 +-76 49 +-78 49 +-80 49 +-73 48 +-76 48 +-77 48 +-80 48 +-71 51 +-72 51 +-65 50 +-71 50 +-72 49 +-58 55 +-61 55 +-60 54 +-61 54 +-58 53 +-59 53 +-61 53 +-62 53 +-63 53 +-62 52 +-64 52 +-57 51 +-64 51 +-64 50 +-57 49 +-58 49 +-59 56 +-60 56 +-52 47 +-53 47 +-56 47 +-55 45 +-56 45 +-55 44 +-57 47 +-50 50 +-51 50 +-51 49 +-51 48 +-53 48 +-77 71 +-78 71 +-79 71 +-80 71 +-77 69 +-78 69 +-77 68 +-78 68 +-81 75 +-81 74 +-81 73 +-83 73 +-84 73 +-81 72 +-83 72 +-84 72 +-79 79 +-80 79 +-79 78 +-80 78 +-77 76 +-78 76 +-79 76 +-80 76 +-73 75 +-74 75 +-76 75 +-73 74 +-74 74 +-76 74 +-77 74 +-76 73 +-78 73 +-79 73 +-76 72 +-60 71 +-61 71 +-62 71 +-63 71 +-60 69 +-61 69 +-60 68 +-61 68 +-62 79 +-63 79 +-62 78 +-63 78 +-60 76 +-61 76 +-62 76 +-63 76 +-57 75 +-59 75 +-62 75 +-64 75 +-57 74 +-59 74 +-60 74 +-64 74 +-59 73 +-61 73 +-64 73 +-59 72 +-64 72 +-66 73 +-67 73 +-66 72 +-67 72 +-56 75 +-56 74 +-8 -81 +-5 -73 +-7 -73 +-5 -74 +-7 -74 +-8 -74 +-6 -75 +-7 -75 +-8 -75 +-7 -79 +-8 -79 +-8 -80 +-9 -73 +-11 -73 +-9 -74 +-11 -74 +-9 -75 +-10 -75 +-9 -79 +-12 -70 +-13 -70 +-9 -71 +-10 -71 +-13 -71 +-9 -72 +-11 -72 +-12 -72 +-3 -70 +-4 -70 +-3 -71 +-6 -71 +-7 -71 +-4 -72 +-5 -72 +-7 -72 +4 -81 +7 -73 +5 -73 +3 -73 +1 -73 +7 -74 +5 -74 +4 -74 +3 -74 +1 -74 +6 -75 +5 -75 +4 -75 +3 -75 +2 -75 +5 -79 +4 -79 +3 -79 +4 -80 +5 -65 +3 -65 +5 -66 +3 -66 +7 -67 +5 -67 +3 -67 +1 -67 +0 -67 +5 -68 +3 -68 +0 -68 +6 -69 +4 -69 +2 -69 +7 -70 +6 -70 +4 -70 +2 -70 +1 -70 +5 -71 +3 -71 +0 -71 +7 -72 +1 -72 +0 -72 +8 -67 +8 -68 +8 -71 +8 -72 +5 -57 +4 -57 +4 -64 +-9 -57 +-10 -57 +-11 -57 +-12 -57 +-13 -57 +-14 -57 +-15 -57 +-16 -58 +-15 -59 +-16 -59 +-9 -61 +-10 -61 +-11 -61 +-10 -62 +-10 -63 +-5 -57 +-6 -57 +-7 -57 +-8 -57 +-4 -58 +-4 -59 +-5 -59 +-17 -54 +-18 -55 +-17 -56 +-18 -56 +-10 -52 +-9 -53 +-10 -53 +-11 -53 +-9 -54 +-10 -54 +-11 -54 +-16 -54 +-12 -55 +-15 -55 +-9 -56 +-10 -56 +-11 -56 +-12 -56 +-13 -56 +-16 -56 +-3 -54 +-4 -54 +-2 -55 +-5 -55 +-8 -55 +-2 -56 +-3 -56 +-4 -56 +-7 -56 +-8 -56 +15 -57 +14 -57 +6 -54 +5 -54 +5 -55 +7 -56 +5 -56 +4 -56 +14 -54 +13 -54 +11 -54 +10 -54 +9 -54 +8 -54 +14 -55 +11 -55 +8 -55 +15 -56 +14 -56 +12 -56 +11 -56 +8 -56 +7 -42 +5 -42 +4 -42 +3 -43 +6 -44 +4 -44 +3 -44 +-7 -33 +-8 -33 +-7 -34 +4 -33 +3 -34 +4 -35 +3 -35 +4 -36 +7 -37 +6 -37 +5 -37 +3 -37 +2 -37 +1 -37 +7 -38 +3 -38 +0 -38 +1 -39 +0 -39 +7 -40 +6 -40 +-9 -33 +-10 -33 +-11 -33 +-12 -33 +-13 -33 +-15 -33 +-13 -34 +-15 -34 +-16 -34 +-10 -35 +-11 -35 +-14 -35 +-15 -35 +-10 -36 +-12 -36 +-10 -37 +-10 -38 +-13 -38 +-11 -39 +-13 -39 +-11 -28 +-10 -29 +-12 -29 +-10 -30 +-12 -30 +-9 -31 +-10 -31 +-12 -31 +-13 -31 +-15 -32 +4 -32 +3 -32 +15 -32 +14 -32 +-1 -17 +-1 -19 +-2 -20 +-2 -21 +-1 -22 +-1 -16 +5 -16 +2 -16 +-1 6 +-7 6 +-8 6 +-1 5 +-7 5 +-8 5 +-1 4 +-7 4 +-1 3 +-2 3 +-3 3 +-4 3 +-5 3 +-6 3 +-7 3 +-1 2 +-7 2 +-3 0 +-4 0 +-5 0 +-3 8 +-4 8 +-5 8 +-9 23 +-10 23 +-15 23 +-16 23 +-10 22 +-15 21 +-16 21 +-15 20 +0 6 +0 5 +14 23 +13 23 +11 23 +9 23 +8 23 +11 22 +14 21 +11 21 +15 20 +12 20 +14 19 +-1 23 +-5 23 +-7 23 +-2 22 +-3 22 +-5 22 +-7 22 +-8 22 +-4 21 +-6 21 +-4 20 +-6 20 +-5 19 +-1 31 +-2 31 +-2 30 +-1 29 +-1 28 +-2 28 +-4 27 +-5 27 +-1 26 +-2 26 +-3 26 +-6 26 +-3 25 +-6 25 +-1 24 +-4 24 +-5 24 +1 27 +0 27 +2 26 +1 25 +0 25 +-11 47 +-10 46 +-9 45 +-10 45 +-13 44 +-9 43 +-10 43 +-11 43 +-12 43 +-13 43 +-9 42 +-11 41 +-10 40 +-11 40 +-6 47 +-8 47 +-4 46 +-6 46 +-8 46 +-4 45 +-5 45 +-1 55 +-2 54 +-2 53 +-1 52 +-3 52 +-4 52 +-2 51 +-5 51 +-3 49 +-6 49 +-8 49 +-4 48 +-6 48 +-8 48 +5 55 +5 54 +4 54 +2 54 +1 53 +7 63 +6 63 +7 62 +1 62 +7 61 +3 61 +2 61 +0 61 +7 60 +5 60 +4 60 +7 59 +5 59 +4 58 +3 58 +2 58 +1 58 +4 56 +3 56 +2 56 +1 56 +10 61 +9 61 +10 60 +8 59 +-11 79 +-10 78 +-12 78 +-9 76 +-10 76 +-14 76 +-9 75 +-15 75 +-12 74 +-14 74 +-11 73 +-12 73 +-1 78 +-2 78 +-1 76 +-2 76 +-1 74 +-1 73 +5 79 +4 79 +2 79 +0 79 +4 78 +4 77 +3 77 +2 77 +4 76 +1 76 +4 75 +1 75 +3 74 +2 74 +1 74 +0 74 +2 80 +0 80 +38 -73 +36 -73 +34 -73 +36 -75 +39 -76 +36 -76 +39 -77 +37 -77 +43 -73 +40 -73 +43 -74 +45 -76 +43 -76 +41 -76 +46 -77 +45 -77 +44 -77 +42 -77 +37 -72 +35 -72 +34 -72 +33 -72 +43 -65 +42 -65 +41 -65 +42 -66 +41 -66 +42 -72 +40 -72 +37 -59 +36 -59 +37 -60 +36 -60 +35 -60 +38 -61 +35 -61 +38 -62 +37 -62 +35 -62 +34 -62 +35 -63 +34 -63 +44 -62 +43 -62 +44 -63 +43 -63 +41 -63 +40 -63 +43 -64 +40 -64 +37 -43 +39 -44 +37 -44 +36 -44 +39 -45 +37 -45 +36 -45 +39 -46 +40 -44 +40 -45 +41 -46 +40 -46 +30 -41 +29 -41 +31 -38 +30 -38 +30 -39 +30 -40 +29 -40 +39 -33 +38 -33 +36 -33 +35 -33 +38 -34 +38 -37 +39 -38 +38 -38 +36 -38 +35 -38 +34 -38 +33 -38 +39 -39 +37 -39 +36 -39 +33 -39 +37 -40 +33 -40 +32 -40 +46 -36 +45 -36 +46 -37 +45 -37 +43 -37 +42 -37 +45 -38 +42 -38 +45 -39 +44 -39 +42 -39 +41 -39 +40 -39 +38 -25 +36 -25 +36 -31 +35 -31 +34 -31 +39 -32 +38 -32 +36 -32 +35 -32 +35 -18 +39 -19 +38 -19 +37 -19 +36 -19 +35 -19 +37 -20 +37 -21 +35 -21 +34 -21 +39 -22 +38 -22 +35 -23 +34 -23 +38 -24 +36 -24 +46 -17 +47 -18 +46 -18 +45 -18 +44 -18 +44 -19 +40 -20 +40 -21 +40 -22 +40 -23 +41 -24 +40 -24 +49 -17 +48 -18 +31 -10 +30 -10 +29 -11 +29 -12 +31 -13 +30 -13 +29 -13 +29 -14 +31 -15 +29 -15 +28 -15 +31 -16 +39 -9 +34 -9 +34 -10 +33 -10 +32 -10 +32 -11 +39 -12 +35 -12 +34 -12 +32 -12 +38 -14 +37 -14 +35 -14 +34 -14 +33 -15 +39 -16 +33 -16 +43 -9 +42 -9 +41 -9 +40 -9 +43 -10 +47 -12 +45 -12 +47 -13 +45 -13 +44 -14 +43 -14 +41 -14 +40 -14 +47 -15 +46 -16 +44 -16 +43 -16 +50 -13 +49 -13 +49 -14 +49 -15 +48 -15 +49 -16 +38 -4 +37 -4 +38 -5 +39 -6 +38 -6 +38 -7 +38 -8 +42 -3 +40 -3 +42 -4 +40 -4 +44 -5 +43 -5 +40 -6 +44 -7 +43 -7 +41 -7 +41 -8 +36 15 +34 15 +32 15 +39 14 +33 14 +39 13 +37 13 +36 13 +35 13 +34 13 +39 12 +39 11 +37 11 +36 11 +38 10 +35 10 +37 9 +36 9 +42 15 +43 14 +41 14 +43 13 +41 13 +42 12 +39 20 +38 20 +37 19 +39 18 +38 18 +36 18 +36 17 +33 17 +39 16 +38 16 +36 16 +34 16 +32 16 +40 19 +41 16 +40 16 +34 31 +37 30 +36 30 +34 30 +32 30 +37 29 +34 29 +32 29 +39 28 +37 28 +36 28 +35 28 +38 27 +37 26 +39 25 +38 25 +44 31 +42 31 +41 31 +40 31 +42 30 +40 30 +42 29 +41 28 +40 28 +41 26 +40 26 +41 25 +31 31 +31 29 +31 32 +38 39 +37 39 +35 39 +39 38 +36 38 +35 38 +38 37 +39 36 +37 36 +36 36 +35 36 +39 35 +34 35 +39 34 +36 34 +34 34 +36 33 +35 33 +34 33 +32 33 +33 32 +41 36 +40 36 +45 35 +44 35 +42 35 +44 34 +42 34 +40 34 +45 33 +42 33 +45 32 +43 32 +39 55 +38 55 +37 55 +36 55 +35 54 +39 53 +38 53 +36 53 +34 53 +36 52 +34 52 +39 51 +34 51 +32 51 +39 50 +37 50 +36 50 +34 50 +32 50 +35 49 +39 48 +38 48 +37 48 +36 48 +40 54 +44 53 +43 53 +41 53 +44 52 +43 52 +41 52 +41 51 +41 50 +40 49 +39 46 +38 46 +39 45 +38 45 +31 51 +31 50 +37 58 +36 58 +37 57 +36 57 +39 71 +38 71 +36 71 +35 71 +34 71 +38 70 +36 70 +40 71 +38 79 +37 79 +36 79 +35 79 +34 79 +32 79 +36 78 +32 78 +39 77 +34 77 +32 77 +34 76 +35 75 +34 75 +32 75 +38 74 +34 74 +32 74 +39 73 +38 73 +37 73 +36 73 +34 73 +32 73 +33 72 +42 79 +40 79 +42 78 +40 78 +43 77 +42 77 +40 77 +40 76 +43 75 +42 75 +40 75 +42 74 +42 73 +40 73 +41 72 +31 77 +31 75 +38 82 +36 82 +39 81 +38 81 +36 81 +35 81 +34 81 +33 80 +40 81 +41 80 +74 -73 +73 -73 +72 -73 +79 -74 +76 -74 +74 -75 +73 -75 +72 -75 +79 -76 +78 -76 +77 -76 +76 -76 +74 -76 +75 -77 +79 -78 +76 -78 +79 -79 +76 -79 +75 -79 +83 -73 +82 -73 +81 -73 +84 -74 +83 -75 +82 -75 +81 -75 +81 -76 +80 -77 +80 -79 +71 -74 +79 -69 +76 -69 +75 -69 +79 -70 +76 -70 +75 -71 +79 -72 +78 -72 +77 -72 +76 -72 +74 -72 +80 -69 +80 -71 +81 -72 +79 -57 +77 -57 +75 -57 +74 -58 +73 -58 +72 -58 +79 -59 +77 -59 +76 -59 +74 -59 +76 -60 +76 -61 +74 -61 +75 -62 +74 -62 +85 -57 +81 -57 +84 -58 +83 -58 +82 -58 +82 -59 +80 -59 +80 -60 +82 -61 +80 -61 +82 -62 +81 -62 +71 -57 +75 -52 +74 -52 +76 -53 +74 -53 +76 -54 +79 -55 +77 -55 +76 -55 +74 -55 +74 -56 +73 -56 +72 -56 +82 -52 +81 -52 +82 -53 +80 -53 +80 -54 +82 -55 +80 -55 +84 -56 +83 -56 +82 -56 +76 -41 +73 -41 +76 -42 +74 -42 +72 -42 +76 -43 +73 -43 +78 -44 +76 -44 +79 -45 +77 -45 +78 -46 +83 -41 +80 -41 +84 -42 +82 -42 +80 -42 +83 -43 +80 -43 +80 -44 +78 -38 +79 -39 +77 -39 +78 -40 +76 -40 +80 -40 +79 -25 +77 -25 +76 -26 +75 -26 +74 -26 +73 -26 +76 -28 +75 -28 +74 -28 +73 -28 +79 -29 +77 -29 +79 -30 +77 -30 +76 -30 +75 -31 +74 -31 +72 -31 +73 -32 +83 -26 +82 -26 +81 -26 +80 -26 +83 -28 +82 -28 +81 -28 +80 -28 +80 -30 +84 -31 +82 -31 +81 -31 +83 -32 +73 -22 +75 -23 +74 -23 +72 -23 +79 -24 +77 -24 +76 -24 +83 -22 +84 -23 +82 -23 +81 -23 +80 -24 +77 -9 +76 -9 +82 -9 +81 -9 +77 -5 +76 -5 +79 -6 +77 -6 +78 -7 +77 -7 +79 -8 +77 -8 +82 -5 +81 -5 +81 -6 +81 -7 +80 -7 +81 -8 +77 7 +74 7 +72 7 +77 6 +76 6 +75 6 +72 6 +72 5 +75 4 +74 4 +73 4 +75 3 +86 7 +85 7 +83 7 +80 7 +85 6 +82 6 +81 6 +80 6 +85 5 +84 4 +83 4 +82 4 +82 3 +71 7 +70 14 +69 14 +69 13 +71 12 +69 12 +67 12 +66 12 +71 11 +70 11 +67 11 +67 10 +70 9 +69 9 +68 9 +70 8 +72 15 +79 14 +78 14 +77 14 +72 14 +75 13 +72 13 +73 12 +79 11 +78 11 +77 11 +76 11 +72 11 +75 10 +74 9 +76 8 +74 8 +85 15 +87 14 +85 14 +80 14 +85 13 +82 13 +86 12 +84 12 +87 11 +86 11 +85 11 +81 11 +80 11 +82 10 +87 9 +83 9 +87 8 +83 8 +81 8 +88 14 +88 13 +91 12 +90 12 +88 12 +90 11 +90 10 +89 9 +88 9 +76 23 +74 23 +74 22 +75 21 +79 20 +78 20 +77 20 +76 20 +72 20 +73 19 +75 18 +72 18 +79 17 +78 17 +77 17 +72 17 +72 16 +87 23 +83 23 +81 23 +87 22 +83 22 +82 21 +87 20 +86 20 +85 20 +81 20 +80 20 +86 19 +84 19 +85 18 +82 18 +87 17 +85 17 +80 17 +85 16 +70 23 +70 22 +69 22 +68 22 +67 21 +71 20 +70 20 +67 20 +71 19 +69 19 +67 19 +66 19 +69 18 +70 17 +69 17 +89 22 +88 22 +90 21 +90 20 +91 19 +90 19 +88 19 +88 18 +88 17 +71 24 +75 28 +75 27 +74 27 +73 27 +72 26 +77 25 +76 25 +75 25 +72 25 +77 24 +74 24 +72 24 +82 28 +84 27 +83 27 +82 27 +85 26 +85 25 +82 25 +81 25 +80 25 +86 24 +85 24 +83 24 +80 24 +79 47 +78 47 +75 47 +73 47 +72 47 +75 46 +73 46 +77 45 +76 45 +73 45 +74 44 +77 43 +76 43 +75 43 +77 42 +77 41 +79 40 +78 40 +86 47 +85 47 +84 47 +82 47 +84 46 +82 46 +84 45 +81 45 +80 45 +83 44 +82 43 +81 43 +80 43 +80 42 +80 41 +71 47 +71 50 +70 49 +70 48 +77 55 +77 54 +76 54 +75 54 +74 53 +77 52 +76 52 +73 52 +75 51 +73 51 +79 50 +78 50 +75 50 +73 50 +72 50 +77 49 +77 48 +80 55 +82 54 +81 54 +80 54 +83 53 +84 52 +81 52 +80 52 +84 51 +82 51 +86 50 +85 50 +84 50 +82 50 +87 49 +80 49 +87 48 +80 48 +79 57 +78 57 +77 56 +80 56 +76 71 +75 71 +73 71 +77 70 +72 70 +77 69 +74 69 +73 69 +75 68 +79 67 +78 67 +77 67 +75 67 +76 66 +77 65 +77 64 +76 64 +87 71 +86 71 +84 71 +82 71 +81 71 +87 70 +85 70 +80 70 +84 69 +83 69 +80 69 +82 68 +82 67 +80 67 +81 66 +80 65 +81 64 +80 64 +71 71 +70 71 +70 70 +76 79 +79 78 +78 78 +77 78 +75 78 +75 77 +77 76 +74 76 +73 76 +77 75 +72 75 +76 74 +75 74 +73 74 +73 73 +73 72 +81 79 +82 78 +80 78 +82 77 +84 76 +83 76 +80 76 +87 75 +85 75 +80 75 +87 74 +86 74 +84 74 +82 74 +81 74 +84 73 +84 72 +70 75 +71 74 +70 74 +77 81 +76 81 +77 80 +81 81 +80 81 +80 80 +-21 -41 +-20 -42 +-21 -42 +-19 -43 +-20 -43 +-17 -44 +-18 -44 +-19 -44 +-20 -44 +-18 -47 +-18 -33 +-20 -33 +-21 -33 +-22 -33 +-23 -33 +-24 -33 +-17 -34 +-18 -34 +-20 -34 +-18 -35 +-19 -35 +-22 -35 +-23 -35 +-21 -36 +-23 -36 +-23 -37 +-20 -38 +-23 -38 +-20 -39 +-22 -39 +-25 -33 +-26 -33 +-26 -34 +-22 -28 +-21 -29 +-23 -29 +-21 -30 +-23 -30 +-20 -31 +-21 -31 +-23 -31 +-24 -31 +-18 -32 +14 -33 +15 -34 +15 -35 +14 -35 +14 -36 +9 -36 +15 -37 +13 -37 +12 -37 +11 -37 +10 -37 +9 -37 +8 -37 +15 -38 +11 -38 +9 -38 +12 -40 +11 -40 +-12 -41 +-12 -42 +-13 -42 +-13 -43 +-14 -43 +-13 -44 +-14 -44 +-15 -44 +-16 -44 +-15 -47 +14 -42 +13 -42 +11 -42 +10 -42 +8 -42 +15 -43 +9 -43 +15 -44 +14 -44 +12 -44 +9 -46 diff --git a/programs/demos/life2/lif/OSCSP4X.lif b/programs/demos/life2/lif/OSCSP4X.lif new file mode 100644 index 000000000..1bed3e1bc --- /dev/null +++ b/programs/demos/life2/lif/OSCSP4X.lif @@ -0,0 +1,654 @@ +#Life 1.05 +#D Extensible p4 oscillators +#D +#D By Dean Hickerson's Apple IIe search program, +#D Bill Gosper, Bob Wainwright, various. +#N +#P -103 -55 +..**.*..*.** +..*........* +...**....** +***..****..*** +*..*......*..* +.**........** +#P -103 -46 +.......* +..**.*...*.** +..*.........* +...**.....** +***..*****..*** +*..*.......*..* +.**.........** +#P -103 -36 +.......** +..**.*....*.** +..*..........* +...**......** +***..******..*** +*..*........*..* +.**..........** +#P -103 -24 +........**..**..** +........**..**..** +. +..**.*..............*.** +..*....................* +...**................** +***..****************..*** +*..*..................*..* +.**....................** +........**..**..** +........**..**..** +#P -82 -60 +..........* +.........*.* +.........*.* +........**.**.*** +. +..**..............* +..*..************** +...**.............* +***...............** +*..*.*............** +.** +........**.**.*** +.........*.* +.........*.* +..........* +#P -72 -40 +...**....** +..**..**..** +.*..........* +*............* +.*.*......*.* +....****** +. +..*........* +..*.*....*.* +.*.*......*.* +...*......* +#P -73 -24 +.......**.** +...**..**.**..** +..**...........** +.*...............* +*.................* +.*.*...........*.* +....*********** +. +..*.............* +..*.*..**.**..*.* +.*.*...**.**...*.* +...*...........* +#P -71 -7 +...**....** +..**..**..** +.*..........* +*............* +.*.*......*.* +....****** +. +. +....****** +.*.*......*.* +*............* +.*..........* +..**..**..** +...**....** +#P -99 27 +...** +..*..* +.*....* +*......* +*......* +.*....* +..*..* +...** +#P -104 26 +** +.* +.*.* +..** +#P -104 32 +..** +.*.* +.* +** +#P -100 22 +* +*** +...* +..** +#P -94 22 +...* +.*** +* +** +#P -100 36 +..** +...* +*** +* +#P -94 36 +** +* +.*** +...* +#P -90 26 +....** +....* +..*.* +.*.* +** +#P -87 32 +** +* +.*** +...* +#P -99 47 +...*** +..*...* +.*.....* +*.......* +*.......* +*.......* +.*.....* +..*...* +...*** +#P -96 44 +*** +.* +#P -104 46 +** +.* +.*.* +..** +#P -104 53 +..** +.*.* +.* +** +#P -89 48 +.*** +*** +#P -89 53 +*** +.*** +#P -98 57 +.*...* +*.....* +******* +. +..*** +..*..* +....** +#P -74 26 +...**** +..*....* +.*......* +*........* +*........* +*........* +*........* +.*......* +..*....* +...**** +#P -70 23 +** +** +#P -77 30 +** +** +#P -70 37 +** +** +#P -63 30 +** +** +#P -72 48 +...***** +..*.....* +.*.......* +*.........* +*....*....* +*...*.*...* +*....*....* +*.........* +.*.......* +..*.....* +...***** +#P -71 43 +* +** +** +.* +#P -77 51 +..* +*..* +* +*..* +..* +#P -64 43 +.* +** +** +* +#P -60 49 +.*** +*** +#P -69 60 +.* +** +#P -64 60 +** +* +.*** +...* +#P -60 56 +** +*.* +..* +..** +#P -35 -54 +** +**.**..**.****.**..**.**** +.*..*..*..*..*..*..*..*..* +.**.****.**..**.****.**..** +#P -8 -53 +** +.* +.** +.** +#P -37 -41 +...* +...** +*..**....* +***..*.*..** +.....*.*..*** +***..*.*..** +*..**....* +...** +...* +#P -23 -37 +...*.....* +.**..*.*..** +***..*.*..*** +.**..*.*..** +...*.....* +#P -10 -38 +** +.*..* +.*.*.* +.*.*.* +.*.** +.* +** +#P -36 -22 +......** +. +..**.*..* +*..*.**** +**.* +...* +...** +#P -26 -23 +....*......*......* +....**.....**.....** +*.*.**.*.*.**.*.*.**.* +*....*.*....*.*....*.*.* +#P -1 -22 +**.*...*....**.*....*...**.* +...*...**......*...**......* +*....****.*.*....*.****.* +.**.....*....**....*.....** +#P 28 -21 +.** +*.* +..* +#P 32 -23 +** +* +*.** +* +*.* +* +#P 7 -58 +...**..* +..*.****** +..*.......* +**.***.*.* +.*.*.***.* +.*.*.* +**.**.**** +..* +..*.**.**** +...*.*.*..* +#P 18 -54 +*...* +***** +*...* +.*.** +.*.* +.*.* +..* +#P 26 -55 +..* +.*.* +.*.* +**.** +*...* +***** +*...* +#P 34 -54 +*...* +***** +*...* +**.** +.*.* +.*.* +..* +#P 42 -55 +..* +.*.* +.*.* +**.** +*...* +***** +*...* +#P 50 -54 +*...* +***** +*...* +**.* +.*.* +.*.* +..* +#P 55 -58 +...*..** +.******.* +*.......* +.*.*.***.** +.*.***.*.* +.....*.*.* +.****.**.** +........* +****.**.* +*..*.*.* +#P 5 -41 +......** +.......* +.....* +..*..** +*..*.* +*..*.* +.*....*** +......* +.......** +........* +......*.* +......** +#P 15 -38 +..**.**.....**.**.....** +...*.*.......*.*.......* +...*.*.......*.*.*.....* +***...***.***..*.*..*** +..*...*.....*..*..*...* +**.....**.**.....**.** +*.......*.*.......*.* +*.*...*.*.*.*...*.*.*.* +.**...**...**...**...** +#P 40 -39 +.**........** +*.*....**.*.*....**.** +*.......*.*.......*.* +**......*.**......*.* +..*..***..*....***...*** +.***...*..**.*...*...* +.*.*.**......*.**.....** +...*.*.......*.*.......* +..**.*.*....**.*.*...*.* +......**........**...** +#P 65 -41 +.** +.* +...* +..**..* +...*.*..* +.*.*.*..* +.*.*...* +*..* +** +* +*.* +.** +#P -36 -5 +* +*** +...* +..* +..*...* +......* +...*..* +...**.* +......* +......* +.....** +#P -28 -7 +.*.**..*.**..*.** +.**.*..**.*..**.* +. +.***...***...*** +*...*.*...*.*...* +*...*.*...*.*...* +*...*.*...*.*...* +. +*...*.*...*.*...* +*...*.*...*.*...* +*...*.*...*.*...* +.***...***...*** +. +.**.*..**.*..**.* +.*.**..*.**..*.** +#P -10 -8 +......* +.....*.* +......* +...*.....* +.*********** +*...........* +*..**...**..* +*...*...*...* +....*...* +*...*...*...* +*..**...**..* +*...........* +.*********** +...*.....* +......* +.....*.* +......* +#P 4 -8 +......* +.....*.* +......* +...*.....* +.*********** +*...........* +*..**...**..* +*...*...*...* +....*...* +*...*...*...* +*..**...**..* +*...........* +.*********** +...*.....* +......* +.....*.* +......* +#P 18 -8 +......* +.....*.*....** +......*.....* +...*.....*...* +.************.* +*...........*.* +*..**...**..*.*.** +*...*...*...*.*.** +....*...*.....* +*...*...*...*.*.** +*..**...**..*.*.** +*...........*.* +.************.* +...*.....*...* +......*.....* +.....*.*....** +......* +#P 51 -19 +....**..**..**..**..** +....**..**..**..**..** +. +..********************** +.*...*......*......*....* +*.**...*.**...*.**...*.*.* +*.*.*...**.*...**.*...**.* +.*....*......*......*...* +..********************** +. +....**..**..**..**..** +....**..**..**..**..** +#P 51 0 +...**..**..**..**..**..** +...**..**..**..**..**..** +. +.************************** +*..*.....*.....*.....*.....* +***.*...*.*...*.*...*.*...** +...*.....*.....*.....* +**************************** +*..........................* +...**..**..**..**..**..** +...**..**..**..**..**..** +#P 38 21 +........**.....................** +...**..*.*.....................*.*..** +...*...*....*.*..*..*..*..*.*....*...* +....***.*****.*************.*****.*** +......*.........................* +....**..************************..*** +...*.*.....*....*....*....*....*.....*.** +...*.**.....*....*....*....*...**....*.** +**.*....**...*....*....*....*.....**.* +**.*.....*....*....*....*....*.....*.* +....***..************************..** +........*.........................* +....***.*****.*************.*****.*** +...*...*....*.*..*..*..*..*.*....*...* +...**..*.*.....................*.*..** +........**.....................** +#P -1 24 +....*...** +...*.*.*..* +...*.*.**.* +.***.*..*.** +*.....***.*..* +.***...*....** +....*.* +.**.*.* +*.**.***** +*....*..*.** +.****...**** +...*........** +.....*......** +....**......** +............** +#P 13 39 +**** +**** +#P 17 41 +** +** +** +** +#P 19 45 +****.*..*.* +**.*.*..*.* +..**.*..*..* +....*....*.* +..*.*....*..* +.**........* +.** +..*.* +..*.* +..*..* +..*..* +.....* +#P -25 24 +** +* +. +** +..*....*** +...*..*** +....* +....* +....* +....* +....* +.*..* +...* +.*.*.* +*.*.** +*.* +.** +#P -49 23 +............**..**.** +.......**...**..**.** +........* +. +.......***************** +......* +.....* +.*..* +.**.*...**..**..**..*.** +....*...*...**..**..**.* +....*....* +*...*...** +*...* +*...* +....*...** +....*...**...** +.**.*.......*..* +.*..*..........* +.....* +......*........* +.......********.*.** +#P -42 45 +.* +** +#P -40 49 +**.* +*.** +#P -37 54 +** +* +#P -34 44 +*....* +*....* +*...* +* +* +*....** +*....** +* +*....**..**.** +*....**..**.**..** +*................** +*..................* +.*..................* +..*..............*.* +...************** +. +....*.............* +...**...**..**..*.* +........**..**...*.* +.................* diff --git a/programs/demos/life2/lif/OSCSP5.lif b/programs/demos/life2/lif/OSCSP5.lif new file mode 100644 index 000000000..7a62dcd87 --- /dev/null +++ b/programs/demos/life2/lif/OSCSP5.lif @@ -0,0 +1,630 @@ +#Life 1.05 +#D Period 5 oscillators, arranged by symmetry +#D +#D By Sol Goodman, Arthur Taber, Achim +#D Flammenkamp, Dean Hickerson, David +#D Buckingham, Noam Elkies, others. +#N +#P -82 -62 +.......** +......*..* +.....*..* +....*.**.*** +.*..*....*..*.* +*.*.*...**.*.** +.*..*....*.* +....*.****.* +.....*....* +......*** +........** +#P -64 -65 +.....**.** +.....**.** +..*.........* +..*********** +. +....*...*** +...*.*.....* +...**...**.* +.**..*......** +*..**...****..* +.**.........** +...********* +...*.......* +.....**** +....**..* +#P -44 -63 +** +.* +.*.* +..**....** +.........* +.....**** +.....* +..*...*** +..****..* +.....* +....* +....** +#P -27 -63 +** +.* +.*.* +..**....** +.........* +.....**** +......* +.......** +........* +.......* +.......** +#P -84 -47 +.....**.** +.....**.** +..*.........* +..*********** +. +....*...*** +...*.*.....* +...**...**.* +.**...*.....** +*..*********..* +**...........** +.....**.** +.....**.** +#P -66 -46 +....* +...*.* +...*.* +..**.** +*.......* +***...*** +. +********* +*.......* +...**** +...*..** +#P -48 -44 +...**.* +....**.* +..*....* +.*.****.** +.*....*.*.* +**.*...**.* +.*....*.*..** +.*.****.***..* +..*....*....** +....**..* +...**.** +#P -28 -46 +......* +....*...* +. +...*.....* +.***.***.*** +*...**.**...* +*.***.*.**** +.* +...*.*.*.**.* +..**.***.*.** +...*.*..* +...*..** +..** +#P -81 -29 +.* +*..*** +..* +...*.*..* +..**.**** +....* +....*.* +.....** +#P -65 -29 +...** +...* +.....* +.****.* +*....* +*..** +....* +.*...** +...**.*** +....*....* +....*.*** +.....** +#P -46 -29 +.....* +....*.* +....** +..** +.*...*** +*..**...*.* +.**....*.** +...*.*.* +...*...* +....*** +......*.* +.......** +#P -26 -28 +....* +..*** +.* +.*..*** +**.*...* +.*.*...* +*..*...*.** +.**.**.*.* +..*...*..* +..*.*.*.* +...**.** +#P -82 2 +** +* +..** +. +...*.* +. +.....*.* +. +.......*.* +.........* +...........* +..........** +#P -64 3 +...** +...* +**.* +*..**.* +.**....* +...*.* +...*...*..* +....**.**** +......* +......*.* +.......** +#P -48 3 +**.....* +*..*..*.* +.***...*.* +........* +.**** +.*...* +..*..*.** +...*.*.* +....**.*.* +........** +#P -33 2 +....*....* +...*.*..*.* +*..**....*.* +***...*...* +...**** +..*....** +...**..*..* +.....*.*.*.* +.....*.*.** +......*.* +........* +........** +#P -84 21 +.....** +....*.* +.*..*.** +*.*.*...* +.*..*...*** +....*.....* +.....***** +. +.......* +......*.* +.......* +#P -69 19 +......** +.....*..* +....*.** +.*..*.* +*.*.*.* +.*..*...* +....*.*..*...* +.....**.....*.* +.......**.***.* +.......*.....* +........***** +. +..........* +.........*.* +..........* +#P -48 20 +** +*..***...* +.**.....*.* +......*..*.* +......*...*.* +.**........* +*..*** +**.......** +.......*....* +.......*....* +.......*....* +........*..* +......*.*..*.* +......**....** +#P -27 21 +..........**.** +...........*.*.* +...........*..** +........*.** +.......*....**** +.......*....*..* +......** +......**....* +........**** +...***..** +......* +...*..* +....*.* +.** +*.* +** +#P -82 47 +.........** +.........* +..........* +.........** +........* +.......*.**** +.......*.....* +.....**....**.* +....*.......*.* +**.*.*........*.**.* +*.**.*........*.*.** +.....*.*.......* +.....*.**....** +......*.....* +.......****.* +...........* +.........** +.........* +..........* +.........** +#P -58 49 +.............* +...........*** +..........* +.........*.***** +.........*.*....* +......**.*..**..* +.....*.*.*.*..*.*.** +.....**..*....*.*.* +.........*...*.**.* +...******........* +..*........****** +.*.**.*...* +.*.*.*....*..** +**.*.*..*.*.*.* +...*..**..*.** +...*....*.* +....*****.* +.........* +......*** +......* +#P -36 50 +...........** +..........*.* +........*** +.......*...* +......*.**** +......* +....**....**.....** +...*.....*..*.**..* +..*.*.......*.*.** +..*.*..*...*..*.* +.**.*.*.......*.* +*..**.*..*.....* +**.....**....** +............* +.......****.* +.......*...* +........*** +......*.* +......** +#P 6 -61 +...** +.*....* +.*....* +.*....* +..*..* +*.*..*.* +**....** +#P 18 -68 +....................**...** +....................*.*.*.* +......................*.* +......................*.* +......................*.* +...............**....*...*....** +...............*....*.....*....* +................****.......**** +. +.......**.....****...........****.....** +**.....*.*...*....*.........*....*...*.*.....** +.*......*...*....**.........**....*...*......* +.*.**......*.......................*......**.* +..*...*....*.......................*....*...* +....*.*.**.*.......................*.**.*.* +....*.*..*.*.*...................*.*.*..*.* +..*.*.**.*..**...................**..*.**.*.* +..**.....*...........................*.....** +.........**.........................** +#P 4 -44 +.....* +....*.* +.....* +. +...***** +..*..*..* +.*.**.**.* +.*.*...*.* +**.*...*.** +*..*.*.*..* +..*.....* +...***** +.....* +#P 18 -45 +....*..* +. +...*....* +.***.**.*** +*...*..*...* +.****..**** +. +.**.*..*.** +.*........* +..***..*** +....*..* +****.**.**** +*..*....*..* +. +....*..* +#P 33 -47 +.......* +.......* +. +..*..*.*.*..* +..*********** +. +.*.**.....**.* +*.**.*...*.**.* +*....*...*....* +.***.**.**.*** +..*...*.*...* +*...**...**...* +****.**.**.**** +...*.......* +**.*.*.*.*.*.** +**.*.*.*.*.*.** +....***.*** +......*** +#P 52 -41 +.....*.* +...***.*** +*.*.......*.* +**.*.....*.** +...*.....* +...*.***.* +....*...* +.....*.* +....**.** +#P 1 -17 +......* +....***** +...*.....* +...*.****.* +.***......*** +*....*..*....* +.***......*** +...*.****.* +....*.....* +.....***** +.......* +#P 19 -18 +.....* +.....*** +..*.....*.** +..*****.*.* +**......*.* +.*.*......** +.*.*.***** +**.*.....* +....*** +......* +#P 38 -19 +.....**...* +.....*.*.*.* +**.....*.*..* +*.*...**.*** +..* +..***....*** +...........* +..***.**...*.* +.*..*.*.....** +..*.*.*.* +...*...** +#P 57 -19 +...* +...*** +......* +.***.*.* +*..*.*.*** +.*........* +..***.*.*..* +....*.*.*** +.....* +......*** +........* +#P 2 2 +.......*..* +..*..*.*..*.*..* +..************** +. +************** +*..*.*..*.*..* +.....*..* +#P 24 -3 +......** +......** +. +. +......***..** +..**.*......* +*..*.*....*.*.** +**.*.*....*.*..* +...*......*.** +...**..*** +. +. +........** +........** +#P 44 -2 +...........** +...**.....*.* +...*.*....* +.....*...**.* +...*.**.....*** +.***.....*.*...* +*...*.*.....*** +.***.....**.* +...*.**...* +.....*....*.* +...*.*.....** +...** +#P 63 -1 +** +.* +.*.* +..** +......** +......* +......* +.....** +..........** +..........* +..........* +.........** +..............** +..............* +..............* +.............** +.................** +.................*.* +...................* +...................** +#P 3 16 +......** +.......***...** +.....*....*..* +....*.****.*.* +.*..*......*..** +*.*.*..*.*..*.*.* +.**..*......*..* +...*.*.****.* +...*..*....* +..**...*** +.........** +#P 24 15 +.......* +.......*** +..........* +.....***..*..** +....*.*.*.*.*.* +....*...*.*.* +.**.*.*.*.*.** +..*.*.*...* +*.*.*.*.*.* +**..*..*** +....* +.....*** +.......* +#P 44 15 +.....** +......*.....** +.....*...*..* +....*.****...* +.*..*.....***.* +*.*.*..**.....*..* +.*..*.....**..*.*.* +....*.***.....*..* +.....*...****.* +......*..*...* +.....**.....* +............** +#P 55 35 +....**......** +...*.*......*.* +...*..........* +**.*..........*.** +**.*.*..**..*.*.** +...*.*.*..*.*.* +...*.*.*..*.*.* +**.*.*..**..*.*.** +**.*..........*.** +...*..........* +...*.*......*.* +....**......** +#P 8 54 +....** +...*..* +...*.*...* +..**.******* +...*........* +...*.....**.* +.*.*.....*.* +*.**.....* +*........* +.*******.** +...*...*.* +......*..* +.......** +#P 24 51 +.........** +........*..* +........*** +. +......******* +.....*.......* +....*.***.***.* +.*..*.*.....*.* +*.*.*.*.....*.*.** +*.*.*.........*.*.* +.**.*.*.....*.*.*.* +....*.*.....*.*..* +....*.***.***.* +.....*.......* +......******* +. +........*** +.......*..* +........** +#P 46 55 +....** +....*..*.** +.**.*.**.** +.**.* +....*..****** +.**.*.......* +..*.......* +*.......*.** +******..* +........*.** +..**.**.*.** +..**.*..* +.......** +#P 69 57 +...** +..*..* +.*....* +*......* +*......* +.*....* +..*..* +...** diff --git a/programs/demos/life2/lif/OSCSP6.lif b/programs/demos/life2/lif/OSCSP6.lif new file mode 100644 index 000000000..bfb186c82 --- /dev/null +++ b/programs/demos/life2/lif/OSCSP6.lif @@ -0,0 +1,380 @@ +#Life 1.05 +#D Period 6 oscillators, arranged by symmetry +#D +#D By David Buckingham, Dean Hickerson, various. +#N +#P -71 -40 +.....** +.....** +. +.....**** +....*....* +.*..*...** +*.*.*...* +.*..*.*.* +....*.** +.....* +...*.* +...** +#P -54 -40 +......** +......** +. +....**** +...*....* +...*...*..* +**.*.*.*.** +*.*..*.* +...***.* +......* +.....* +.....** +#P -71 -19 +..........* +........*** +.......* +.......** +** +*..** +.*.*..** +**.*.*.*** +....**....* +......**** +......* +.......* +......** +#P -76 4 +...* +...***.**..** +......**.*..* +*..**....*.* +****.****.*.*** +.....*....*....* +..**...*..**..** +..*...*......*.*.** +...****.******.*.* +.......*......*..* +.....*.*..**..*.* +.....**...**...* +#P -76 23 +.** +.** +. +.****...........** +*...*..........*.* +**.........**..* +.**........*.*.** +.**..........*.* +.*.*..*..*..**.* +..*..*....*..** +.....*....* +.....*....*..** +.***..*..*..**.* +***..........*.* +...........*.*.** +...........**..* +...............*.* +................** +#P -43 -9 +....** +**.* +**..*..* +.....*.* +......* +. +.....** +.....** +#P -47 6 +.** +..*.....** +..*.**.* +.**.**..*..* +..*......*.* +*.*.**....* +**..* +....*..*.** +.....***.** +. +.......****** +......*..*..* +......** +#P -49 25 +......** +.......* +.......*.**.**.* +........*.*.*.** +.........* +. +*.......* +***.....**..** +...*..**....*.* +..*.*..*......* +..**..........** +. +..**...** +..*....* +...*....*** +..**......* +#P -20 -41 +...* +..*.* +....** +....* +...*.* +......* +..* +.***...* +***.*** +. +..*..* +. +.***.*** +*...*** +.....* +.* +..*.* +...* +..** +...*.* +....* +#P -7 -41 +....* +...*.* +...*.* +...* +..**.* +.....* +. +..*** +...** +. +***..*** +. +...** +...*** +. +..* +..*.** +....* +..*.* +..*.* +...* +#P 6 -41 +....*.......* +...*.*.....*.* +...*.*.....*.* +.***.**...**.*** +*...............* +.****.....**.*** +...*.**...**.* +. +........** +........* +........* +.......** +. +...*.**...**.* +.***.**.....**** +*...............* +.***.**...**.*** +...*.*.....*.* +...*.*.....*.* +....*.......* +#P -22 -8 +....**.** +.....*.** +..** +.....*.** +.*...*..* +....**.* +..* +*.* +** +#P -22 10 +.....**...** +....*.*...*.* +.....*.....* +. +. +......**.** +...**..*.*..** +.***.*.*.*.*.*** +*....**...**....* +.****.......**** +....*.......* +...*.........* +...**.......** +#P -24 28 +....*...........* +...*.*.........*.* +...*.*.........*.* +.***.**.......**.*** +*...................* +.***.**.......**.*** +...*.**.......**.* +. +.......**...** +......*.*...*.* +....***.......*** +...*...*******...* +...**..*.....*..** +..........* +.........*.* +..........* +#P 4 10 +.....* +....*.* +....*.* +**.**.**.** +*....*....* +.***...*** +...*.*.* +. +..*.....* +..*..*..* +...*...* +***.....*** +*.........* +#P 4 28 +...**.** +...**.** +. +.********* +*....*....* +.***...*** +...*.*.* +. +..*.....* +..*..*..* +...*...* +***.....*** +*.........* +#P 0 -10 +..*** +. +..**..**.* +..*....*.* +.........* +* +*.*....* +*.**..** +. +.....*** +#P 36 -40 +.....* +.....* +....*** +. +....*** +. +**..***..** +*.*..*..*.* +.*.......* +. +.*.......* +*.*..*..*.* +**..***..** +. +....*** +. +....*** +.....* +.....* +#P 50 -39 +.....* +....*.* +....*.* +**.**.**.** +*....*....* +.***...*** +...*.*.* +. +. +. +. +...*.*.* +.***...*** +*....*....* +**.**.**.** +....*.* +....*.* +.....* +#P 23 -10 +.....** +..*..*.* +.*.*.*.* +..*..*.*** +..........* +****...**** +* +.***.*..* +...*.*.*.* +...*.*..* +....** +#P 39 -10 +....*** +..* +.*.*.* +..*..*...* +*.....**.* +*.**.....* +*...*..* +....*.*.* +.......* +...*** +#P 56 -10 +....** +...*..* +...**** +.*.*..*.* +*........* +*........* +.*.*..*.* +...**** +...*..* +....** +#P 22 15 +.............* +.............* +............*** +. +............*** +............*** +..........**.*.** +...........**.** +.........*.......* +........*..**.**..* +......*.....*.*.....* +......**.*..*.*..*.** +..*.**.*.***...***.*.**.* +***.***.............***.*** +..*.**.*.***...***.*.**.* +......**.*..*.*..*.** +......*.....*.*.....* +........*..**.**..* +.........*.......* +...........**.** +..........**.*.** +............*** +............*** +. +............*** +.............* +.............* +#P 53 21 +....**....** +...*..*..*..* +...*...**...* +.**...*..*...** +*....*....*....* +*...*......*...* +.*.*........*.* +..*....**....* +..*....**....* +.*.*........*.* +*...*......*...* +*....*....*....* +.**...*..*...** +...*...**...* +...*..*..*..* +....**....** diff --git a/programs/demos/life2/lif/OSCSP6X.lif b/programs/demos/life2/lif/OSCSP6X.lif new file mode 100644 index 000000000..65a85f195 --- /dev/null +++ b/programs/demos/life2/lif/OSCSP6X.lif @@ -0,0 +1,136 @@ +#Life 1.05 +#D Extensible period 6 oscillators +#N +#P -23 -38 +.** +.** +. +.* +*.* +*..*..** +....*.** +..** +#P -23 -25 +..** +..**..** +**.*..** +*** +. +. +.** +.** +#P -16 -29 +*.*..*.**.*..*.**.*..*.* +*.****.**.****.**.****.* +*.*..*.**.*..*.**.*..*.* +#P 7 -38 +.....** +.....** +. +......* +.....*.* +**..*..* +**.* +....** +#P 7 -25 +....** +**..** +**..*.** +.....*** +. +. +.....** +.....** +#P -31 2 +.....** +.....** +.....** +......* +.....*.* +***.*.* +****.* +....* +#P -19 -10 +.....** +.....*..* +. +. +.....*.** +**..*.* +*....* +....* +.*..* +#P -21 0 +.** +* +.** +..* +...* +....** +.....* +......* +.......**.* +........*.* +.........* +#P -11 10 +.** +* +.** +..* +...* +....** +.....* +......* +.......**.* +........*.** +.........*** +#P 1 21 +** +*** +* +.** +..* +...* +....** +.....* +......* +.......**.* +........*.* +.........*..* +..........** +#P 13 33 +..* +...* +* +*..* +.*.** +..**.* +....*.* +....*..* +.....*..* +.........* +..........* +........*..* +............* +.............* +...........*..* +............** +#P 30 39 +..** +....*.** +*..*..** +*.* +.* +. +.** +.** +#P 17 50 +.....** +....**** +...*..*.* +..*.*..** +.*.* +** +*** +.*.* +..** diff --git a/programs/demos/life2/lif/OSCSP7-9.lif b/programs/demos/life2/lif/OSCSP7-9.lif new file mode 100644 index 000000000..3d3e2c0db --- /dev/null +++ b/programs/demos/life2/lif/OSCSP7-9.lif @@ -0,0 +1,1106 @@ +#Life 1.05 +#D Various oscillators of periods 7 to 9 +#D +#D Found by: Hickerson's Apple IIe search program, +#D Arthur Taber, David Buckingham, John Conway, +#D Don Woods, Bill Gosper, George Collins Jr., +#D Dean Hickerson, Jan Kok, Mark Niemiec, +#D Sol Goodman, Bob Wainwright, Achim Flammenkamp, +#D Tim Coe, others. +#N +#P -78 -81 +*.** +**.* +....** +.....* +....* +....** +..** +...* +..* +..** +** +.* +* +** +#P -64 -81 +.....* +....*.* +...*.*.* +...*.*.* +**.*...*.** +*.*....*.** +...**** +. +.....** +.....** +#P -48 -84 +.....** +.....** +. +.....**** +....*....* +.*..*...*.* +*.*.*.*.*.*..* +.*..*.*.*.*.*.* +....*.*...*..* +.....*....* +......**** +. +........** +........** +#P -28 -83 +.....** +.....* +......* +...***.*.** +..*..*.*.*..* +...***.*.*.** +***....*.* +*..*.*.*.* +...*....* +....**** +. +......** +......** +#P -11 -81 +....*.........* +...*.*.......*.* +...*.*.......*.* +**.*.**.....**.*.** +*.**..*.....*..**.* +....**.......** +....*..*...*..* +.....***...*** +. +....*.**...**.* +....**.*...*.** +#P 16 -79 +.......** +......*..* +.......*.* +....***.*.** +...*....*.*.* +...*..***...* +**.*.....*** +.*..**.*.* +.*....** +..***...* +....**.** +#P 34 -81 +........** +.........* +...**...*...* +..*..*.*.**** +..*.**.* +.**....*.*.** +*..***.*....* +.**....*.** +...*****.* +...*....*..* +....***.*.** +......*.* +.......** +#P 50 -81 +..........** +.........*..* +......*...*..* +...*..****.**.* +.***.....*.*..* +*...****..*..* +*.*....*.*.*..*** +.***.**...****..* +.......***...* +.******...*** +.*......** +...*.***..* +..**.*...** +#P 76 -82 +....** +.....* +...* +...***** +.......* +...**......*..** +..*..*....*.*..* +.*.**......**.* +*..*.*....*..* +**..*......** +........* +........***** +............* +..........* +..........** +#P 102 -82 +.....**.** +....*.*.*.*.** +...*......*.* +..*.*****.*..* +..*........*.* +**.***...***.** +.*.*........* +.*..*.*****.* +..*.*......* +.**.*.*.*.* +.....**.** +#P -62 -61 +....* +...*.* +...*.* +**.*.**..* +**.*.*..*.* +...*.****.* +...*......** +....****** +.........* +......*** +......* +#P -48 -61 +....* +...*.* +...*.* +**.*.** +*.** +....** +....*..* +.....*** +........** +.....**.*...* +.....**.*.*.*** +.........**....* +...........**** +...........* +............* +...........** +#P -27 -60 +.......*..* +.......**** +. +.....******** +....*........* +...*.***...**.* +...*.*......*.* +**.*.*........*.** +.*.*..........*.* +.*.*..........*.* +**.*........*.*.** +...*.*......*.* +...*.**...***.* +....*........* +.....******** +. +.......**** +.......*..* +#P -5 -61 +......**.......** +......**.......** +. +......****...**** +.....*....*.*....* +....*.*..**.**..*.* +.*..*.*.........*.*..* +*.*.*.*..**.**..*.*.*.* +.*..*.*.........*.*..* +....*.*..**.**..*.* +.....*....*.*....* +......****...**** +. +......**.......** +......**.......** +#P 25 -64 +.....** +......*..*..*....** +....*....******..* +...*.****......*.* +...*.*..*..*.***.*.* +**.*.*.*.*..*..*.*.** +*..****...*.*.**.* +..*....****.*.*..* +...****....**.*.* +.....*..**.....* +.......**.***** +............* +#P 49 -62 +........*..** +......***..* +*.**.*......* +**.*.*..***** +...*.*.* +...*.*..***** +**.*.*.*.....* +.*..*.*.*.*..* +.*.....*.*.*.** +..*****..*.* +.......*.*.* +..*****..*.*.** +..*......*.**.* +...*..*** +..**..* +#P 77 -61 +....**.**..** +.....*.*..*.* +**...*...** +*..**.***..* +.**.*....***..* +..*.*.......*** +*..*.......* +**.*.......*.** +...*.......*..* +***.......*.* +*..***....*.** +...*..***.**..* +....**...*...** +..*.*..*.* +..**..**.** +#P 100 -64 +.......**.** +........*.* +.......*...* +...**.*.***.*.** +...**.*.....*.** +......*.....* +...***.......*** +*.*.............*.* +**.*.....*.....*.** +...*....*.*....* +**.*.....*.....*.** +*.*.............*.* +...***.......*** +......*.....* +...**.*.....*.** +...**.*.***.*.** +.......*...* +........*.* +.......**.** +#P -80 -32 +..**.* +..*.** +**....** +*.....* +.*.....* +**....** +..**.* +..*.** +**....** +*.....* +.*.....* +**....** +..**.* +..*.** +#P -64 -30 +.** +.** +. +. +** +**.* +...* +...* +*..* +.** +#P -52 -31 +....** +....** +. +. +...*** +..* +.**..* +.*.* +. +. +** +** +#P -39 -28 +...*** +...*** +...*** +*** +*** +*** +#P -28 -32 +...*..* +.......* +........** +..*.**......* +..*..*...* +.*...*.*** +*...........* +...***.*...* +...*...*..* +*......**.* +...** +.....* +......*..* +#P -7 -33 +........* +.......*.* +........* +. +......***** +.....*....* +....*..* +.*..*.** +*.*.*....** +.*..*...*..*..** +....**..*.*....*..* +.........*.....*.*.* +............**.*..* +............**.* +.........*....* +.........***** +. +...........* +..........*.* +...........* +#P 21 -32 +....**......** +...*..*....*..* +...*.*.*..*.*.* +.**..*.****.*..** +*.....*....*.....* +*.**..........**.* +.*..*........*..* +..**..........** +...*..........* +...*..........* +..**..........** +.*..*........*..* +*.**..........**.* +*.....*....*.....* +.**..*.****.*..** +...*.*.*..*.*.* +...*..*....*..* +....**......** +#P 44 -31 +.......**..** +........*..* +...**.*......*.** +....*.**....**.* +.*..*..........*..* +*.*.**.*....*.**.*.* +.*..*..........*..* +....*.**....**.* +...**.*......*.** +........*..* +.......**..** +#P 68 -34 +....* +....*** +.......* +......**.........** +.................* +...............*.* +........***....** +.......*...* +......*.....* +.......*...* +..**....*** +.*.* +.* +**.........** +...........* +............*** +..............* +#P 92 -31 +.....** +..**..* +*..*.* +**...** +....*...** +...*.****.* +...*......* +.**..**..* +..*.*.....*** +..*..*****..* +.**.......* +.......*** +.......* +#P -64 -12 +**...........** +*.*.........*.* +.*........*** +.........*...* +**...*...***** +**.***...** +.....*...***** +.........*...* +.*........*** +*.*.........*.* +**...........** +#P -44 -12 +.* +.***........** +....*.......* +...*......*.* +...*...*..** +........* +.....*..* +......*** +. +..** +.*.*.....** +.*.......* +**........*** +............* +#P -26 -11 +.....* +....*.* +.....* +. +...***** +*.*.....*.* +**.*...*.** +...*...* +...*...* +....*** +. +....**.* +....*.** +#P -10 -10 +....*.** +....**.* +. +....*** +**.*.*.*.** +**.*...*.** +...*...* +...*...* +....*** +. +...*.** +...**.* +#P 6 -10 +...** +...** +. +.****** +*......* +***...** +. +******** +*......* +...** +...** +#P 20 -10 +........*** +. +. +..**.*.......*.** +..*.............* +...**.........** +***..*********..*** +*..*...........*..* +.**.............** +. +........*** +#P 44 -9 +.......* +.....***** +....*.....* +.*..*..***.* +*.*.*.*....*..* +.*..*....*.*.*.* +....*.***..*..* +.....*.....* +......***** +........* +#P 64 -12 +.......** +........* +.......* +.......**** +.....**....* +....*.*.*** +.*..*..**....* +*.*.*.......*.* +.*..*.......*.* +....*.*....**.*.** +.....**....*..**.* +.......**...** +.......*.....* +........***** +. +..........* +.........*.* +..........* +#P 89 -10 +.....**.** +.**...*.** +..*..* +*....*.*** +*****.*...* +....*.*.*.* +***..**.*.** +*....*...* +..**.*.*.* +...*.*.** +...*.* +....** +#P -64 12 +....**...** +...*.*...*.* +...*.......* +**.**.....**.** +**.*...*...*.** +...*.*...*.* +...*.*...*.* +..**.*...*.** +...*..***..* +...*.......*.* +....***.....** +......* +#P -46 12 +....**...** +...*.*...*.* +...*.......* +**.**.....**.** +**.*.......*.** +...*.**..*.* +...*.*...*.* +..**.*...*.** +...*..*** +...* +....*** +......* +#P -28 13 +....**.........** +...*.*.........*.* +...*.............* +**.**...........**.** +**.*...**...**...*.** +...*.*...*.*...*.* +...*.*...*.*...*.* +..**.*...*.*...*.** +...*..***...***..* +...*.............* +....***.......*** +......*.......* +#P -3 14 +......** +........* +...*...* +..**...* +...*.* +.*...** +.*...* +* +.** +#P 11 15 +**.*.** +...* +*.....* +.***** +. +. +***.*** +#P 25 13 +.........** +.....**.*.* +....*.*.* +....*.*.** +..**.***...* +.*..*...**.* +.****....* +....* +.***.* +*..*.** +** +....** +#P 44 10 +.................*** +**..................* +**.*............*...* +....*..........*.*..* +.*...........*..*.* +..*.**.......*...* +....**.......* +.........*....*** +..........** +.........* +#P 79 7 +..........* +......*.*** +......** +.........**..* +......***.**** +..**.* +...*.******* +..*.....*..* +..***..**.* +........*.** +****.*** +*..** +......** +...***.* +...* +#P 100 7 +.......** +...**.*..* +..*.*.**.* +..*.*....*.** +**..**...*.* +.*.*.....*.* +.*.*...**..** +**.*....*.* +...*.**.*.* +...*..*.** +....** +#P -80 39 +..**.* +..*.** +**....** +*.....* +.*.....* +**....** +..**.* +..*.** +......** +......* +.......* +......** +..**.* +..*.** +#P -64 39 +** +.* +.*.* +..** +. +. +. +..** +.*.* +.* +** +#P -59 44 +******..****** +#P -44 39 +..** +..* +*.* +** +. +. +. +** +*.* +..* +..** +#P -64 55 +** +.* +.*.* +..** +. +. +. +..** +.*.* +.* +** +#P -59 60 +****** +#P -52 55 +..** +..* +*.* +** +. +. +. +** +*.* +..* +..** +#P -64 71 +** +.* +.*.* +..** +. +. +. +..** +.*.* +.* +** +. +. +** +.* +.*.* +..** +. +. +. +..** +.*.* +.* +** +#P -59 75 +..*....* +**.****.** +..*....* +. +. +. +. +..**..** +..**..** +. +. +. +. +..*....* +**.****.** +..*....* +#P -48 71 +..** +..* +*.* +** +. +. +. +** +*.* +..* +..** +. +. +..** +..* +*.* +** +. +. +. +** +*.* +..* +..** +#P -43 55 +** +.* +.*.* +..** +. +. +. +..** +.*.* +.* +** +#P -38 59 +..*....* +**.****.** +..*....* +#P -27 55 +..** +..* +*.* +** +. +. +. +** +*.* +..* +..** +#P -30 40 +** +.* +.*.* +..** +. +. +. +..** +.*.* +.* +** +#P -25 44 +..*....* +**.****.** +..*....* +#P -14 43 +..*....* +**.****.** +..*....* +#P -3 39 +..** +..* +*.* +** +. +. +. +** +*.* +..* +..** +#P -13 54 +..** +...*..** +...*.*.* +**.*..* +**.* +...* +...*.*.....** +....**....*.* +......**...* +......* +.......******* +.............* +.........** +.........** +#P -22 71 +..........**.** +.........*.*.* +.........*...* +.......**.*** +......*.*.* +......*.*.* +....**..* +...*....** +...***** +.**....*..*** +*..***...*...*.......* +**.*.....**.**.....*** +...*....*....*....* +***.....**.**.....*.** +*.......*...*...***..* +.........***..*....** +..............***** +............**....* +.............*..** +...........*.*.* +...........*.*.* +.........***.** +........*...* +........*.*.* +.......**.** +#P 9 39 +** +.* +.*.* +..** +. +. +. +..** +.*.* +.* +** +#P 14 41 +..* +.* +* +* +* +.* +..* +#P 18 40 +** +#P 18 48 +** +#P 21 41 +* +.* +..* +..* +..* +.* +* +#P 25 39 +..** +..* +*.* +** +. +. +. +** +*.* +..* +..** +#P 19 50 +**..** +**..** +#P 11 52 +** +.* +.*.* +..** +. +. +. +..** +.*.* +.* +** +#P 17 56 +******** +*.****.* +******** +#P 27 52 +..** +..* +*.* +** +. +. +. +** +*.* +..* +..** +#P 22 76 +....** +.....* +....* +...*.*** +...*.*..* +**.*..**.* +.*.*.*.*.* +.*.*.*.*.** +..*....*..* +...**...* +.....*** +.*** +.*..** +....*.* +.....* +#P 50 40 +.....** +.....** +. +.....**** +....*....* +..*..*...* +..**.*.*.*.** +.......**..* +****.**....* +*..**...*** +......** +...***..* +...*...** +#P 68 42 +...**.** +..*.*.* +..*...* +*.*.**.** +**.*...*.* +...*.*...* +...*.*.*.*.** +....*.....*.* +.....***** +.......* +#P 91 41 +............** +...**.*.**.*..* +...*.**.*...** +..........** +....****...* +**.*.......*.** +.*.*...**.**..* +*..*....*...* +**..******** +. +......**** +......*..* +#P 50 58 +.......** +.......* +.........* +..**.****.* +*..*.*....* +**.*...*** +.*.*.*....*** +.*.....***...* +..*.***...*.** +*.*.*..*..*.* +**...**...*..* +.......***..** +.......* +#P 68 59 +.**.** +..*.*.*.** +.*..*.*.*...** +..**.*....*..* +.........*** +..*** +*..*....*.** +**...*.*.*..* +....**.*.*.* +........**.** +#P 91 58 +.....** +.....*.* +...**...* +..*..**.* +...*.*.*.** +..**..*..* +...*.....* +...*.*****.** +**.*......*.* +*.*...**** +..*.*..* +.**.** +#P 44 81 +..**....** +...*..*..* +.*....** +.** +......** +.**.*..* +*.*.*.* +*...** +.*** +...* +#P 59 79 +...*..* +...**** +.** +*...*** +.**....* +..*.*.* +*.*....*** +**.*.*.*..* +...*.*...*.* +...*.*.*.*.* +....*.....* +.....***** +.......* +#P 76 79 +....**.** +.....*.*.* +...*...*.* +.****..*.** +*....*.*.* +.****.*..* +....*.*** +.**.*.*..*** +.*..*****..* +...*.....* +....***** +......* +#P 92 76 +...........* +..........*.* +..........*.*** +.........**....* +....**..*...**.* +....*...****.*.**.** +.....*.....*....*.*.* +...*.*.**..*..**....* +.***.*...*.*...*.*** +*....**..*..**.*.* +*.*.*....*.....* +.**.**.*.****...* +.....*.**...*..** +.....*....** +......***.* +........*.* +.........* diff --git a/programs/demos/life2/lif/OSCSPN1.lif b/programs/demos/life2/lif/OSCSPN1.lif new file mode 100644 index 000000000..d95644637 --- /dev/null +++ b/programs/demos/life2/lif/OSCSPN1.lif @@ -0,0 +1,1381 @@ +#Life 1.05 +#D Periods 10-22 oscillators +#D +#D Undiscovered periods are: +#D 19, 23, 27, 31, 33, 34, 37, +#D 38, 39, 41, 43, 49, 51, 53, 57. +#N +#P -134 -102 +**....**.* +.*....*.** +*...**....** +**..*.....* +.....*.....* +**..**....** +.*..*.....* +*....*.....* +**..**....** +....*.....* +**...*.....* +.*..**....** +*.....**.* +**....*.** +#P -114 -101 +......**.* +.....*..** +......* +...***.*** +..*....*..*.* +...***.*.*.** +***....*.* +*..*****.* +...*....* +....**** +. +......** +......** +#P -97 -101 +...* +...*** +.**...* +*...**.* +.***.*.* +........** +.****.....* +.*......**.* +..**..*..*.* +....*.*.*..** +....*.*.*.* +.....**.*.* +.........* +#P -80 -102 +....** +...*.* +...* +**.* +**.* +...*.** +**.* +*.*..*..* +...**.*.*...** +.....*.......* +.....*.****** +......* +.......*.** +......**.** +#P -62 -104 +.....**......** +.....**......** +. +. +......*......* +**..**.**..**.**..** +**....*......*....** +. +. +. +**....*......*....** +**..**.**..**.**..** +......*......* +. +. +.....**......** +.....**......** +#P -35 -99 +.........** +........*.* +........* +.......** +....*....** +**..*.***..* +*.......*.*.* +.*******...* +........*** +...**.*.* +...**.** +#P -114 -79 +......** +......* +...**.* +..*.*.**...** +.*..*....*..* +.*.*.*.*.*** +**.*.* +...*.*..**** +...*.*...*..* +....**.*...* +......*.*** +......*.* +.......* +#P -96 -79 +.......* +......*.* +.......* +. +.**..*****..** +.*..*.....*..* +..*.*..*..*.* +.**.*.....*.** +*...**...**...* +****...*...**** +....**...** +..*..*.*.*..* +..**..*.*..** +.......* +#P -77 -77 +.**........** +.*.*......*.* +...*......* +..**.*..*.** +*..*.****....* +**..*.....*.** +......*** +*****....***** +*.....**.....* +..****..**** +.**..*..*..** +#P -56 -77 +.....**.** +....*.*.** +..***.* +.*....*.** +*..**.*..* +.**.*...*...** +..*.....*.*..* +..*.*.*.*.** +...**.** +#P -39 -71 +.....*...** +....*.*..*.* +....*.*....* +.**.*.**...*.** +..*.*....*.*.* +*..*.*.*.*.*.* +**.*.*....*..** +...*.*..**...* +...*.*...*.*.* +....**.*.*.** +......*.* +......* +.....** +#P -57 -61 +.....** +.....*.*....* +........*..*.* +......**.*..*.* +.....*.*.**.*..* +**..*.......*** +*..*....*** +.*.**......** +..*...*..**..* +...**.*.*...** +....*.*.* +..*....* +.*.***.*.* +..*..*..** +...*.* +....* +#P -79 -61 +.........* +.....*.***** +.....**.....* +........***..* +.....***...** +....*....*.* +...*.*.*.*.* +...*.*....* +**.*.*..** +**.*.*...*.* +....**.*..*.* +......*.**..* +......*.....** +.....** +#P -98 -61 +...* +..*.* +..*.* +.**.**.....**.** +*..*...**...*.* +.*.*.**....*..* +..*.*......*.* +....*.**.*.*.** +....*..*.** +.....** +#P -117 -60 +....**....** +...*.*.....* +...*.......*.** +**.*......**..* +**.*.*......** +....*....*** +......*....* +..********* +..* +.....**** +.....*..* +#P -131 -33 +**..** +.*...* +*...* +**..** +. +**..** +.*...* +*...* +**..** +. +**..** +.*...* +*...* +**..** +#P -117 -32 +..**.** +...*.*.* +...*....* +**.*.....* +**.*......* +...*.*.....* +...*.**...** +....* +.....******* +...........* +.......** +.......** +#P -100 -39 +..........**.** +.........*.*.* +.........*...* +.......**.*** +......*.*.* +......*.*.* +....**..* +...*....** +...*****..........** +.**....*..........* +*..***....***...*.* +**.*.....*...*..** +...*....*.....*.......* +***.....*.....*.....*** +*.......*.....*....* +.....**..*...*.....*.** +....*.*...***....***..* +....*..........*....** +...**..........***** +.............**....* +..............*..** +............*.*.* +............*.*.* +..........***.** +.........*...* +.........*.*.* +........**.** +#P -71 -38 +..........** +..........** +.....*..........* +....*.*........*.* +...*.*..........*.* +..*.*...******...*.* +...*..............* +. +.....*..........* +.....*..........* +**...*..........*...** +**...*..........*...** +.....*..........* +.....*..........* +. +...*..............* +..*.*...******...*.* +...*.*..........*.* +....*.*........*.* +.....*..........* +..........** +..........** +#P -46 -34 +.........** +........*..*.** +........*..*.* +.....**.***..* +......*......*.** +......*.***..*.* +....**.*...***.* +...*.*...*.*..* +...*.*..**.*** +**.*.*....* +.*.*.*.*.*..**** +.*..*....*.**..* +..*.*.**.* +...**.*..* +.......** +#P -25 -33 +.........** +...**...*.* +....*...* +....*.**.**** +..**.*.*.*..* +...*.* +...* +**.*.** +**.*.....** +...*.....* +...*.*....*** +....**......* +#P -137 -2 +**....**.* +.*....*.** +*.........** +**........* +...........* +**........** +.*....**.* +*.....*.** +**..** +....* +**...* +.*..** +*.....**.* +**....*.** +#P -116 2 +.* +.***.......** +....*......* +...**....*.* +.........** +......** +......** +......** +..** +.*.*....** +.*......* +**.......*** +...........* +#P -97 -7 +*** +** +.** +.* +....** +.**.* +..* +..* +. +.....* +....*.*..** +**..*..*.** +**...** +. +. +........* +........* +......*.** +.....** +.........* +........** +.........** +........*** +#P -76 -5 +.......** +.......*.* +.........* +.......*.**.** +.......**....* +..........** +.......***.** +**.**.*......*..** +*...*.*..****.*..* +.***..*.*.....** +...*.*..*...*..*.* +.....**.*...*.*..*** +...*..*.*.**..*.*...* +...**..*......*.**.** +........**.*** +.........** +.......*....** +.......**.**.* +...........* +...........*.* +............** +#P -46 -4 +........*.**.**.* +........**.*.*.** +. +........***...*** +........*..*.*..* +..........**.** +. +**...**...........**...** +**..*..*.**...**.*..*..** +....*.*..**...**..*.* +.....*.............* +. +.....*.............* +....*.*..**...**..*.* +**..*..*.**...**.*..*..** +**...**...........**...** +. +..........**.** +........*..*.*..* +........***...*** +. +........**.*.*.** +........*.**.**.* +#P -118 24 +.**.........** +*..*.......*..* +***..*****..*** +...**.....** +..*.........* +..**.*...*.** +.......* +#P -112 32 +*** +*** +.* +. +.* +*** +. +. +. +. +. +*** +.* +. +.* +*** +*** +. +.* +*.* +*.* +.* +. +. +. +. +*** +.* +. +.* +*** +*** +. +*** +*** +.* +. +.* +*** +#P -114 75 +***.*** +...* +**...** +...* +***.*** +#P -86 28 +***.*..*.*.........*.*..*.*** +.*.*.*.*..*.......*..*.*.*.* +..........*.......* +...*.....................* +...*..*.*.*.*...*.*.*.*..* +....*.*..*.***.***.*..*.* +#P -86 69 +....*.*..*.***.***.*..*.* +...*..*.*.*.*...*.*.*.*..* +...*.....................* +..........*.......* +.*.*.*.*..*.......*..*.*.*.* +***.*..*.*.........*.*..*.*** +#P -95 37 +* +** +* +.*.** +*....* +.* +....** +** +....* +*....* +.**.* +.....* +....** +.....* +. +.....* +....** +.....* +.**.* +*....* +....* +** +....** +.* +*....* +.*.** +* +** +* +#P -54 37 +.....* +....** +.....* +.**.* +*....* +....* +** +....** +.* +*....* +.*.** +* +** +* +. +* +** +* +.*.** +*....* +.* +....** +** +....* +*....* +.**.* +.....* +....** +.....* +#P -75 38 +***.*** +.*...* +. +.*...* +***.*** +***.*** +#P -85 48 +*...** +**.*** +*...** +. +*...** +**.*** +*...** +#P -75 59 +***.*** +***.*** +.*...* +. +.*...* +***.*** +#P -64 48 +**...* +***.** +**...* +. +**...* +***.** +**...* +#P -78 45 +....*...* +...*.*.*.* +...*.*.*.* +.**..*.*..** +*....*.*....* +.****...**** +. +.****...**** +*....*.*....* +.**..*.*..** +...*.*.*.* +...*.*.*.* +....*...* +#P -112 92 +..* +.*.*.** +*..*.* +.***.*.* +.......*** +.***......*.* +.*.......*.** +...**...** +....*..*.* +....*.*** +.....* +......* +.....** +#P -94 94 +......**...** +......*...*.* +*..**.*...* +****.*.**.** +.....*.*.*..* +..**...*.*.* +.*.*...*.** +*..*.*.* +.**.**.*.**** +..*...*.**..* +*.*...* +**...** +#P -73 84 +............** +.......*.**..* +.......**.*.* +............**..** +...........*.....* +.......**..*.**** +...**..* +...*.*.*....*.*****..** +.....*.**....*.*..*..* +....**................* +**.*.*.**...*........** +*.**...**..*...*...* +....**.....*....*.*.**.* +.**.........*.*...*.*.** +.*..............*.* +..*..*..*.**...**.* +.**..****.**....*.*.* +................*..** +.......*****...** +......*.....* +......**..** +...........*.*.** +..........*..**.* +..........** +#P -37 25 +**.......** +*..**.**..* +.**.*.*.** +..*.*.*.* +..*.***.* +...***** +. +. +. +....*** +.....* +.....* +#P -33 38 +*** +*** +.* +. +.* +*** +#P -38 51 +.* +*.* +.* +#P -28 51 +.* +*.* +.* +#P -33 48 +.* +*.* +*.* +.* +. +*** +. +*.* +.* +. +. +.* +*.* +. +*** +#P -37 63 +** +** +#P -34 64 +..* +.*.* +*..* +.** +#P -28 62 +.* +*.* +.* +#P -32 70 +.** +*..* +*.* +.* +#P -37 73 +.* +*.* +.* +#P -27 73 +** +** +#P -32 75 +*** +. +*.* +.* +. +. +.* +*.* +. +*** +. +.* +*.* +*.* +.* +#P -37 84 +.* +*.* +.* +#P -27 84 +.* +*.* +.* +#P -32 94 +*** +.* +. +.* +*** +*** +#P -43 101 +..........*.** +.....*...* +....**.......* +.....*..**.** +.**.**..* +*.......** +....*...* +**.* +#P 2 -102 +**..**.* +.*..*.** +*.......** +**......* +.........* +**......** +.*..**.* +*...*.** +**......** +........* +**.......* +.*......** +*...**.* +**..*.** +#P 20 -102 +....* +...*.* +...*.* +.***.** +* +.***.** +...*.** +#P 27 -95 +...*...* +....*.* +...**.** +.*..*.*..* +*.*.*.*.*.* +**..*.*..** +....*.* +.....* +#P 38 -102 +..* +.*.* +.*.* +**.*** +......* +**.*** +**.* +#P 53 -98 +....**.** +...*.*.*.* +...*.....* +**.*.....*.** +*.*..*.*.**.* +...**.*.* +....*.*.* +...*..** +...** +#P 73 -100 +.......* +......*.* +.....*.*.* +...***.*.*** +*.*...*.*...*.* +**.**.....**.** +...*.*...*.* +...*.......* +....******* +. +...*.**.**.* +...**.*.*.** +#P 94 -99 +.......**.* +.......*.** +....**.* +..***.*.*** +.*....*.*..* +.*.**...*.*.* +..*.*...*.*.* +....*.*.*.*.** +****.**.*.* +*..*...**.* +....**...* +......*** +......* +#P 2 -75 +**..**...** +.*..**...** +* +**..**...** +....*.*.*.* +**....*.* +.*...**.* +*........** +**........* +.........* +**.......** +.*........* +*........* +**.......** +#P 21 -71 +.**.** +.**.** +..*.* +*.*.*.* +*.*.*.* +**...** +#P 35 -72 +...** +..*..*.** +..*.**.*.* +.**..*.*.* +*..*.*...*.** +**.*.*...*..* +...*.*.*..** +...*.*.**.* +....**.*..* +........** +#P 51 -76 +...** +...* +....***....** +......*....* +..***.*.**.* +.*.*.*.*.*..** +.*...*.*..*.* +**.*.**..**.* +..*.*.......** +..*...****.*..* +...***.....*.** +.......**..*.* +...*****...*.* +...*.....*.** +......***.* +......*...* +..........** +#P 2 -51 +**....*.** +.*....**.* +*...** +**...* +....* +**..** +.*....*.** +*.....**.* +**........** +...........* +**........* +.*........** +*.....*.** +**....**.* +#P 22 -46 +..*....* +**.****.** +..*....* +#P 39 -52 +..*....* +**.****.** +..*....* +#P 44 -45 +**..** +**..** +#P 39 -39 +**...*..*...** +*****....***** +**...*..*...** +#P 59 -53 +..*....* +**.****.** +..*....* +#P 61 -46 +**..** +**..** +#P 59 -40 +..*....* +**.****.** +..*....* +#P 79 -53 +.* +.* +*.* +.* +.* +.* +.* +*.* +.* +.* +#P 87 -55 +..*....* +**.****.** +..*....* +#P 96 -47 +.* +.* +*.* +.* +.* +.* +.* +*.* +.* +.* +#P 81 -38 +..*....* +**.****.** +..*....* +#P 86 -48 +**..** +**..** +. +. +**..** +**..** +#P 2 -17 +**....**.* +.*....*.** +*...** +**..* +.....* +**..** +.*....**.* +*.....*.** +**..**....** +....*.....* +**...*.....* +.*..**....** +*.....**.* +**....*.** +#P 19 -19 +....**......** +...*..*....*..* +...*.*.*..*.*.* +.**..*.****.*..** +*.....*....*.....* +*.**..........**.* +.*..*........*..* +..**....**....** +...*...*.*....* +...*...**.....* +..**..........** +.*..*........*..* +*.**..........**.* +*.....*....*.....* +.**..*.****.*..** +...*.*.*..*.*.* +...*..*....*..* +....**......** +#P 43 -17 +...*...** +...*..*..* +.........* +.**....**..** +*..* +*..* +.*.........* +.........*..* +.........*..* +**..**....** +...* +...*..*..* +....**...* +#P 22 5 +**.........** +*.*.......*.* +..*.......* +..**..*..** +.....* +..***...*** +.*.........* +.**.**.**.** +.....*.* +.....*.* +......* +#P 41 3 +.** +*.* +*.*.** +.*.*.* +...* +..*..* +..* +..*...* +..*...* +..* +..*..* +...* +.*.*.* +*.*.** +*.* +.** +#P 49 9 +....** +*....** +.**....* +..** +#P 58 3 +....** +....*.* +.**.*.* +.*.*.* +...* +.*..* +....* +*...* +*...* +....* +.*..* +...* +.*.*.* +.**.*.* +....*.* +....** +#P 84 -17 +* +** +** +.* +#P 99 -17 +.* +** +** +* +#P 106 -8 +.*** +*** +#P 106 7 +*** +.*** +#P 99 14 +* +** +** +.* +#P 84 14 +.* +** +** +* +#P 75 7 +.*** +*** +#P 75 -8 +*** +.*** +#P 87 -9 +** +.** +..** +#P 94 -9 +..** +.** +** +#P 99 -5 +..* +.** +** +* +#P 99 2 +* +** +.** +..* +#P 94 7 +** +.** +..** +#P 87 7 +..** +.** +** +#P 83 2 +..* +.** +** +* +#P 83 -5 +* +** +.** +..* +#P 132 -3 +.* +*.* +** +#P 136 -10 +...*** +...*** +...*** +*** +*** +*** +#P 121 -15 +...*..* +.......* +........** +..*.**......* +..*..*...* +.*...*.*** +*...........* +...***.*...* +...*...*..* +*......**.* +...** +.....* +......*..* +#P 119 0 +.........** +....**..*..* +.*..*....*.* +*.*.*.....* +.*..*.** +....*..* +.....*....* +......***** +. +........* +.......*.* +........* +#P 136 0 +.** +*..*..** +*.*....*..* +.*.....*.*.* +....**.*..* +....*..* +.*....* +.***** +. +...* +..*.* +...* +#P 2 28 +**....*.** +.*....**.* +*.........** +**.........* +..........* +**........** +.*......** +*........* +**......* +........** +**....** +.*.....* +*.....* +**....** +#P 19 28 +.....* +....*.* +....*.*...** +.**.*.**...* +..*.*......*.** +*..*.*.***.*..* +**.*.*....*.* +...*.*..**..** +...*.*...*.* +....**.*.*.* +......*.*.* +......*.* +.......** +#P 38 28 +..............* +.....*.......*.* +....*.*......*.* +....*.*.....**..** +.**.*.**...*..*.* +..*.*......*.**..* +*..*.*.***.*...*.* +**.*.*....*..**.* +...*.*..**....* +...*.*...*.*..* +....**.*.*.*** +......*.* +......*..*** +.....**....* +#P 2 52 +**....**.* +.*....*.** +*...**....** +**..*.....* +.....*.....* +**..**....** +.*....**.* +*.....*.** +**..**....** +....*.....* +**...*.....* +.*..**....** +*.....**.* +**....*.** +#P 22 52 +** +.* +.*.* +..** +. +. +. +..** +.*.* +.* +** +#P 27 56 +.*.*..*.* +*..*..*..* +.*.*..*.* +#P 38 57 +.*.*..*.* +*..*..*..* +.*.*..*.* +#P 49 53 +..** +..* +*.* +** +. +. +. +** +*.* +..* +..** +#P 36 64 +** +** +#P 40 65 +** +.** +.* +#P 45 68 +** +** +#P 30 70 +** +.* +.*.* +..** +. +. +. +..** +.*.* +.* +** +#P 35 74 +.*.*..*.* +*..*..*..* +.*.*..*.* +#P 46 75 +.*.*..*.* +*..*..*..* +.*.*..*.* +#P 57 71 +..** +..* +*.* +** +. +. +. +** +*.* +..* +..** +#P 0 96 +..**.*.....**.* +..*.**.....*.** +......**.......** +......*........* +.......*........* +......**.......** +..**.*.....**.* +..*.**.....*.** +**.......** +*........* +.*........* +**.......** +..**.*.....**.* +..*.**.....*.** +#P 24 92 +............**.....** +.......**...*.......*...** +......*.*....*.....*....*.* +........*.***.*...*.***.* +.....**.*.*...*...*...*.*.** +........*.....*.*.*.....* +.......*.*..**.*.*.**..*.* +........*...*..*.*..*...* +....**........**.**........** +**..*.......................*..** +*.*.*.....***.......***.....*.*.* +..*.**....*.*.......*.*....**.* +*.*.*.....***.......***.....*.*.* +**..*.......................*..** +....**........**.**........** +........*...*..*.*..*...* +.......*.*..**.*.*.**..*.* +........*.....*.*.*.....* +.....**.*.*...*...*...*.*.** +........*.***.*...*.***.* +......*.*....*.....*....*.* +.......**...*.......*...** +............**.....** +#P 65 97 +...**.....** +...*.......* +**.*.......*.** +*..**.....**..* +.**...*.....** +...**...**** +...*.......* +....******* +. +......*** +......*..* +........** +#P 86 94 +........** +........* +..........* +......***** +......* +....**...** +**.*.....*.*.** +.*.*.......*.* +*..**.....**..* +.**..*.*....** +...*...***** +...*.......* +....******* +. +......*** +.....*..* +.....** diff --git a/programs/demos/life2/lif/OSCSPN2.lif b/programs/demos/life2/lif/OSCSPN2.lif new file mode 100644 index 000000000..4fe59e7da --- /dev/null +++ b/programs/demos/life2/lif/OSCSPN2.lif @@ -0,0 +1,1892 @@ +#Life 1.05 +#D Periods 24-50 oscillators +#N +#P -148 -106 +..**.*....**...** +..*.**....**...** +......** +......*...**...** +.......*..*.*.*.* +......**....*.* +..**.*.....**.* +..*.**.........** +**..............* +*..............* +.*.............** +**..............* +..**.*.........* +..*.**.........** +#P -124 -107 +***.*** +...* +**...** +...* +***.*** +#P -114 -106 +*...* +*.*** +*...* +#P -106 -107 +.* +.* +* +.* +.* +#P -99 -107 +* +* +.* +* +* +#P -95 -107 +.* +.* +* +.* +.* +#P -88 -107 +* +* +.* +* +* +#P -83 -106 +*...* +***.* +*...* +#P -75 -107 +***.*** +...* +**...** +...* +***.*** +#P -103 -111 +.* +*.* +.* +#P -92 -111 +.* +*.* +.* +#P -126 -94 +***.*** +...* +**...** +...* +***.*** +#P -116 -93 +*...* +*.*** +*...* +#P -108 -94 +.* +.* +* +.* +.* +#P -101 -94 +* +* +.* +* +* +#P -97 -94 +.* +.* +* +.* +.* +#P -90 -94 +* +* +.* +* +* +#P -85 -93 +*...* +***.* +*...* +#P -77 -94 +***.*** +...* +**...** +...* +***.*** +#P -105 -88 +.* +*.* +.* +#P -94 -88 +.* +*.* +.* +#P -107 -99 +** +* +.*** +...* +#P -91 -101 +* +*** +...* +..** +#P -103 -100 +*** +.....*** +....*** +.........*** +#P -148 -78 +..**.*......*.** +..*.**......**.* +......**..** +......*....* +.......*..* +......**..** +..**.*......*.** +..*.**......**.* +**..............** +*................* +.*..............* +**..............** +..**.*......*.** +..*.**......**.* +#P -123 -78 +..** +...*..** +...*.*..* +..**.***.*.** +...*.*.*.**.* +.* +*.***.*.**** +*...**.**...* +.***.***.*** +...*.....* +. +....*...* +......* +#P -117 -56 +......* +....*...* +. +...*.....* +.***.***.*** +*...**.**...* +.****.*.***.* +...........* +*.**.*.*.* +**.*.***.** +....*..*.* +.....**..* +.........** +#P -125 -65 +** +.* +.*.* +..** +#P -122 -56 +..** +...* +*** +* +#P -109 -69 +...* +.*** +* +** +#P -106 -60 +** +*.* +..* +..** +#P -118 -61 +*** +*.* +*** +#P -112 -63 +*** +*.* +*** +#P -95 -78 +..** +...*..** +...*.*..* +..**.***.*.** +...*.*.*.**.* +.* +*.***.*.**** +*...**.**...* +.***.***.*** +...*.....* +. +....*...* +......* +#P -95 -48 +......* +....*...* +. +...*.....* +.***.***.*** +*...**.**...* +*.***.*.**** +.* +...*.*.*.**.* +..**.***.*.** +...*.*..* +...*..** +..** +#P -96 -62 +.* +*.* +.* +. +. +. +. +. +.* +*.* +.* +#P -90 -61 +*** +*.* +*** +. +. +. +*** +*.* +*** +#P -84 -60 +..** +*..* +*** +. +*** +*..* +..** +#P -74 -60 +** +*..* +.*** +. +.*** +*..* +** +#P -67 -61 +*** +*.* +*** +. +. +. +*** +*.* +*** +#P -58 -61 +*** +*.* +*** +. +. +. +*** +*.* +*** +#P -52 -60 +..** +*..* +*** +. +*** +*..* +..** +#P -72 -78 +..**..............** +...*..**......**..* +...*.*..*....*..*.* +..**.***.*..*.***.** +...*.*.*.****.*.*.* +.*..................* +*.***.*.******.*.***.* +*...**.**....**.**...* +.***.***.****.***.*** +...*.....*..*.....* +. +....*...*....*...* +......*........* +#P -72 -48 +......*........* +....*...*....*...* +. +...*.....*..*.....* +.***.***.****.***.*** +*...**.**....**.**...* +*.***.*.******.*.***.* +.*..................* +...*.*.*.****.*.*.* +..**.***.*..*.***.** +...*.*..*....*..*.* +...*..**......**..* +..**..............** +#P -148 -26 +..**.*......**.* +..*.**......*.** +......**..** +......*...* +.......*...* +......**..** +..**.*......**.* +..*.**......*.** +**........**....** +*.........*.....* +.*.........*.....* +**........**....** +..**.*......**.* +..*.**......*.** +#P -124 -16 +.* +*.* +*.* +.* +. +.* +*.* +*.* +.* +#P -116 -16 +.*.* +*..* +.*.* +. +. +. +.*.* +*..* +.*.* +#P -110 -17 +..** +...* +* +** +. +. +. +** +* +...* +..** +#P -103 -17 +** +* +...* +..** +. +. +. +..** +...* +* +** +#P -97 -16 +*.* +*..* +*.* +. +. +. +*.* +*..* +*.* +#P -88 -16 +.* +*.* +*.* +.* +. +.* +*.* +*.* +.* +#P -122 -29 +.........** +.........* +......**.* +.....*.*.** +.....*.* +...**..* +..*....** +..***** +......* +**** +*..* +#P -109 -31 +.**...** +*..*.*..* +.**...** +#P -109 -23 +.*.....* +*.*...*.* +. +***...*** +#P -98 -29 +** +.* +.*.** +**.*.* +...*.* +...*..** +..**....* +....***** +....* +.......**** +.......*..* +#P -122 -5 +*..* +**** +......* +..***** +..*....** +...**..* +.....*.* +.....*.*.** +......**.* +.........* +.........** +#P -109 5 +.**...** +*..*.*..* +.**...** +#P -109 -4 +***...*** +. +*.*...*.* +.*.....* +#P -98 -5 +.......*..* +.......**** +....* +....***** +..**....* +...*..** +...*.* +**.*.* +.*.** +.* +** +#P -150 15 +..**.*......**.* +..*.**......*.** +......**..**....** +......*...*.....* +.......*...*.....* +......**..**....** +..**.*......**.* +..*.**......*.** +**........**....** +*.........*.....* +.*.........*.....* +**........**....** +..**.*......**.* +..*.**......*.** +#P -124 16 +..*.* +.....* +.*..* +*.*.* +*..* +.** +. +. +.** +*..* +*.*..* +.* +..**.* +....* +#P -117 21 +***...*** +.*.....* +#P -107 16 +.*.* +* +.*..* +.*.*.* +..*..* +...** +. +. +...** +..*..* +*..*.* +....* +*.** +.* +#P -96 16 +.....** +.....* +..**.* +*..*.** +**.* +...* +...** +. +...** +..*..* +..*.*..* +...* +....**.* +......* +#P -87 14 +.**...** +*..*.*..* +.**...** +. +. +. +. +***...*** +.*.....* +#P -77 16 +.** +..* +..*.** +.**.*..* +....*.** +....* +...** +. +...** +..*..* +*..*.* +....* +*.** +.* +#P -150 44 +..**.*......**.* +..*.**......*.** +......**..**....** +......*...*.....* +.......*...*.....* +......**..**....** +..**.*......**.* +..*.**......*.** +**..............** +*...............* +.*...............* +**..............** +..**.*......**.* +..*.**......*.** +#P -124 46 +.....** +.....* +..**.* +*..*.** +**.* +...* +...** +#P -115 44 +.**...** +*..*.*..* +.**...** +#P -115 52 +.*.....* +*.*...*.* +. +***...*** +#P -116 59 +.*.......* +*.*.....*.* +.*.......* +#P -104 46 +** +.* +.*.** +**.*..* +...*.** +...* +..** +#P -91 48 +.* +*.* +.* +. +. +. +. +. +.* +*.* +.* +#P -85 49 +*.* +*..* +*.* +. +. +. +*.* +*..* +*.* +#P -79 43 +...* +.*** +* +** +#P -76 50 +** +** +#P -72 54 +** +** +#P -67 55 +..** +..* +*.* +** +#P -78 61 +.*.....* +*.*...*.* +. +***...*** +#P -79 68 +.*.......* +*.*.....*.* +.*.......* +#P -130 86 +.* +*.* +*.* +.* +. +.* +*.* +*.* +.* +#P -122 86 +.*.* +*..* +.*.* +. +. +. +.*.* +*..* +.*.* +#P -103 86 +*.* +*..* +*.* +. +. +. +*.* +*..* +*.* +#P -94 86 +.* +*.* +*.* +.* +. +.* +*.* +*.* +.* +#P -128 73 +.........** +.........* +......**.* +.....*.*.** +.....*.* +...**..* +..*....** +..***** +......* +**** +*..* +#P -115 71 +.**...** +*..*.*..* +.**...** +#P -115 79 +.*.....* +*.*...*.* +. +***...*** +#P -104 73 +** +.* +.*.** +**.*.* +...*.* +...*..** +..**....* +....***** +....* +.......**** +.......*..* +#P -128 97 +*..* +**** +......* +..***** +..*....** +...**..* +.....*.* +.....*.*.** +......**.* +.........* +.........** +#P -115 107 +.**...** +*..*.*..* +.**...** +#P -115 98 +***...*** +. +*.*...*.* +.*.....* +#P -104 97 +.......*..* +.......**** +....* +....***** +..**....* +...*..** +...*.* +**.*.* +.*.** +.* +** +#P -60 -106 +**.*......**.* +*.**......*.** +....**..**....** +....*...*.....* +.....*...*.....* +....**..**....** +**.*....*.....* +*.**.....*.....* +....**..**....** +....*...*.....* +.....*...*.....* +....**..**....** +**.*......**.* +*.**......*.** +#P -36 -100 +** +** +#P -25 -103 +..* +.*.* +*...** +*...** +*...** +.*.* +..* +#P -16 -100 +** +** +#P -9 -98 +..** +.*.* +.* +** +#P 2 -103 +..* +.*.* +*...**..** +*...**.*..* +*...**..** +.*.* +..* +#P 21 -103 +..* +.*.* +*...** +*...** +*...** +.*.* +..* +#P 29 -98 +** +*.* +..* +..** +#P -36 -79 +.*.......* +*.*.....*.* +.*.......* +. +. +. +.***...*** +.*.*...*.* +.***...*** +#P -36 -58 +.***...*** +.*.*...*.* +.***...*** +. +. +. +.*.......* +*.*.....*.* +.*.......* +#P -10 -74 +.*.......* +*.*.....*.* +.*.......* +#P -9 -65 +***...*** +*.*...*.* +***...*** +#P -10 -59 +.* +*.* +.* +#P -3 -52 +.* +*.* +.* +#P 3 -59 +*** +*.* +*** +. +. +. +*** +*.* +*** +#P 12 -60 +.* +*.* +.* +. +. +. +. +. +.* +*.* +.* +#P 25 -81 +*** +.* +.* +*** +. +*** +*** +. +*** +.* +.* +*** +. +. +. +..** +..** +. +..** +..** +. +. +. +*** +.* +.* +*** +. +*** +*** +. +*** +.* +.* +*** +#P -36 -32 +.*.......* +*.*.....*.* +.*.......* +. +. +. +.***...*** +.*.*...*.* +.***...*** +. +. +. +. +. +. +.*.......* +*.*.....*.* +.*.......* +#P 0 -36 +.* +*.* +.* +#P -13 -31 +..*..*....*..* +***..******..*** +..*..*....*..* +#P -13 -23 +..*..*....*..* +***..******..*** +..*..*....*..* +#P -13 -15 +..*..*....*..* +***..******..*** +..*..*....*..* +#P 0 -10 +.* +*.* +.* +#P 6 -35 +*** +*.* +*** +. +. +. +*** +*.* +*** +. +. +. +*** +*.* +*** +. +. +. +*** +*.* +*** +. +. +. +*** +*.* +*** +#P 15 -36 +.* +*.* +.* +#P 15 -31 +..*..*....*..* +***..******..*** +..*..*....*..* +#P 15 -23 +..*..*....*..* +***..******..*** +..*..*....*..* +#P 15 -15 +..*..*....*..* +***..******..*** +..*..*....*..* +#P 15 -10 +.* +*.* +.* +#P -57 13 +**.*......**.* +*.**......*.** +....**........** +....*.........* +.....*.........* +....**........** +**.*......**.* +*.**......*.** +....**..** +....*...* +.....*...* +....**..** +**.*......**.* +*.**......*.** +#P -31 8 +........** +........* +*.**.**.* +**.*.*.* +......* +#P -33 16 +* +*** +...* +..*.* +..** +. +..** +..* +...* +..** +#P -25 23 +...* +..*.*.*.** +.*.**.**.* +.* +** +#P -18 10 +.** +.* +..* +.** +. +.** +*.* +.* +..*** +....* +#P -23 16 +*** +*.* +*.* +#P -4 11 +..*** +..*** +***..** +.....** +....*** +....* +....* +#P 13 3 +....* +....* +....*** +.....** +***..** +..*** +..*** +#P 21 20 +..* +..* +*** +** +**..*** +..*** +..*** +#P 4 28 +..*** +..*** +**..*** +** +*** +..* +..* +#P -1 20 +** +** +#P 9 6 +** +** +#P 23 16 +** +** +#P 13 30 +** +** +#P 3 18 +.* +*.* +*..* +.** +#P 9 10 +.** +*..* +*.* +.* +#P 17 16 +.** +*..* +.*.* +..* +#P 12 25 +.** +*..* +*.* +.* +#P 6 13 +* +* +* +#P 15 13 +*** +#P 17 22 +* +* +* +#P 6 24 +*** +#P 12 17 +*** +*.* +*.* +#P -33 36 +...........** +......**.*....*.** +......*..........* +.......**......** +....***..******..*** +....*..*........*..* +.**.*.*..........*.*.** +.*.*.*............*.*.* +...*................* +.*..*..............*..* +....*.......***....* +*...*.......*.*....*...* +*...*.......*.*....*...* +....*..............* +.*..*..............*..* +...*................* +.*.*.*............*.*.* +.**.*.*..........*.*.** +....*..*........*..* +....***..******..*** +.......**......** +......*..........* +......**.*....*.** +...........** +#P -3 51 +* +*** +...* +..*.* +..** +. +..** +..* +...* +..** +#P -1 43 +........** +........* +*.**.**.* +**.*.*.* +......* +#P 10 47 +*** +#P 12 50 +.** +*..* +.*.* +..* +#P 16 55 +*** +#P 5 58 +...* +..*.*.*.** +.*.**.**.* +.* +** +#P 7 51 +*** +*.* +*.* +#P 14 40 +........** +........* +*.**.**.* +**.*.*.* +......* +#P 27 42 +.** +.* +..* +.** +. +.** +*.* +.* +..*** +....* +#P 20 55 +...* +..*.*.*.** +.*.**.**.* +.* +** +#P 22 48 +*** +*.* +*.* +#P -57 83 +**.*......**.* +*.**......*.** +....**..** +....*...* +.....*...* +....**..** +**.*......**.* +*.**......*.** +....**..**....** +....*...*.....* +.....*...*.....* +....**..**....** +**.*......**.* +*.**......*.** +#P -32 77 +** +.* +.*.* +..** +. +. +. +..** +.*.* +.* +** +#P -27 78 +....** +..* +.* +* +* +* +.* +..* +....** +#P -20 79 +* +.* +..* +..* +..* +.* +* +#P -16 77 +..** +..* +*.* +** +. +. +. +** +*.* +..* +..** +#P -33 92 +** +.* +.*.* +..** +. +. +. +..** +.*.* +.* +** +#P -28 93 +....** +..* +.* +* +* +* +.* +..* +....** +#P -21 94 +* +.* +..* +..* +..* +.* +* +#P -17 92 +..** +..* +*.* +** +. +. +. +** +*.* +..* +..** +#P -23 88 +..* +*..* +*..* +.* +#P 5 89 +..* +**.** +..* +#P 20 88 +..* +**.** +..* +#P -4 81 +**.......** +*..**.**..* +.**.*.*.** +..*.....* +..*.***.* +...*...* +. +...*...* +...*...* +. +....*** +#P 3 94 +.*.* +* +.*..* +.*.*.* +..*..* +...** +#P 21 80 +.** +*..* +*.*.* +.*..* +.....* +..*.* +#P 23 88 +....*** +. +...*...* +...*...* +. +...*...* +..*.***.* +..*.....* +.**.*.*.** +*..**.**..* +**.......** +#P 51 -100 +**...**....**.* +**...**....*.** +.........**....** +**...**..*.....* +*.*.*.*...*.....* +..*.*....**....** +.**.*....*.....* +.....**...*.....* +......*..**....** +.....*...*.....* +.....**...*.....* +......*..**....** +.....*.....**.* +.....**....*.** +#P 76 -105 +.** +*..* +* +* +*.** +..** +. +. +.** +.** +#P 98 -105 +.** +.** +. +. +..** +*.** +* +* +*..* +.** +#P 90 -97 +..** +.*..* +.*..* +**.** +.** +#P 82 -91 +.* +*.* +.* +#P 93 -91 +.* +*.* +.* +#P 85 -89 +...** +.*....* +.*....* +.*....* +..*..* +*.*..*.* +**....** +#P 74 -68 +** +**.* +....* +.* +..*.** +....** +#P 73 -57 +....*** +.......* +...*...* +..*.*..* +*..*.* +*...* +* +.*** +#P 101 -68 +....** +..*.** +.* +....* +**.* +** +#P 100 -57 +.*** +* +*...* +*..*.* +..*.*..* +...*...* +.......* +....*** +#P 87 -70 +**...** +*.*.*.* +..*.* +.**.** +#P 86 -63 +***...*** +*.*...*.* +***...*** +#P 87 -52 +.**.** +..*.* +*.*.*.* +**...** +#P 126 -106 +......** +. +.....*...* +....*....* +...*.*.* +..*.*.* +*....* +*...* +. +..** +#P 118 -97 +....* +..**.* +.* +*.*..* +*..* +.** +#P 126 -95 +.* +.* +*.* +.* +.* +#P 122 -74 +.** +*..* +...* +...* +**.* +** +. +. +.** +.** +#P 127 -80 +.* +.* +*.* +.* +.* +#P 133 -80 +.* +.* +*.* +.* +.* +#P 137 -91 +.** +.** +. +. +..** +*.** +* +* +*..* +.** +#P 134 -65 +.* +.* +*.* +.* +.* +#P 127 -59 +......** +. +.....*...* +....*....* +...*.*.* +..*.*.* +*....* +*...* +. +..** +#P 139 -64 +...** +..*..* +*..*.* +....* +*.** +.* +#P 52 -24 +**...**..**...** +**...**..**...** +. +**...**..**...** +*.*.*.*..*.*.*.* +..*.*......*.* +.**.*.....**.* +.....**.......** +......*........* +.....*........* +.....**.......** +......*........* +.....*........* +.....**.......** +#P 76 -25 +.** +*.* +*.*.** +.*.*.* +...* +..*..* +..* +..*...* +..*...* +..* +..*..* +...* +.*.*.* +*.*.** +*.* +.** +#P 85 -23 +** +** +#P 93 -32 +** +** +#P 93 -3 +** +** +#P 92 -19 +..** +.*.* +** +.*.* +..** +#P 101 -32 +** +** +#P 101 -3 +** +** +#P 100 -19 +** +*.* +..** +*.* +** +#P 109 -23 +** +** +#P 113 -25 +....** +....*.* +.**.*.* +.*.*.* +...* +.*..* +....* +*...* +*...* +....* +.*..* +...* +.*.*.* +.**.*.* +....*.* +....** +#P 128 -35 +.*** +* +*...* +*..*.* +..*.*..* +...*...* +.......* +....*** +#P 141 -34 +....** +..*.** +.* +....* +**.* +** +#P 127 -21 +** +*..* +.*** +. +.*** +*..* +** +#P 139 -22 +*** +*.* +*** +. +. +. +*** +*.* +*** +#P 145 -21 +..** +*..* +*** +. +*** +*..* +..** +#P 128 -8 +....*** +.......* +...*...* +..*.*..* +*..*.* +*...* +* +.*** +#P 141 -7 +** +**.* +....* +.* +..*.** +....** +#P 52 18 +**...**....**.* +**...**....*.** +.........** +**...**..* +*.*.*.*...* +..*.*....** +.**.*......**.* +.....**....*.** +......*..**....** +.....*...*.....* +.....**...*.....* +......*..**....** +.....*.....**.* +.....**....*.** +#P 77 28 +** +** +#P 86 20 +.** +*.* +* +*** +. +. +. +*** +* +*.* +.** +#P 97 19 +....* +.**...* +.**.*.** +*......** +.**.*.** +.**...* +....* +#P 104 28 +** +** +#P 55 49 +**...**..*.** +**...**..**.* +.............** +**...**.......* +*.*.*.*......* +..*.*........** +.**.*......** +.....**.....* +......*....* +.....*.....** +.....**..** +......*...* +.....*...* +.....**..** +#P 78 51 +.* +*.* +.* +. +. +. +. +. +.* +*.* +.* +#P 88 51 +.* +* +* +* +.* +. +.* +* +* +* +.* +#P 96 51 +* +.* +.* +.* +* +. +* +.* +.* +.* +* +#P 105 51 +.* +*.* +.* +. +. +. +. +. +.* +*.* +.* +#P 87 41 +...* +.*** +* +** +#P 95 41 +* +*** +...* +..** +#P 84 47 +*** +#P 92 48 +** +** +#P 99 47 +*** +#P 84 65 +*** +#P 92 63 +** +** +#P 87 68 +** +* +.*** +...* +#P 95 68 +..** +...* +*** +* +#P 99 65 +*** +#P 56 83 +..*.**......**.* +..**.*......*.** +**........**....** +.*........*.....* +*..........*.....* +**........**....** +..*.**....*.....* +..**.*.....*.....* +......**..**....** +.......*..*.....* +......*....*.....* +......**..**....** +..*.**......**.* +..**.*......*.** +#P 81 83 +** +*..*** +.** +......* +......* +.** +*..*** +** +#P 86 93 +.*..* +*.**.* +.*..* +.*..* +*.**.* +.*..* +#P 89 87 +..* +**.** +..* +#P 104 86 +..* +**.** +..* +#P 113 87 +..* +**.** +..* +#P 130 77 +.*..* +*.**.* +.*..* +.*..* +*.**.* +.*..* +#P 128 86 +..* +**.** +..* +#P 134 85 +.....** +.***..* +....** +* +* +....** +.***..* +.....** diff --git a/programs/demos/life2/lif/OSCSPN3.lif b/programs/demos/life2/lif/OSCSPN3.lif new file mode 100644 index 000000000..1720021e6 --- /dev/null +++ b/programs/demos/life2/lif/OSCSPN3.lif @@ -0,0 +1,1076 @@ +#Life 1.05 +#D Periods 52-144 oscillators +#N +#P -142 -101 +..*.**......**.* +..**.*......*.** +**..............** +.*..............* +*................* +**..............** +..*.**......**.* +..**.*......*.** +......**..** +.......*..* +......*....* +......**..** +..*.**......**.* +..**.*......*.** +#P -116 -103 +..............* +............*** +**.........* +.*.........** +.*.* +..** +. +.......* +.......*.* +......* +.......* +........**...** +.............*.* +....**.........* +.....*.........** +..*** +..* +#P -141 -75 +..*.**....**...** +..**.*....**...** +** +.*........**...** +*.........*.*.*.* +**..........*.* +..*.**.....**.* +..**.*.........** +......**........* +.......*.......* +......*........** +......**........* +..*.**.........* +..**.*.........** +#P -116 -76 +**.........................** +.*.........................* +.*.*.............*.......*.* +..**......*.....*..*.....** +.........**.....* +........**..........* +.........**....**...* +...............***** +. +...............***** +.........**....**...* +........**..........* +.........**.....* +..**......*.....*..*.....** +.*.*.............*.......*.* +.*.........................* +**.........................** +#P -142 -38 +..*.**......*.** +..**.*......**.* +**........** +.*.........* +*.........* +**........** +..*.**......*.** +..**.*......**.* +......**........** +.......*.........* +......*.........* +......**........** +..*.**......*.** +..**.*......**.* +#P -116 -44 +........* +.......*.* +........* +.............* +......*****..*** +.....*....*.....* +....*..*.......** +.*..*.** +*.*.*.....* +.*..*....*.* +....**..*..*......* +.........**......*** +. +. +. +.........** +....**..*..* +.*..*....*.* +*.*.*.....* +.*..*.** +....*..* +.....*....*...** +......*****....* +.............*.*.* +........*...*.*.** +.......*.*..*.* +........*....** +#P -93 -44 +...........* +..........*.* +...........* +......* +....***..***** +...*.....*....* +...**.......*..* +............**.*..* +.........*.....*.*.* +........*.*....*..* +.*......*..*..** +***......** +. +. +. +.........** +........*..*..** +........*.*....*..* +.........*.....*.*.* +............**.*..* +............*..* +....**...*....* +....*....***** +..*.*.* +..**.*.*...* +.....*.*..*.* +.....**....* +#P -143 8 +..*.**......**.* +..**.*......*.** +**........** +.*........* +*..........* +**........** +..*.**......**.* +..**.*......*.** +......**..**....** +.......*..*.....* +......*....*.....* +......**..**....** +..*.**......**.* +..**.*......*.** +#P -117 13 +...*..* +.......* +........** +..*.**......* +..*..*...* +.*...*.*** +*...........* +...***.*...* +...*...*..* +*......**.* +...** +.....* +......*..* +#P -103 8 +** +** +#P -93 13 +**.* +*...* +.*** +#P -91 19 +** +** +#P -86 5 +.**.**.* +**..**.** +........* +** +**.....** +.......** +* +**.**..** +.*.**.** +#P -115 34 +...................**....** +...**....**.......*..*..*..* +..*..*..*..*....*..*.*..*.*.* +.*.*.*..*.*..*......*....*..* +.*..*....*......*.**.........* +*.........**.*...*........*.* +.*.*........* +.......................*.* +....*.*...............*..* +....*..*...............*.* +....*.* +...............* +..............** +..............**.......*.* +....*.*.......*.......*..* +....*..*...............*.* +....*.* +.................*........*.* +.*.*........*...*.**.........* +*.........**.*......*....*..* +.*..*....*......*..*.*..*.*.* +.*.*.*..*.*..*....*..*..*..* +..*..*..*..*.......**....** +...**....** +#P -142 81 +..**.*......**.* +..*.**......*.** +**........**....** +*.........*.....* +.*.........*.....* +**........**....** +..**.*....*.....* +..*.**.....*.....* +**....**..**....** +*.....*...*.....* +.*.....*...*.....* +**....**..**....** +..**.*......**.* +..*.**......*.** +#P -116 76 +.......*.....* +.......**...** +.......**...** +........*...* +. +. +......................* +....................*..* +....................*..* +.*........*.....*....* +*..*.....**.....** +*..*......*.....*....* +..*.................*..* +....................*..* +..*...................* +*..* +*..* +.* +. +. +...........*...* +..........**...** +..........**...** +..........*.....* +#P -82 77 +.....** +...*....* +..*......* +.*........* +.*........* +.*........* +..*......* +...*....* +.....** +. +.......* +.....*..* +.....*..* +......* +. +....** +..*....* +.*......* +*........* +*........* +*........* +.*......* +..*....* +....** +#P -61 69 +...** +...** +. +. +. +. +. +..*** +.**.** +.**.** +.***** +**...** +. +. +. +. +. +. +. +.*** +. +. +. +. +. +. +. +**...** +.***** +.**.** +.**.** +..*** +. +. +. +. +. +..** +..** +#P -40 -98 +*.**......**.* +**.*......*.** +....**........** +.....*........* +....*..........* +....**........** +..**......**.* +...*......*.** +..*.....** +..**....* +**.......* +.*......** +*.........**.* +**........*.** +#P -16 -93 +.......** +.......** +. +. +......*.* +.....* +**..*....* +**.*..*.** +....** +#P 4 -93 +.** +.** +. +. +. +....** +**.*..*.** +**..*....* +.....* +......*.* +#P 1 -98 +.* +*.** +*.** +.** +#P -40 -58 +..**.*......**.* +..*.**......*.** +**....**..**....** +*.....*...*.....* +.*.....*...*.....* +**....**..**....** +..**.*......**.* +..*.**......*.** +**....**..**....** +*.....*...*.....* +.*.....*...*.....* +**....**..**....** +..**.*......**.* +..*.**......*.** +#P -11 -65 +...................* +.................*** +................* +................** +**...................** +.*...................* +.*.*...............*.* +..**...............** +. +.............*** +.............*.* +.............*.* +. +. +. +. +. +......**...............** +.....*.*..........*....*.* +.....*............*......* +....**...................** +.........** +..........* +.......*** +.......* +#P -39 -20 +**....**.*......**.* +.*....*.**......*.** +*...**....**..**....** +**..*.....*...*.....* +.....*.....*...*.....* +**..**....**..**....** +.*..*.....*...*.....* +*....*.....*...*.....* +**..**....**..**....** +....*.....*...*.....* +**...*.....*...*.....* +.*..**....**..**....** +*.....**.*......**.* +**....*.**......*.** +#P 11 -21 +**....** +*.*..*.* +..**** +*..**..* +*..**..* +..*..* +#P 21 -15 +** +*** +**.* +..*.* +.*..* +..** +#P 32 0 +.**.** +.....* +*..** +.*** +.*** +*..** +.....* +.**.** +#P 26 9 +..*.* +.....* +.*..* +*.*.* +*..* +.** +#P 9 21 +..*..* +*..**..* +*..**..* +..**** +*.*..*.* +**....** +#P 2 15 +.** +*..* +*.*.* +.*.*** +...*** +#P -10 -2 +**.** +* +.**..* +..*** +..*** +.**..* +* +**.** +#P -4 -9 +...** +..*..* +*..*.* +....* +*.** +.* +#P -1 -4 +....* +....* +....* +. +***...*** +. +....* +....* +....* +#P 13 -11 +..*** +. +*.....* +*.....* +*.....* +. +..*** +#P 20 1 +....* +....* +....* +. +***...*** +. +....* +....* +....* +#P 10 12 +.* +.* +*.* +#P 8 -3 +....* +....* +....* +. +***...*** +. +....* +....* +....* +#P -8 33 +** +.* +.*.* +..** +. +. +. +. +. +. +. +. +. +..** +.*.* +.* +** +#P 2 36 +..* +.** +** +.**..** +. +. +. +.**..** +** +.** +..* +#P 17 35 +** +** +. +. +. +. +. +. +. +. +. +** +** +#P 31 36 +** +*.* +..* +*** +. +. +. +*** +..* +*.* +** +#P 40 33 +..** +..* +*.* +** +. +. +. +. +. +. +. +. +. +** +*.* +..* +..** +#P -38 79 +**....**.*......**.* +.*....*.**......*.** +*...**....**..**....** +**..*.....*...*.....* +.....*.....*...*.....* +**..**....**..**....** +.*..*.....*.....**.* +*....*.....*....*.** +**..**....**..**....** +....*.....*...*.....* +**...*.....*...*.....* +.*..**....**..**....** +*.....**.*......**.* +**....*.**......*.** +#P 6 84 +..* +*..* +*..* +.* +#P -7 68 +** +.* +.*.* +..** +. +. +. +. +. +. +. +. +. +..** +.*.* +.* +** +#P 2 70 +....** +..*....*** +**......*** +*........*.* +*........*.* +.*...****** +. +.*...****** +*........*.* +*........*.* +**......*** +..*....*** +....** +#P 18 68 +..** +..* +*.* +** +. +. +. +. +. +. +. +. +. +** +*.* +..* +..** +#P -8 87 +** +.* +.*.* +..** +. +. +. +. +. +. +. +. +. +..** +.*.* +.* +** +#P 1 89 +....** +..*....*** +**......*** +*........*.* +*........*.* +.*...****** +. +.*...****** +*........*.* +*........*.* +**......*** +..*....*** +....** +#P 16 87 +...** +...* +.*.* +.** +. +. +. +** +. +** +. +. +. +.** +.*.* +...* +...** +#P 62 -99 +**....**.*.....**...** +.*....*.**.....**...** +*.........** +**........*....**...** +...........*...*.*.*.* +**........**.....*.* +.*....**.*......**.* +*.....*.**..........** +**..**...............* +....*...............* +**...*..............** +.*..**...............* +*.....**.*..........* +**....*.**..........** +#P 93 -100 +......** +.....*.* +.....* +*.**.**....** +**.*..*...*.* +.....*....** +.......**.* +....*..*...** +....*..***..* +......**....* +....*..***..* +....*..*...** +.......**.* +.....*....** +**.*..*...*.* +*.**.**....** +.....* +.....*.* +......** +#P 107 -104 +..* +*.* +.*.* +.* +#P 113 -108 +** +** +#P 119 -105 +..** +..* +*.* +** +#P 126 -96 +.......** +.......*.* +.........* +..**....**.**.* +..*.*.....**.** +....*....* +..*...*..* +....*.*.** +....*....* +*..*....*** +....*....* +....*.*.** +..*...*..* +....*....* +..*.*.....**.** +..**....**.**.* +.........* +.......*.* +.......** +#P 123 -77 +..* +*.* +.*.* +.* +#P 119 -71 +** +** +#P 111 -76 +..** +.*.* +.* +** +#P 112 -96 +.** +*..* +.*.* +...* +#P 62 -37 +**....**.*......**.* +.*....*.**......*.** +*.........**..**....** +**........*...*.....* +...........*...*.....* +**........**..**....** +.*....**.*......**.* +*.....*.**......*.** +**..**........**....** +....*.........*.....* +**...*.........*.....* +.*..**........**....** +*.....**.*......**.* +**....*.**......*.** +#P 92 -43 +.....* +....*.* +...*...* +..*...* +.*...* +*...* +.*.* +..* +#P 108 -57 +.*.**.** +**.**..** +* +.......** +**.....** +** +........* +**..**.** +.**.**.* +#P 128 -62 +..* +.*.* +*...* +.*...* +..*...* +...*...* +....*.* +.....* +#P 141 -46 +.*.**.** +**.**..** +* +.......** +**.....** +** +........* +**..**.** +.**.**.* +#P 140 -31 +** +** +#P 147 -26 +.....* +....*.* +...*...* +..*...* +.*...* +*...* +.*.* +..* +#P 130 -13 +.*.**.** +**.**..** +* +.......** +**.....** +** +........* +**..**.** +.**.**.* +#P 111 -7 +..* +.*.* +*...* +.*...* +..*...* +...*...* +....*.* +.....* +#P 97 -24 +.*.**.** +**.**..** +* +.......** +**.....** +** +........* +**..**.** +.**.**.* +#P 105 -32 +** +** +#P 104 -44 +.** +*** +.** +..* +...** +....* +#P 114 -43 +...*.** +...*...*.* +**.......* +.*.....*.* +*.**.* +#P 138 -23 +* +** +..* +..** +..*** +..** +#P 123 -23 +....*.**.* +*.*.....* +*.......** +*.*...* +...**.* +#P 62 18 +**....**...**..**...** +.*....**...**..**...** +* +**....**...**..**...** +......*.*.*.*..*.*.*.* +**......*.*......*.* +.*.....**.*.....**.* +*..........**.......** +**..........*........* +...........*........* +**.........**.......** +.*..........*........* +*..........*........* +**.........**.......** +#P 97 17 +** +** +#P 114 19 +.** +*..* +.** +#P 123 17 +** +** +#P 123 34 +** +** +#P 104 31 +.** +*..* +.** +#P 97 34 +** +** +#P 109 23 +.*** +.*.* +.*** +.** +*** +*.* +*** +#P 62 61 +**....**.*......**.* +.*....*.**......*.** +*...**........**....** +**..*.........*.....* +.....*.........*.....* +**..**........**....** +.*....**.*......**.* +*.....*.**......*.** +**..**....**..**....** +....*.....*...*.....* +**...*.....*...*.....* +.*..**....**..**....** +*.....**.*......**.* +**....*.**......*.** +#P 99 52 +.......**....**....** +......*..*.*....*.*..* +......***..........*** +.........**......** +........*..******..* +........**........** +. +.* +*...***......*.........* +.*.*****..........***...* +.....*...*.....*.*****.* +.....**....***.....* +.....**....***....** +............*.....** +#P 130 59 +** +** +#P 137 59 +.....* +....*.* +. +....* +....** +.***** +.**.**.....** +....*......*.* +........**.*.* +........*.*.* +..........* +..*.*...*..* +..*..*.....* +..*.*..*...* +.......*...* +...........* +........*..* +...*......* +**.**...*.*.* +*****...**.*.* +...**......*.* +...*.......** +. +...*.* +....* +#P 142 90 +** +** +#P 119 97 +.....**.....* +.....**....***....** +.....*.....***....** +.*.*****.*.....*...* +*...***..........*****.* +.*.........*......***...* +.......................* +. +.....**........** +.....*..******..* +......**......** +...***..........*** +...*..*.*....*.*..* +....**....**....** +#P 111 102 +** +** +#P 92 79 +.........* +........*.* +. +.**.......* +*.*......** +*.*.**...***** +.*.*.*...**.** +...*......* +..*..* +..* +..*...* +..*...*..*.* +..*.....*..* +..*..*...*.* +...* +.*.*.* +*.*.** +*.*......* +.**.....**.** +........***** +........** +.........* +. +.......*.* +........* +#P 99 71 +** +** +#P 111 74 +*** +*.* +*.* diff --git a/programs/demos/life2/lif/P136.lif b/programs/demos/life2/lif/P136.lif new file mode 100644 index 000000000..ee1348fa4 --- /dev/null +++ b/programs/demos/life2/lif/P136.lif @@ -0,0 +1,1137 @@ +#Life 1.05 +#D 12-barrelled p136 glider gun +#D +#D A 12-barrelled, period 136 glider gun, using 29 B-heptominoes moving +#D around a p3944 track consisting of 16 of David Buckingham's 64 gen +#D turns and 40 of his 73 gen turns. This is the smallest possible +#D period that can be obtained using Buckingham's turns. Any larger +#D multiple of 8 can also be obtained as a gun period. +#D dean@ucdmath.ucdavis.edu 11/23/91 +#N +#P -58 -155 +* +*** +...* +..** +#P -61 -151 +** +.* +.*.* +..** +#P -62 -142 +.** +.* +. +. +..** +*.* +* +* +*..* +.** +#P -80 -133 +.....**** +**.......* +*...**...* +....*...* +#P -55 -131 +..* +**.** +***.** +.***** +..*** +...* +#P -48 -135 +** +* +#P -36 -145 +** +* +#P -30 -152 +.....* +....*** +...*.*** +..*...* +.*...* +***.* +.*** +..* +#P -94 -115 +.** +*..* +* +* +*.** +..* +. +. +.** +.* +#P -91 -103 +** +* +#P -87 -102 +....* +*...* +.*..* +.**.** +..*.* +...* +#P -74 -110 +** +* +#P -61 -110 +..* +.*.* +*...* +.*...* +..*...* +...*...* +....*.* +.....* +#P -101 -83 +..** +.*.* +.* +** +#P -97 -80 +..** +...* +*** +* +#P -88 -80 +...* +....* +*....*..** +**.*..*.* +....** +#P -74 -79 +** +* +#P -79 -67 +..* +.** +. +.* +*.* +*..* +.*..* +. +.* +.** +#P -65 -73 +...* +*..* +..*** +..*** +.*..* +.*.* +.*** +#P -55 -83 +....* +..*.** +.* +....* +**.* +.* +#P -31 -90 +..** +. +*...* +*....* +..*.*.* +...*.*.* +....*....* +.....*...* +. +......** +#P -27 -103 +..** +...* +*** +* +#P -30 -107 +..** +.*.* +.* +** +#P -32 -122 +..** +.*.* +*** +** +...** +..*** +. +. +..** +..* +#P -24 -129 +..*** +.*...* +* +. +*...** +.*** +#P -17 -121 +** +* +#P -5 -111 +** +* +#P 1 -110 +.*** +* +*...* +*..*.* +..*.*..* +...*...* +.......* +....*** +#P 4 -155 +* +*** +...* +..** +#P 1 -151 +** +.* +.*.* +..** +#P -1 -142 +...* +..** +. +...* +..*.* +.*..* +*..* +. +...* +..** +#P 8 -132 +.* +**** +**** +. +. +**** +.*** +..* +#P 13 -135 +** +* +#P 26 -148 +.....*...* +....*...**..** +....*.......* +**...**** +* +#P 39 -130 +.*** +* +*..* +.** +.** +*..* +...* +** +#P 54 -134 +.** +*..* +* +* +*.** +..* +. +. +.** +.* +#P 26 -116 +......** +. +.....*...* +....*....* +...*.*.* +..*.*.* +*....* +*...* +. +..** +#P 51 -114 +** +* +#P 62 -116 +....** +**.*..*.** +*....*..* +....* +...* +#P 2 -92 +...* +.*** +* +** +#P 5 -88 +..** +..* +*.* +** +#P -18 -82 +** +* +#P -8 -75 +** +* +#P -4 -77 +....* +....* +...*** +....** +.** +*..* +. +....** +..*..* +..*** +#P 6 -79 +.** +.** +.** +.* +*.* +*.** +. +. +.** +.* +#P -25 -59 +.** +.* +. +. +..** +*.* +* +* +*..* +.** +#P -34 -62 +..* +.*** +.*..* +...** +...* +** +**** +.*..* +..* +#P -38 -57 +** +* +#P -26 -44 +** +*.* +..* +..** +#P -29 -40 +** +* +.*** +...* +#P -61 -48 +......* +.....* +.*..*....* +**.*..*.** +....** +#P -49 -48 +** +* +#P -58 -29 +* +*** +...* +..** +#P -61 -25 +** +.* +.*.* +..** +#P -63 -16 +...* +..** +. +...* +..*.* +.*..* +*..* +. +...* +..** +#P -80 -8 +......* +.....* +.*..*....* +**.*..*.** +....** +#P -47 -18 +..** +**.* +* +*.* +.** +#P -36 -19 +** +* +#P -31 -27 +......* +......** +.....**.* +....*..*** +...*.*.* +..*.*.* +***..* +.*.** +..** +...* +#P 0 -48 +......* +......** +.....**.* +....*..*** +...*.*.* +..*.*.* +***..* +.*.** +..** +...* +#P -78 11 +..* +.** +** +.*..* +..** +#P -95 11 +..** +...* +. +*..* +.*..* +..*.* +...* +. +..** +..* +#P -112 25 +.....**** +**.......* +*...**...* +....*...* +#P -92 30 +** +* +#P -109 39 +.**...* +.**..** +**......* +.*.......* +.**.**.** +.**...* +#P -126 43 +.** +*..* +* +* +*.** +..* +. +. +.** +.* +#P -123 55 +** +* +#P -113 68 +** +* +#P -133 75 +..** +.*.* +.* +** +#P -129 78 +..** +...* +*** +* +#P -120 78 +...* +....* +*....*..** +**.*..*.* +....** +#P -110 70 +..**.** +..*....** +** +**.*....* +**.*..** +...*..* +#P -93 48 +..* +.*.* +*...* +.*...* +..*...* +...*...* +....*.* +.....* +#P -111 91 +..* +.** +. +.* +*.* +*..* +.*..* +. +.* +.** +#P -88 93 +** +* +#P -87 75 +....* +..*.** +.* +....* +**.* +.* +#P -63 68 +..** +. +*...* +*....* +..*.*.* +...*.*.* +....*....* +.....*...* +. +......** +#P -61 16 +.*** +* +*...* +*..*.* +..*.*..* +...*...* +.......* +....*** +#P -36 10 +......** +. +.....*...* +....*....* +...*.*.* +..*.*.* +*....* +*...* +. +..** +#P -20 11 +......** +........** +...*.....* +.........* +***.* +*..*.* +**.*.*.** +. +..*** +#P 2 6 +.....* +. +...***.* +..*.** +..**.* +*.*** +. +..* +#P 33 -15 +.....* +....*** +...*.*** +..*...* +.*...* +***.* +.*** +..* +#P 20 -47 +** +* +#P 29 -43 +**.* +*..* +.*** +#P 33 -48 +** +* +#P 38 -52 +....*** +.......* +...*...* +..*.*..* +*..*.* +*...* +* +.*** +#P 60 -82 +....* +..*.** +.* +....* +**.* +.* +#P 68 -99 +.** +*.* +* +*.* +...* +.*.* +...* +....* +#P 85 -102 +..** +...* +. +*..* +.*..* +..*.* +...* +. +..** +..* +#P 94 -84 +.....**** +**.......* +*...**...* +....*...* +#P 83 -82 +** +* +#P 97 -71 +....* +...*** +..**..* +...**.* +**.** +.*.....* +.*....* +..*..* +...* +#P 118 -70 +.** +.* +. +. +.* +**.* +...* +...* +*..* +.** +#P 91 -51 +.....* +....*.* +...*...* +..*...* +.*...* +*...* +.*.* +..* +#P 70 -20 +.....* +....*.* +...*...* +..*...* +.*...* +*...* +.*.* +..* +#P 69 -8 +** +* +#P 60 -24 +..* +.*** +**.* +#P 62 -19 +.*.** +.* +....* +*...* +*..* +*** +#P 52 -15 +** +* +#P 39 8 +...*** +..*..* +.....* +.* +.*..* +.*** +** +.**.* +..*** +...* +#P 29 12 +*** +*** +*** +...*** +...*** +...*** +#P 1 36 +.** +.* +. +. +*** +** +...** +..*** +.*.* +.** +#P 2 51 +..** +.*.* +.* +** +#P 5 55 +..** +...* +*** +* +#P 10 41 +....* +....* +..* +.***...* +*...*.** +.***** +..*** +#P 20 48 +** +* +#P 27 47 +** +* +#P 34 49 +.* +**.* +....* +.* +..*.** +....* +#P -30 66 +...* +.*** +* +** +#P -27 70 +..** +..* +*.* +** +#P -26 79 +.** +.** +.** +.* +*.* +*.** +. +. +.** +.* +#P -26 93 +** +* +#P -50 76 +** +* +#P -46 81 +* +*.* +...** +..* +#P -57 93 +** +* +#P -57 99 +.** +.* +. +. +..** +*.* +* +* +*..* +.** +#P -76 103 +..* +*** +*.* +* +#P -81 110 +** +* +#P -93 110 +......* +.....* +.*..*....* +**.*..*.** +....** +#P -61 118 +** +* +.*** +...* +#P -58 114 +** +*.* +..* +..** +#P -32 110 +......* +......** +.....**.* +....*..*** +...*.*.* +..*.*.* +***..* +.*.** +..** +...* +#P -18 103 +....*.* +......* +*...*.* +*.** +#P -18 123 +..** +...* +. +*..* +.*..* +..*.* +...* +. +..** +..* +#P 6 106 +....*** +.......* +...*...* +..*.*..* +*..*.* +*...* +* +.*** +#P 6 125 +** +* +#P 1 143 +....** +**.*..*.** +*....*..* +....* +...* +#P 13 142 +** +* +#P 5 138 +** +* +#P 7 134 +.*.*..** +*...*.*** +.*......** +..*****.* +....**** +.....* +#P 33 150 +** +* +.*** +...* +#P 36 146 +** +*.* +..* +..** +#P 37 131 +.** +*..* +...* +...* +.*.* +** +. +. +.** +.* +#P 37 125 +** +* +#P 49 128 +.*...* +*...**..** +*.......* +.**** +#P 39 112 +....* +....*** +...*...* +***....* +***.*.** +**...* +#P 36 112 +** +* +#P 32 101 +..* +.*.* +*...* +.*...* +..*...* +...*...* +....*.* +.....* +#P 69 104 +.** +.* +. +. +.* +**.* +...* +...* +*..* +.** +#P 69 93 +** +* +#P 57 82 +..*** +.** +**..* +.* +..** +#P 63 83 +* +* +.* +* +* +#P 81 95 +......* +.....* +.*..*....* +**.*..*.** +....** +#P 65 78 +...** +.....* +.*...* +....** +*..*..*** +...***..* +.*......* +..**..** +....** +#P 65 70 +.* +**.* +....* +.* +..*.** +....* +#P 100 72 +..** +...* +. +*..* +.*..* +..*.* +...* +. +..** +..* +#P 113 64 +.....**** +**.......* +*...**...* +....*...* +#P 101 61 +** +* +#P 94 48 +....* +...*.* +......* +.***..* +**...** +.**.** +..**.** +...*..* +...*..* +.....** +#P 95 36 +..** +. +*...* +*....* +..*.*.* +...*.*.* +....*....* +.....*...* +. +......** +#P 52 16 +** +* +#P 58 16 +.....* +***.**..** +****....* +....** +#P 73 15 +** +* +.*** +...* +#P 77 12 +** +*.* +..* +..** +#P 88 -17 +** +.* +.*.* +..** +#P 92 -20 +* +*** +...* +..** +#P 101 -22 +......** +......*** +**..*..*.* +*...**..** +....** +#P 97 -10 +....* +...*** +..*..** +.** +**.*** +**..* +...*** +.** +.** +#P 98 5 +** +* +#P 91 11 +....*** +.......* +...*...* +..*.*..* +*..*.* +*...* +* +.*** +#P 132 36 +** +* +#P 133 40 +.** +*..* +* +* +*.** +..* +. +. +.** +.* +#P 128 21 +.*** +*..* +**..** +*.....* +.*** +.....** +.***..* +..*..* +....** +#P 136 11 +...* +.*** +* +** +#P 140 14 +..** +..* +*.* +** +#P 121 9 +...* +....* +*....*..** +**.*..*.* +....** +#P 133 -20 +..* +.*** +***.* +.*...* +..*...* +...*.*** +....*** +.....* +#P 132 -26 +** +* +#P 128 -40 +.*** +.*..* +*...* +.....* +.***.** +.....* +*...** +....* +#P 121 -52 +.**** +*.......** +*...**..* +.*..* +#P 136 -51 +...* +.*** +* +** +#P 140 -48 +..** +..* +*.* +** diff --git a/programs/demos/life2/lif/P94S.lif b/programs/demos/life2/lif/P94S.lif new file mode 100644 index 000000000..61c3af3d7 --- /dev/null +++ b/programs/demos/life2/lif/P94S.lif @@ -0,0 +1,1608 @@ +#Life 1.05 +#D Period 94 gun(s) +#D +#D By Dean Hickerson. +#D This was the first gun to take advantage +#D of the AK47 reaction. It was also the +#D smallest for many years. +#N +#P -303 -3 +..** +...* +*** +* +#P -301 -8 +.** +*..* +.** +#P -292 -13 +.** +**.*** +.***** +..*** +#P -283 -30 +** +.** +* +#P -264 -7 +***** +*....* +* +.*...* +...* +#P -245 -14 +..*** +.***** +**.*** +.** +#P -265 -32 +..** +...* +*** +* +#P -259 -30 +..** +...* +*** +* +#P -261 -51 +** +** +#P -255 -51 +...* +.*** +* +** +#P -249 -54 +** +*.* +* +#P -258 -44 +...* +.**** +.**..* +*...* +.*** +.*** +#P -255 -38 +.......** +.....* +..*..*..* +.***...* +*.***** +....** +...* +...* +#P -251 -28 +** +** +#P -238 -26 +** +** +#P -240 -35 +*** +*.* +*..* +.*.* +.*** +#P -236 -40 +...* +..** +.*..* +*** +.*..* +..** +#P -232 -28 +** +* +.*** +...* +#P -229 -34 +* +.** +** +#P -236 -49 +* +*** +...* +..** +#P -238 -59 +.* +.** +*.* +#P -228 -49 +** +** +#P -217 -32 +** +** +#P -217 -9 +...* +.*...* +* +*....* +***** +#P -206 -10 +*.* +.** +.* +#P -198 -13 +.** +**.*** +.***** +..*** +#P -211 -34 +** +* +.*** +...* +#P -216 -48 +.* +** +*.* +#P -215 -55 +* +*** +...* +..** +#P -212 -45 +.** +..* +**.* +**.* +.** +#P -207 -48 +*** +*..* +.*** +#P -207 -55 +** +** +#P -197 -29 +.* +..* +*** +#P -199 -39 +..** +...* +*** +* +#P -197 -51 +.*** +*..* +*** +#P -195 -58 +** +** +#P -189 -58 +...* +.*** +* +** +#P -192 -48 +.** +.* +*.** +*.** +.** +#P -193 -37 +..** +...* +*** +* +#P -187 -51 +.* +.** +*.* +#P -183 -56 +...* +.*** +* +** +#P -185 -35 +** +** +#P -177 -57 +* +*** +...* +..* +..* +#P -173 -53 +.* +..* +* +#P -171 -59 +* +*** +...* +..** +#P -173 -36 +** +** +#P -167 -38 +** +* +.*** +...* +#P -163 -28 +*.* +** +.* +#P -163 -59 +** +** +#P -164 -54 +.*** +*...* +**.** +*....* +.**.** +.....* +**.** +*** +* +#P -169 -46 +..*.* +**.** +...** +#P -161 -40 +** +* +.*** +...* +#P -151 -56 +** +** +#P -154 -51 +..*** +.*...* +.**.** +*....* +**.** +* +.**.** +...*** +.....* +#P -148 -43 +*.* +**.** +** +#P -149 -35 +..** +...* +*** +* +#P -145 -56 +...* +.*** +* +** +#P -142 -50 +.** +*.* +..* +#P -141 -33 +** +** +#P -170 -7 +***** +*....* +* +.*...* +...* +#P -176 6 +** +** +#P -182 13 +.** +...* +*.* +.*.* +#P -174 27 +..** +...* +*** +* +#P -170 17 +...* +..*.* +.....* +....** +.**.* +*..* +*.* +.* +#P -170 6 +...* +.*** +* +** +#P -164 8 +...* +.*** +* +** +#P -166 29 +** +** +#P -156 17 +.** +* +#P -160 3 +.* +** +*.* +#P -151 4 +* +*** +...* +..** +#P -143 4 +** +** +#P -151 18 +..* +.*** +*...* +.**.* +..** +#P -153 27 +** +** +#P -147 25 +** +* +.*** +...* +#P -143 13 +***...*** +#P -139 9 +* +* +* +. +. +. +* +* +* +#P -131 17 +.* +** +*.* +#P -123 -9 +...* +.*...* +* +*....* +***** +#P -125 38 +.* +..* +*** +#P -132 -52 +* +*** +...* +..** +#P -128 -31 +** +** +#P -126 -54 +* +*** +...* +..** +#P -126 -43 +..*** +.*...* +*.....* +* +*.**...* +...* +....*.* +#P -122 -33 +** +* +.*** +...* +#P -121 -46 +.** +* +.** +#P -117 -47 +*.* +...* +...* +*..* +..* +#P -118 -54 +** +** +#P -116 -35 +** +* +.*** +...* +#P -111 -44 +* +* +* +#P -109 -46 +*** +#P -109 -40 +*** +#P -105 -44 +* +* +* +#P -109 -33 +..** +...* +*** +* +#P -105 -52 +** +** +#P -103 -31 +..** +...* +*** +* +#P -99 -42 +...* +..** +.*..* +...* +.....** +*.....* +*....* +*.*** +.** +#P -99 -52 +...* +.*** +* +** +#P -95 -29 +** +** +#P -91 -51 +.** +*.* +..* +#P -87 -47 +* +*** +...* +..** +#P -83 -26 +** +** +#P -84 -39 +...* +...** +..*..* +...* +** +*.....* +.*....* +..***.* +....** +#P -77 -28 +** +* +.*** +...* +#P -81 -49 +* +*** +...* +..** +#P -76 -7 +***** +*....* +* +.*...* +...* +#P -73 -49 +** +** +#P -72 -43 +..*** +. +* +* +* +. +..*** +#P -66 -46 +.*** +. +* +* +#P -67 -40 +*.*** +* +#P -61 -44 +* +* +* +#P -65 -33 +..** +...* +*** +* +#P -61 -52 +** +** +#P -59 -31 +..** +...* +*** +* +#P -55 -42 +...* +..** +.*..* +...* +.....** +*.....* +*....* +*.*** +.** +#P -55 -52 +...* +.*** +* +** +#P -51 -29 +** +** +#P -49 -50 +...* +.*** +* +** +#P -57 -16 +*.* +.** +.* +#P -41 -40 +** +** +*.* +#P -39 -30 +** +** +#P -36 -38 +.** +**.* +.*.* +..* +#P -33 -32 +** +* +.*** +...* +#P -43 -51 +* +*** +...* +..** +#P -37 -53 +* +*** +...* +..** +#P -29 -53 +** +** +#P -29 -45 +.* +** +#P -26 -48 +.* +*.* +*.** +** +#P -22 -40 +..** +**.* +.*.* +..* +#P -17 -41 +** +* +#P -27 -34 +** +* +.*** +...* +#P -35 -16 +* +*.* +** +#P -15 -29 +..** +...* +*** +* +#P -12 -35 +.** +*.** +*.* +.* +#P -17 -50 +** +** +#P -11 -50 +...* +.*** +* +** +#P -6 -37 +.** +.** +*.* +#P -7 -27 +** +** +#P -1 -50 +** +.*.*** +*.** +....* +#P 7 -41 +..* +.* +** +*...** +.** +.***** +#P 6 -29 +** +** +#P 8 -52 +* +*** +...* +..** +#P 12 -31 +** +* +.*** +...* +#P 16 -52 +** +** +#P 18 -44 +..* +**.** +..* +#P 23 -47 +..* +**.** +..* +#P 24 -36 +..** +...* +*** +* +#P 28 -55 +** +** +#P 30 -34 +..** +...* +*** +* +#P 33 -44 +...* +....* +....** +**...* +...** +***** +#P 34 -55 +...* +.*** +* +** +#P 38 -32 +** +** +#P 40 -53 +...* +.*** +* +** +#P 31 -21 +* +.** +** +#P -108 41 +.** +** +..* +#P -103 54 +** +** +*.* +#P -101 64 +** +** +#P -98 56 +.** +**.* +.*.* +..* +#P -95 62 +** +* +.*** +...* +#P -99 41 +* +*** +...* +..** +#P -91 50 +** +.* +#P -88 51 +** +*.** +*.* +.* +#P -91 41 +** +** +#P -84 43 +..* +.*.* +**.* +..** +#P -79 46 +* +** +#P -83 57 +..** +...* +*** +* +#P -79 38 +** +** +#P -77 59 +..** +...* +*** +* +#P -74 53 +.** +*.** +*.* +.* +#P -73 38 +...* +.*** +* +** +#P -69 61 +** +** +#P -68 51 +.** +.** +*.* +#P -63 38 +** +.** +* +#P -74 75 +..* +*.* +.** +#P -32 62 +..** +.*.* +.* +** +#P -18 50 +* +*.* +** +#P -46 36 +* +*.* +** +#P -42 22 +.** +. +** +.* +#P -40 14 +** +** +#P -36 20 +.* +*.* +*.* +** +#P -34 14 +...* +.*** +* +** +#P -32 3 +** +*.* +* +#P -28 16 +...* +.*** +* +** +#P -29 26 +..*** +. +* +* +* +. +..*** +#P -38 35 +..** +...* +*** +* +#P -30 37 +** +** +#P -23 26 +..*.* +..*..* +**..* +* +* +#P -17 35 +** +** +#P -15 24 +.* +. +* +* +#P -12 19 +.* +*..* +*..** +.....* +**...* +....* +...* +..* +#P -15 12 +* +*** +...* +..** +#P -11 33 +** +* +.*** +...* +#P -4 31 +* +.** +** +#P -7 12 +** +** +#P 5 26 +.* +* +*** +#P 8 31 +..** +...* +*** +* +#P 6 10 +** +** +#P 12 10 +...* +.*** +* +** +#P 11 18 +..* +.** +* +** +#P 14 22 +...*** +..**** +.**.*..* +.**..*.* +*..** +*.*.*.* +*.....* +..*** +..*** +#P 16 33 +** +** +#P 25 26 +*.* +*..* +*.* +#P 25 14 +* +*** +...* +..** +#P 31 12 +* +*** +...* +..** +#P 28 4 +** +.** +* +#P 39 12 +** +** +#P 44 20 +..* +.*.* +* +.** +#P 42 31 +* +.** +** +#P 35 33 +** +* +.*** +...* +#P 29 35 +** +** +#P 31 24 +.* +. +* +* +#P 34 19 +.* +*..* +*..** +.....* +**...* +....* +...* +..* +#P 46 -52 +* +*** +...* +..** +#P 52 -54 +* +*** +...* +..** +#P 50 -31 +** +** +#P 53 -43 +..* +.*.* +*...* +*...* +*....* +.*..* +...** +#P 57 -49 +..* +.* +. +. +**** +#P 62 -48 +* +* +.* +* +*** +#P 60 -54 +** +** +#P 56 -33 +** +* +.*** +...* +#P 62 -35 +** +* +.*** +...* +#P 58 -21 +* +*.* +** +#P 66 -10 +.*** +***** +***.** +...** +#P 65 -77 +* +*** +...* +..** +#P 72 -51 +** +** +#P 69 -46 +.....* +..*...* +..* +.* +..*.**** +*** +#P 75 -40 +...* +..*.* +.*...* +.*...* +*....* +.*..* +.** +#P 74 -30 +..** +...* +*** +* +#P 78 -51 +...* +.*** +* +** +#P 84 -49 +...* +.*** +* +** +#P 82 -28 +** +** +#P 91 -50 +.** +** +..* +#P 96 -54 +* +*** +...* +..** +#P 94 -31 +** +** +#P 97 -43 +..* +.*.* +*...* +*...* +*....* +.*..* +...** +#P 101 -49 +..* +.*...* +.....* +......* +****.* +.....*** +#P 104 -54 +** +** +#P 100 -33 +** +* +.*** +...* +#P 106 -35 +** +* +.*** +...* +#P 113 -37 +..** +...* +*** +* +#P 115 -77 +* +*** +...* +..** +...*** +....** +....*.* +#P 117 -56 +** +** +#P 114 -51 +..*** +.*...* +.**.** +*....* +**.** +* +.**.** +...*** +.....* +#P 120 -43 +*.* +**.** +** +#P 123 -56 +...* +.*** +* +** +#P 126 -50 +.* +* +..* +#P 129 -54 +...* +.*** +* +.* +.* +#P 119 -35 +..** +...* +*** +* +#P 127 -33 +** +** +#P 113 -9 +...** +***.** +***** +.*** +#P 64 39 +*** +* +.* +#P 70 36 +* +*** +...* +..** +#P 78 36 +** +** +#P 61 49 +.** +.** +*** +#P 68 59 +** +** +#P 74 70 +..* +** +.** +#P 69 47 +..* +.* +** +*...** +.** +.***** +#P 74 57 +** +* +.*** +...* +#P 80 55 +** +* +.*** +...* +#P 80 44 +..* +**.** +..* +#P 85 47 +..* +**.** +..* +#P 90 39 +** +** +#P 95 50 +...* +....* +....** +**...* +...** +***** +#P 92 60 +..** +...* +*** +* +#P 100 62 +** +** +#P 96 39 +...* +.*** +* +** +#P 103 42 +*** +..* +.* +#P 105 53 +**** +***.* +.** +#P 126 34 +*.* +** +.* +#P 126 18 +.** +*.* +..* +#P 137 9 +..* +.*.* +*...* +.*.* +..* +#P 142 2 +** +** +#P 144 23 +..** +...* +*** +* +#P 148 13 +...* +..*.* +.....* +....** +.**.* +*..* +*.* +.* +#P 148 2 +...* +.*** +* +** +#P 152 25 +** +** +#P 155 4 +.** +*.* +..* +#P 161 6 +* +*** +...* +..** +#P 165 27 +** +** +#P 171 25 +** +* +.*** +...* +#P 169 17 +.** +**.* +.*..* +..** +#P 167 4 +* +*** +...* +..** +#P 172 4 +...** +..*..* +.....* +..* +..*...* +.* +*..*.* +*..*.* +*.*..*.* +.....*..* +......** +......** +#P 183 8 +.* +* +*** +#P 187 33 +..* +*.* +.** +#P 160 -10 +.*** +***** +***.** +...** +#P 142 -58 +* +*** +...* +..** +#P 150 -58 +** +** +#P 141 -53 +.........* +.........** +..*.******.* +**..**.*..*** +.*....*....* +..**.....** +....*...* +....*.*.* +.....*** +......* +#P 140 -35 +** +** +#P 146 -37 +** +* +.*** +...* +#P 158 -33 +..* +*.* +.** +#P 162 -61 +** +** +#P 158 -42 +..** +...* +*** +* +#P 164 -40 +..** +...* +*** +* +#P 168 -61 +...* +.*** +* +** +#P 160 -56 +...* +..** +.*.******.* +***..*.**..** +.*....*....* +..**.....** +....*...* +....*.*.* +.....*** +......* +#P 174 -59 +...* +.*** +* +** +#P 180 -58 +* +*** +...* +..** +#P 172 -38 +** +** +#P 186 -60 +* +*** +...* +..** +#P 194 -60 +** +** +#P 188 -55 +..*** +.*...* +*.....* +*.....* +*.....* +.*...* +..*** +#P 184 -37 +** +** +#P 190 -39 +** +* +.*** +...* +#P 196 -41 +** +* +.*** +...* +#P 198 -33 +*.* +** +.* +#P 206 -57 +** +** +#P 212 -57 +...* +.*** +* +** +#P 207 -52 +..*** +.*...* +*.....* +*.....* +*.....* +.*...* +..*** +#P 208 -36 +..** +...* +*** +* +#P 216 -34 +** +** +#P 220 -77 +* +*** +...* +..** +#P 227 -51 +** +** +#P 187 -15 +.***** +*....* +.....* +*...* +..* +#P 207 -15 +* +*.* +** +#P 207 -9 +...** +***.** +***** +.*** +#P 234 -17 +..* +*...* +.....* +*....* +.***** +#P 229 -31 +..* +..* +...* +*** +* +#P 237 -28 +** +** +#P 230 -39 +...*** +..*...* +.*.....* +*...*...* +*..*.*..* +*...*...* +.*.....* +......* +.....* +#P 233 -51 +...* +.*** +* +** +#P 239 -58 +** +*.* +* +#P 245 -53 +** +.** +* +#P 252 -53 +* +*** +...* +..** +#P 260 -53 +** +** +#P 248 -39 +*** +*.* +*..* +.*.* +.*** +#P 252 -44 +...* +..** +.*..* +*** +.*..* +..** +#P 259 -38 +* +.** +** +#P 262 -34 +** +* +.*** +...* +#P 256 -32 +** +* +.*** +...* +#P 250 -30 +** +** +#P 254 -10 +.*** +***** +***.** +...** +#P 281 -15 +.***** +*....* +.....* +*...* +..* +#P 284 -29 +*** +* +.* +#P 298 -10 +.** +*..* +.** +#P 300 -5 +** +* +.*** +...* diff --git a/programs/demos/life2/lif/PI.lif b/programs/demos/life2/lif/PI.lif new file mode 100644 index 000000000..bacba9dc5 --- /dev/null +++ b/programs/demos/life2/lif/PI.lif @@ -0,0 +1,13 @@ +#Life 1.05 +#D Pi Heptomino +#D +#D A common pattern in Life. +#D +#D Pi = 3.141592653589793238 +#D +#D See SPARK2PI, PIPUF, REVFUSE. +#N +#P 3 3 +*** +*.* +*.* diff --git a/programs/demos/life2/lif/PINBALL.lif b/programs/demos/life2/lif/PINBALL.lif new file mode 100644 index 000000000..154e70c06 --- /dev/null +++ b/programs/demos/life2/lif/PINBALL.lif @@ -0,0 +1,189 @@ +#Life 1.05 +#D Pinball +#D This demonstrates some glider reflections. +#N +#P -24 -17 +..* +.*.* +*..* +.** +#P -28 -21 +..***** +.*....* +*..* +*.** +* +* +** +#P -25 -25 +.* +*.* +.* +#P -32 -18 +.* +*.* +.* +#P -33 -9 +....*..* +....* +...*....* +..*.*..** +**.* +. +. +*..* +..** +#P -16 -26 +....*..* +....* +...*....* +..*.*..** +**.* +. +. +*..* +..** +#P 9 -26 +.* +. +* +** +#P 13 -26 +* +* +.* +*.* +.*.** +. +. +.*..* +.** +#P 22 -25 +...* +..*.* +...* +. +.***** +.*....* +....*..* +....**.*..* +.*.....*.*.* +*.*....*..* +*..*..** +.** +#P 26 -9 +.* +. +* +** +#P 30 -9 +* +* +.* +*.* +.*.** +. +. +.*..* +.** +#P 24 3 +** +** +** +.* +*.* +.* +* +#P 19 8 +***.* +**** +....* +#P -25 3 +.** +.** +.** +.* +*.* +.*.*.*** +..*.**** +...* +#P 0 -7 +** +** +#P 0 4 +** +** +#P 0 15 +** +** +#P -8 20 +.** +.** +.** +.* +*.* +.*.*.*** +..*.**** +...* +#P 7 20 +** +** +** +.* +*.* +.* +* +#P 2 25 +***.* +**** +....* +#P -17 16 +.** +*..* +.*.* +..* +#P -21 17 +** +* +* +*.** +*..* +.*....* +..***** +#P -25 18 +.* +*.* +.* +#P -18 25 +.* +*.* +.* +#P 15 16 +.** +*..*..** +*.*....*..* +.*.....*.*.* +....**.*..* +....*..* +.*....* +.***** +. +...* +..*.* +...* +#P -17 12 +*.* +** +.* +#P -12 17 +..* +** +.** +#P 11 17 +* +.** +** +#P 16 12 +*.* +.** +.* diff --git a/programs/demos/life2/lif/PIPUF.lif b/programs/demos/life2/lif/PIPUF.lif new file mode 100644 index 000000000..6c191164a --- /dev/null +++ b/programs/demos/life2/lif/PIPUF.lif @@ -0,0 +1,187 @@ +#Life 1.05 +#D Pi fuse burning puffer +#D See LINEPUF, BSHIP. +#D Dean Hickerson, Al Hensel, May 1994. +#N +#P 2 -1 +*** +..* +*** +#P 2 -12 +** +** +#P 2 11 +** +** +#P 8 -17 +* +..* +* +. +* +* +* +* +. +* +..* +* +. +* +* +. +* +..* +* +. +* +* +. +* +..* +* +. +* +* +* +* +. +* +..* +* +#P 6 -43 +*.* +*..* +...** +.....* +...**** +..*....* +....*..* +....*..* +......* +*.**** +*...* +...* +.*.* +. +..*** +...** +..*** +. +.*.* +.*..* +....* +..*..* +....** +#P 15 -42 +* +**** +..** +.....* +..**** +......* +..*..*** +....*** +.....* +*.*** +**..* +.*** +.* +...* +.*.* +....* +.*.* +...* +.* +.*** +..*** +..** +#P 11 -20 +*.*..** +*.*.** +* +*.*.** +*.*..** +*.....** +*.*..*.** +*.*.***..* +*........* +*.*.***..* +*.*..*.** +*.....** +*.*..** +*.*.** +* +*.*.** +*.*..** +*.....** +*.*..*.** +*.*.***..* +*........* +*.*.***..* +*.*..*.** +*.....** +*.*..** +*.*.** +* +*.*.** +*.*..** +*.....** +*.*..*.** +*.*.***..* +*........* +*.*.***..* +*.*..*.** +*.....** +*.*..** +*.*.** +* +*.*.** +*.*..** +#P 6 21 +....** +..*..* +....* +.*..* +.*.* +. +..*** +...** +..*** +. +.*.* +...* +*...* +*.**** +......* +....*..* +....*..* +..*....* +...**** +.....* +...** +*..* +*.* +#P 15 21 +..** +..*** +.*** +.* +...* +.*.* +....* +.*.* +...* +.* +.*** +**..* +*.*** +.....* +....*** +..*..*** +......* +..**** +.....* +..** +**** +* diff --git a/programs/demos/life2/lif/POLES.lif b/programs/demos/life2/lif/POLES.lif new file mode 100644 index 000000000..d0354e02a --- /dev/null +++ b/programs/demos/life2/lif/POLES.lif @@ -0,0 +1,202 @@ +#Life 1.05 +#D Barberpoles and how to stabilize the ends +#D Most of these by Bob Wainwright, 1989. +#N +#P -37 -5 +** +*.*.*.* +....* +..*....** +......* +..**...* +#P -34 1 +..* +** +...* +.** +....* +..** +.....* +...** +......* +....** +.......* +.....** +........* +......** +#P -31 15 +......* +..* +*.*..** +.* +.*.*...* +...*.*..* +.......** +#P -33 -19 +.....** +.....** +. +.....**** +....*...* +**.*.* +**.*.*.* +...*...* +...**...** +#P -24 -9 +** +..* +..*.* +....* +.....** +#P -18 -3 +**...** +..*...* +..*.*.*.** +....*.*.** +.*...* +.**** +. +...** +...** +#P -14 -23 +...* +.*.* +*....* +***** +. +..* +..** +..** +...* +#P -8 -19 +*.* +..* +....*.* +......* +........*.* +..........* +#P 4 -19 +......* +....*.* +..* +*.* +#P 12 -23 +...* +.*.* +.....* +****** +. +..** +....* +.* +..** +#P 34 -23 +** +.* +#P 25 -22 +........* +. +......*.* +. +....*.* +. +..*.* +. +*.* +. +* +#P 23 -12 +* +** +#P -1 -3 +..* +.*.* +.*.* +**.** +. +***** +*....* +.*.* +...* +#P 5 -3 +......* +....*.* +..*.* +*.* +* +#P 12 -7 +..* +..*.* +*....* +.***** +. +.**.** +..*.* +..*.* +...* +#P -11 10 +*** +. +.* +* +** +#P -8 12 +** +. +..** +. +....** +. +......** +#P 0 18 +.*.* +..* +*.*.* +..* +#P 5 12 +......** +. +....** +. +..** +. +** +#P 13 10 +*** +. +.* +..* +.** +#P 33 -8 +...* +.*.* +*....* +***** +.....* +..** +..*.* +#P 28 0 +.......* +......* +......* +....* +...* +...* +.* +* +* +#P 21 9 +.....* +...** +. +..* +** +#P 18 15 +..* +...* +.*** +. +****** +.....* +.*.* +...* diff --git a/programs/demos/life2/lif/PRIMES.lif b/programs/demos/life2/lif/PRIMES.lif new file mode 100644 index 000000000..7c16b23ef --- /dev/null +++ b/programs/demos/life2/lif/PRIMES.lif @@ -0,0 +1,1643 @@ +#Life 1.05 +#D Primer, a prime number sieve +#D +#D Produces a westward stream of lightweight spaceships representing +#D prime numbers: a LWSS escapes past the pentadecathlon around +#D generation 120n+100 if and only if n is prime. +#D This is probably not a good way to look for the largest primes! +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 11/1/91 +#N +#P 307 -223 +.** +**** +**.** +..** +#P 302 -218 +...* +.* +.*..** +*.....* +.*.*..** +.*...** +...*** +#P 307 -209 +.** +**** +**.** +..** +#P 299 -244 +.** +**** +**.** +..** +#P 296 -237 +..** +.*..* +.*..** +*..** +**** +#P 299 -230 +.** +**** +**.** +..** +#P 298 -222 +.**** +*...* +....* +...* +#P 290 -229 +.**** +*...* +....* +...* +#P 283 -228 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P 277 -224 +..*** +**.** +..*** +#P 282 -245 +..** +**.** +**** +.** +#P 268 -232 +* +.** +** +#P 256 -232 +....* +.....* +*....* +.***** +#P 289 -207 +.** +**** +**.** +..** +#P 281 -201 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P 277 -198 +.* +** +.* +#P 275 -207 +.* +* +*** +#P 253 -217 +* +.** +** +#P 238 -202 +* +.** +** +#P 230 -192 +.* +* +*** +#P 223 -187 +* +.** +** +#P 268 -190 +.**** +*...* +....* +...* +#P 272 -172 +.**** +*...* +....* +...* +#P 280 -173 +..** +.**** +.**.** +...** +. +. +. +** +*.* +*.** +.** +.* +. +. +..** +.**** +.**.** +...** +#P 253 -188 +.** +**** +**.** +..** +#P 248 -183 +...* +.* +.*..** +*.....* +.*.*..** +.*...** +...*** +#P 253 -174 +.** +**** +**.** +..** +#P 244 -187 +.**** +*...* +....* +...* +#P 275 -139 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 271 -135 +..* +*.* +..* +#P 266 -143 +....** +****.** +****** +.**** +#P 263 -157 +.** +**** +**.** +..** +#P 255 -151 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P 249 -149 +..* +**.* +*...* +**.* +..* +#P 270 -120 +.**** +*...* +....* +...* +#P 268 -114 +..** +.*..* +.*..* +**.** +.** +#P 270 -106 +.**** +*...* +....* +...* +#P 266 -128 +.**** +****** +****.** +....** +#P 262 -120 +..** +**.** +**** +.** +#P 264 -112 +** +* +#P 255 -128 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P 245 -126 +......* +.**..*.* +*..**...* +.**..*.* +......* +#P 253 -105 +...* +....* +*...* +.**** +#P 247 -109 +*** +..* +.* +#P 242 -140 +.**** +*...* +....* +...* +#P 238 -134 +** +*.* +.** +#P 235 -172 +.** +**** +**.** +..** +#P 227 -166 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P 221 -164 +..* +**.* +*...* +**.* +..* +#P 208 -172 +* +.** +** +#P 185 -177 +.* +* +*** +#P 214 -155 +.**** +*...* +....* +...* +#P 221 -142 +.....* +......* +*.....* +.****** +#P 228 -119 +....* +.....* +*....* +.***** +#P 218 -121 +.** +**** +**.** +..** +#P 218 -107 +.** +**** +**.** +..** +#P 215 -113 +.* +.****** +*.*** +.....* +#P 209 -120 +.**** +*...* +....* +...* +#P 208 -134 +** +*.* +.** +#P 203 -145 +* +*** +...* +..** +#P 201 -104 +..** +**.** +**** +.** +#P 209 -110 +** +* +#P 202 -114 +.* +* +.* +..** +#P 206 -115 +.* +.* +* +#P 196 -126 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 190 -122 +.*.* +*..** +.*.* +#P 188 -116 +.* +.** +*.* +#P 193 -111 +.* +.** +*.* +#P 186 -102 +.**** +*...* +....* +...* +. +. +** +*.* +..* +*** +. +. +. +. +.**** +*...* +....* +...* +#P 177 -96 +....** +..* +.*..* +** +.** +#P 178 -88 +..** +**.** +**** +.** +#P 178 -123 +** +*.* +.** +#P 178 -134 +** +*.* +.** +#P 173 -145 +* +*** +...* +..** +#P 173 -121 +** +* +#P 171 -116 +.*** +***** +***.** +...** +#P 168 -104 +.**** +*...* +....* +...* +#P 157 -112 +* +..*** +* +#P 161 -115 +.**** +*...* +....* +...* +. +...* +....* +*...* +.**** +#P 150 -111 +.* +** +#P 148 -123 +** +*.* +.** +#P 148 -134 +** +*.* +.** +#P 143 -145 +* +*** +...* +..** +#P 140 -162 +.* +* +*** +#P 139 -96 +.** +**** +**.** +..** +#P 176 -24 +...* +....* +*...* +.**** +#P 168 -24 +.** +**** +**.** +..** +#P 171 -18 +..*.* +**...* +***.*.** +***....* +...*...* +....*** +....* +#P 176 -10 +...* +....* +*...* +.**** +#P 166 -9 +...** +***.** +***** +.*** +#P 163 -17 +** +*.* +..** +.* +#P 156 -18 +*.* +** +.* +#P 143 -26 +....* +.....* +*....* +.***** +#P 174 11 +...* +....* +*...* +.**** +#P 172 18 +.** +**.** +.*..* +.*..* +..** +#P 174 25 +...* +....* +*...* +.**** +#P 158 27 +.* +*...* +*..** +.....* +.** +#P 166 11 +.** +**** +**.** +..** +#P 158 -4 +...** +.**.** +.**** +..** +. +. +.* +.** +*.** +*.* +** +. +. +. +...** +.**.** +.**** +..** +#P 153 25 +.** +*.* +..* +#P 148 20 +.** +*.* +..* +#P 143 15 +.** +*.* +..* +#P 138 10 +.** +*.* +..* +#P 150 9 +...* +....* +*...* +.**** +#P 141 -6 +..** +**.** +**** +.** +#P 121 3 +.*** +***** +***.** +...** +#P 132 -77 +..** +**.** +**** +.** +#P 132 -91 +..** +**.** +**** +.** +#P 125 -86 +..* +.*...*** +*...*.*** +.*......** +..*****.* +....**** +.....* +#P 123 -92 +...* +....* +*...* +.**** +#P 116 -100 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P 110 -96 +..*** +**.** +..*** +#P 115 -76 +.** +**** +**.** +..** +#P 110 -79 +** +.** +* +#P 120 -111 +.* +** +#P 118 -123 +** +*.* +.** +#P 118 -134 +** +*.* +.** +#P 113 -145 +* +*** +...* +..** +#P 95 -94 +** +.** +* +#P 89 -89 +.***** +*....* +.....* +....* +#P 95 -82 +..** +**.** +**** +.** +#P 95 -68 +..** +**.** +**** +.** +#P 86 -69 +...* +....* +*...* +.**** +#P 90 -76 +...*** +.*...** +.*.*..** +*.....* +.*..** +.* +...* +#P 93 -52 +.** +**** +**.** +..** +#P 88 -47 +...* +.* +.*..** +*.....* +.*.*..** +.*...** +...*** +#P 93 -38 +.** +**** +**.** +..** +#P 84 -51 +.**** +*...* +....* +...* +#P 76 -35 +..** +**.** +**** +.** +#P 71 -39 +.* +.** +*.* +#P 66 -44 +.* +.** +*.* +#P 96 -168 +...* +....* +*...* +.**** +. +. +. +. +*** +..* +*.* +** +. +. +...* +....* +*...* +.**** +#P 88 -154 +.** +**** +**.** +..** +#P 82 -157 +..* +*..* +*..* +.* +#P 78 -170 +...* +....* +*...* +.**** +#P 70 -181 +...* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +...* +#P 62 -177 +.*..*** +**..*.* +.*..*** +#P 78 -85 +.** +**** +**.** +..** +#P 73 -80 +*.* +.** +.* +#P 68 -75 +*.* +.** +.* +#P 73 -70 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 69 -67 +* +.* +.** +.* +* +#P 65 -67 +.* +.* +* +.* +.* +#P 56 -66 +.**..* +*..*..* +.**..*** +.***..* +.....* +#P 71 -57 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 67 -54 +* +.* +.** +.* +* +#P 63 -54 +.* +.* +* +.* +.* +#P 54 -55 +.....* +.***..* +.**..*** +*..*..* +.**..* +#P 61 -33 +.**** +*...* +....* +...* +. +. +.* +..* +..* +.** +* +. +. +. +.**** +*...* +....* +...* +#P 53 -19 +..** +**.** +**** +.** +#P 43 -35 +.**** +*...* +....* +...* +#P 46 -47 +.*** +***** +***.** +...** +#P 36 -46 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P 32 -43 +** +*** +** +#P 39 -54 +** +*.* +.** +#P 41 -65 +.** +*.* +** +#P 27 -63 +.** +*.* +..* +#P 25 -56 +..* +*.* +.** +#P 48 -73 +...** +***.** +***** +.*** +#P 45 -85 +...* +....* +*...* +.**** +#P 38 -79 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P 34 -76 +** +*** +** +#P 63 -101 +...* +....* +*...* +.**** +. +. +. +* +.** +..* +..* +.* +. +. +...* +....* +*...* +.**** +#P 55 -101 +.** +**** +**.** +..** +#P 46 -104 +*** +*..* +* +* +* +.* +#P 49 28 +...* +....* +*...* +.**** +. +. +. +* +.** +..* +..* +.* +. +. +...* +....* +*...* +.**** +#P 41 28 +.** +**** +**.** +..** +#P 34 20 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 28 24 +.*.* +*..** +.*.* +#P 32 45 +.**** +*...* +....* +...* +#P 22 2 +...** +.**.** +.**** +..** +. +. +.* +.** +*.** +*.* +** +. +. +. +...** +.**.** +.**** +..** +#P 14 15 +...* +....* +*...* +.**** +#P 7 31 +.***** +*....* +.....* +....* +#P 6 -1 +.** +**** +**.** +..** +#P 14 -27 +.** +**** +**.** +..** +#P 22 -29 +.** +*.* +..* +#P -5 18 +..** +**.** +**** +.** +#P -10 -29 +.**** +*...* +....* +...* +. +. +.* +..* +..* +.** +* +. +. +. +.**** +*...* +....* +...* +#P -14 -21 +.* +** +#P -18 -29 +..** +**.** +**** +.** +#P -25 -37 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P -35 -35 +......* +.**..*.* +*..**...* +.**..*.* +......* +#P -26 -47 +.* +.** +*.* +#P -52 -28 +....* +.....* +*....* +.***** +#P -27 -14 +...* +....* +*...* +.**** +#P -93 -36 +...** +***.** +***** +.*** +#P -128 -36 +.****** +*.....* +......* +.....* +#P 16 -93 +..** +**.** +**** +.** +#P 24 -90 +..* +*.* +.** +#P -5 -104 +..** +**.** +**** +.** +#P -8 -98 +**** +*..** +.*..** +.*..* +..** +#P -5 -90 +..** +**.** +**** +.** +#P -12 -97 +** +.* +#P -14 -91 +...* +....* +*...* +.**** +#P -14 -107 +.** +**** +**.** +..** +#P -22 -107 +.** +**** +**.** +..** +#P -48 -92 +.***** +*....* +.....* +....* +#P -21 -88 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P -25 -85 +** +*** +** +#P -35 -241 +***...........*** +*..*..........*..* +*......***....* +*.....*..*....* +.*....**.*.....* +#P -29 -233 +* +*.* +. +.*..* +..*** +...* +#P -21 -233 +.* +*** +*.** +.*** +.** +#P -38 -224 +.*** +*..* +...* +...* +..* +#P -32 -216 +*** +..* +.* +#P -27 -211 +*** +..* +.* +#P -23 -219 +.***...*** +*..*...*..* +...*...* +...*...* +..*.....* +#P -19 -214 +.* +.* +*.* +#P -18 -205 +*** +#P -5 -239 +.***...........*** +*..*..........*..* +...*....***......* +...*....*..*.....* +..*.....*.**....* +#P -5 -231 +..* +.*** +**.* +*** +.** +#P 2 -231 +....* +..*.* +. +*..* +*** +.* +#P 12 -222 +*** +*..* +* +* +.* +#P 7 -214 +*** +* +.* +#P 2 -209 +*** +* +.* +#P -7 -203 +*** +#P -10 -217 +.***...*** +*..*...*..* +...*...* +...*...* +..*.....* +#P -6 -212 +.* +.* +*.* +#P -53 -210 +.* +*** +*.** +.*** +.** +#P -47 -208 +..* +.*** +**..* +*...* +*.** +** +#P -39 -210 +.* +*** +*.** +.*** +.** +#P -54 -201 +.*** +*..* +...* +...* +..* +#P -26 -195 +*** +*..* +* +* +* +.* +#P -37 -192 +.* +*** +*.** +.*** +.** +#P -33 -185 +..*.....* +.***...*** +**.*...*.** +***.....*** +.**.....** +#P -30 -179 +..* +.*** +*...* +. +. +**.** +..* +#P -74 -190 +.***...........*** +*..*..........*..* +...*....***......* +...*....*..*.....* +..*....*........* +#P -66 -183 +** +* +#P -60 -182 +..* +.*** +**.* +*** +.** +#P -57 -175 +.*.....* +***...*** +*.**.**.* +.***.*** +.**...** +#P -55 -169 +..* +.*.* +*...* +.*.* +.*** +#P -75 -173 +*** +*..* +* +* +.* +#P -71 -166 +.** +*.* +..* +#P -61 -149 +*** +*..* +* +* +* +.* +#P -56 -151 +.** +*.* +..* +#P -46 -162 +*** +*..* +* +* +.* +#P -42 -168 +.* +.** +*.* +#P -18 -183 +** +*.* +.** +#P -17 -171 +.* +** +*.* +#P -7 -181 +.** +*.* +** +#P -8 -169 +.* +.** +*.* +#P 0 -193 +.*** +*..* +...* +...* +...* +..* +#P 11 -190 +..* +.*** +**.* +*** +.** +#P 0 -183 +..*.....* +.***...*** +**.*...*.** +***.....*** +.**.....** +#P 3 -177 +..* +.*** +*...* +. +. +**.** +..* +#P 13 -208 +..* +.*** +**.* +*** +.** +#P 20 -206 +..* +.*** +*..** +*...* +.**.* +...** +#P 27 -208 +..* +.*** +**.* +*** +.** +#P 28 -199 +*** +*..* +* +* +.* +#P 34 -186 +.* +*** +*.** +.*** +.** +#P 40 -184 +..* +.*** +**..* +*...* +*.** +** +#P 48 -186 +.* +*** +*.** +.*** +.** +#P 58 -186 +.** +**** +**.** +..** +#P 33 -177 +.*** +*..* +...* +...* +..* +#P 25 -170 +.***...*** +*..*...*..* +...*...* +...*...* +..*.....* +#P 29 -165 +.* +.* +*.* +#P 17 -166 +.* +** +*.* +#P 20 -160 +.*** +*..* +...* +...* +..* +#P 50 -170 +.* +*** +*** +..* +*.* +* +#P 47 -163 +.* +** +*.* +#P 32 -148 +.* +** +*.* +#P 44 -146 +.* +*** +*.** +.*** +.** +#P 58 -146 +.* +*** +*.** +.*** +.** +#P 49 -144 +...* +..*** +.**..* +.**.** +.*..*** +..*.** +....* +*...* +.*.* +..* +#P 59 -129 +..* +.*** +**.* +*** +.** +#P 43 -137 +.*** +*..* +...* +...* +..* +#P 35 -132 +.*** +*..* +...* +...* +...* +...* +..* +#P 42 -130 +*** +*..* +* +* +.* +#P 39 -124 +*** +*.* +*** +. +. +*** +.* +#P 17 -119 +*** +*..* +* +* +.* +#P 23 -117 +.*** +*..* +**.* +#P 31 -119 +*** +*..* +* +* +.* +#P 24 -111 +** +* +#P 31 -111 +.* +*** +*.** +.*** +.** +#P 14 -102 +.*** +*..* +...* +...* +..* +#P 33 -91 +*** +*..* +* +* +.* +#P -1 1 +*.* +. +.* +.* +.* +. +. +.* +.* +.* +. +*.* diff --git a/programs/demos/life2/lif/PSRTRAIN.lif b/programs/demos/life2/lif/PSRTRAIN.lif new file mode 100644 index 000000000..2c1a4ced9 --- /dev/null +++ b/programs/demos/life2/lif/PSRTRAIN.lif @@ -0,0 +1,44 @@ +#Life 1.05 +#D Pulsar puffer train +#D +#D Leaves a trail of pulsars +#D by igniting the plume of a +#D Schick engine with a pair +#D of HWSS and a pair of MWSS. +#N +#P 7 -4 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P 3 -1 +** +*** +** +#P -3 -10 +.**** +****** +****.** +....** +#P -3 7 +....** +****.** +****** +.**** +#P -13 -9 +.***** +*....* +.....* +*...* +..* +#P -13 5 +..* +*...* +.....* +*....* +.***** diff --git a/programs/demos/life2/lif/PUFTRAIN.lif b/programs/demos/life2/lif/PUFTRAIN.lif new file mode 100644 index 000000000..90fba0e92 --- /dev/null +++ b/programs/demos/life2/lif/PUFTRAIN.lif @@ -0,0 +1,29 @@ +#Life 1.05 +#D Puffer train +#D +#D This was created simply by perturbing +#D the sides of a B-heptomino with two +#D LWSS's. A B-heptomino is a naturally +#D occurring object that lurches forward at +#D the speed c/2 before its own debris +#D usually destroys it. Not here! The +#D LWSS keep it alive. See BHEPTO, RAKE, +#D RAKE2. For a super dirty puffer, see +#D LINEPUF. +#N +#P -2 -8 +...* +....* +*...* +.**** +#P -2 -1 +* +.** +..* +..* +.* +#P -2 6 +...* +....* +*...* +.**** diff --git a/programs/demos/life2/lif/PULLER.lif b/programs/demos/life2/lif/PULLER.lif new file mode 100644 index 000000000..afac5de0c --- /dev/null +++ b/programs/demos/life2/lif/PULLER.lif @@ -0,0 +1,1082 @@ +#Life 1.05 +#D Block puller with binary distance counter. +#D +#D The starting distance to the block is measured as number of times +#D pulled. This is displayed in 5 boat bits (binary) from the lower +#D right to the upper left of the left side of the pattern. In this +#D case, the answer is 25 (11001). +#D +#D Kaoru "Mad Player" Maeda, July 1990. +#N +#P 106 -98 +** +.* +#P 103 -97 +.* +. +* +. +.** +...* +#P 103 -89 +**...** +**...** +.***** +..*.* +. +..*** +#P 105 -75 +...* +..*** +.***** +**...** +#P 107 -68 +*** +*** +. +. +** +** +#P 105 -59 +** +#P 104 -54 +**...** +.***** +.**.** +.**.** +..*** +#P 102 -45 +..*** +..*** +.*...* +*.....* +.*...* +..*** +#P 105 -30 +** +** +#P 102 -78 +.* +* +*** +#P 101 -66 +** +** +#P 99 -53 +.** +** +..* +#P 92 -77 +* +*** +...* +..** +#P 95 -70 +* +*.* +** +#P 92 -63 +** +*** +.** +..* +.* +#P 89 -67 +* +* +* +. +. +. +* +* +* +#P 85 -63 +*** +#P 76 -84 +..** +..* +*.* +** +#P 77 -76 +.* +** +*.* +#P 67 -82 +...* +..**** +.**.*.* +***.*..* +.**.*.* +..**** +...* +#P 57 -80 +** +** +#P 77 -106 +** +** +#P 66 -108 +** +** +...** +...*** +...** +** +** +#P 58 -107 +...* +....** +.**..* +***** +...* +#P 53 -110 +..** +.* +* +* +* +.* +..** +#P 52 -100 +.* +* +*** +#P 47 -90 +* +* +* +#P 43 -86 +*** +#P 41 -90 +* +* +* +#P 39 -95 +* +.** +** +#P 43 -108 +** +** +#P 39 -110 +* +* +#P 41 -102 +** +** +#P 30 -111 +....* +.**** +**** +*..* +**** +.**** +....* +#P 20 -109 +..* +.*.* +*...** +*...** +*...** +.*.* +..* +#P 9 -107 +** +** +#P 31 -102 +*.* +.** +.* +#P 30 -95 +..** +.*.* +.* +** +#P -4 -120 +** +** +#P -6 -113 +..*** +. +..*.* +.***** +**...** +**...** +#P -5 -105 +.** +**.** +.*..* +.* +....* +..** +#P -8 -97 +**...** +.***** +..*** +...* +#P -6 -86 +** +** +#P -9 -76 +**.*.** +. +*.....* +. +.**.** +...* +#P -7 -68 +...* +..*.* +.*...* +.***** +**...** +.***** +..*** +...* +#P -5 -52 +** +** +#P 3 -96 +* +.** +** +#P 0 -84 +** +** +#P 0 -75 +*** +..* +.* +#P 10 -88 +*.* +.** +.* +#P 7 -75 +** +* +.*** +...* +#P 15 -71 +* +*** +...* +..** +#P 30 -77 +* +*.* +** +#P 20 -66 +.* +.* +* +#P 17 -61 +**...** +*.....* +. +.*...* +..*** +#P 19 -50 +** +** +#P 40 -58 +*.* +.** +.* +#P 46 -50 +* +*.* +** +#P 43 -46 +* +.** +** +#P 48 -32 +.* +* +*** +#P 5 -35 +** +** +#P 11 -37 +....* +..*.* +** +** +** +..*.* +....* +#P 20 -37 +* +* +* +....** +.**..* +.**** +...* +#P 28 -39 +** +** +...** +...*** +...** +** +** +#P 39 -37 +** +** +#P 30 -27 +*.* +.** +.* +#P 38 -20 +* +.** +** +#P 43 -11 +* +*.* +** +#P 49 -16 +...* +.*** +* +** +#P 44 -4 +..*** +.*...* +*.....* +.*...* +..*** +..*** +#P 47 5 +** +** +#P 35 -4 +.* +* +*** +#P 29 9 +** +*.* +..* +..** +#P 17 4 +....* +.**** +**** +*..* +**** +.**** +....* +#P 10 7 +** +** +#P 132 38 +** +** +#P 26 4 +.** +** +..* +#P 19 -4 +.* +** +*.* +#P 11 -11 +.** +** +..* +#P 4 -19 +.* +** +*.* +#P -4 -26 +.** +** +..* +#P -11 -34 +.* +** +*.* +#P -19 -41 +.** +** +..* +#P -26 -49 +.* +** +*.* +#P -34 -56 +.** +** +..* +#P -41 -64 +.* +** +*.* +#P -49 -71 +.** +** +..* +#P -56 -79 +.* +** +*.* +#P -34 -104 +** +** +#P -49 -106 +...* +..*.* +**...* +**...* +**...* +..*.* +...* +#P -58 -108 +* +**** +.**** +.*..* +.**** +**** +* +#P -63 -104 +* +* +#P -68 -106 +** +** +#P -57 -99 +*.* +** +.* +#P -139 -85 +** +** +#P -134 -83 +* +* +#P -129 -87 +* +**** +.**** +.*..* +.**** +**** +* +#P -118 -82 +.* +..* +*** +#P -117 -89 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P -110 -87 +.**.*** +*..**** +.** +#P -111 -75 +*.* +.** +.* +..*** +....* +#P -116 -68 +.* +.** +*.* +#P -103 -67 +.* +..* +*** +#P -123 -60 +** +.** +* +#P -144 -56 +** +** +#P -140 -58 +* +.** +#P -135 -59 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -121 -57 +..** +.*.* +* +*..* +* +.*.* +..** +#P -112 -59 +..** +..* +*.* +** +#P -101 -56 +.* +*.* +** +. +** +* +.* +** +#P -88 -52 +.* +..* +*** +#P -66 -46 +** +** +#P -59 -48 +....* +.**** +**** +*..* +**** +.**** +....* +#P -52 -45 +.....** +. +.**.*.* +*...** +.* +.*..* +#P -41 -46 +..* +.*.* +*...** +*...** +*...** +.*.* +..* +#P -32 -44 +** +** +#P -123 -39 +** +** +#P -115 -41 +...** +.*..* +* +* +* +.*..* +...** +#P -108 -43 +.......* +.....**** +...****.** +.*...**.*** +.*...**.** +*...***** +.***...* +#P -89 -41 +** +** +#P -73 -37 +.* +..* +*** +#P -59 -36 +.* +* +*** +#P -54 -24 +.** +** +..* +#P -99 -33 +* +.** +** +#P -97 -24 +*** +..* +.* +#P -92 -25 +*.* +.** +.* +#P -105 -17 +.** +*.* +..* +#P -128 -10 +** +** +#P -120 -13 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P -113 -11 +.**....* +*..**.*.* +.***.*...* +..**.*...* +....**...* +......*.* +.......* +#P -96 -13 +..** +..* +*.* +** +#P -85 -10 +.* +*.* +** +. +** +* +.* +** +#P -77 -10 +*.* +.** +.* +#P -61 -18 +** +.* +.*.* +..** +#P -55 -16 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -46 -18 +.** +**** +*..*** +** +....* +.....* +.....* +#P -35 -18 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P -27 -15 +** +** +#P -107 7 +** +** +#P -103 5 +....** +..*...* +.*.....* +**.*...* +.*.....* +..*...* +....** +#P -88 8 +.* +..* +*** +#P -91 10 +* +#P -82 3 +* +*.* +...** +...** +...** +*.* +* +#P -73 5 +** +** +#P -62 5 +*.* +.** +.* +#P -50 -1 +.* +*...** +*.....* +.***** +#P -41 -2 +** +*..* +....* +....* +....* +*..* +** +#P -38 6 +*.* +** +.* +#P -30 0 +...*.* +.*...* +.* +*....* +.* +.*...* +...*.* +#P -16 2 +** +** +#P -47 12 +..* +..*.* +...* +*** +* +#P -40 19 +** +*.* +* +#P -81 16 +..* +*.* +.** +#P -86 26 +.* +.** +*.* +#P -112 36 +** +** +#P -108 33 +....* +..**** +.*.*.** +*..*.*** +.*.*.** +..**** +....* +#P -97 34 +.**..** +.****.* +..**.* +* +#P -88 35 +*.* +*...* +....* +*....* +....* +*...* +*.* +#P -80 33 +..** +..* +*.* +** +#P -66 31 +..* +*.* +.** +#P -69 36 +.* +*.* +** +. +** +* +.* +** +#P -45 28 +** +.* +.*.* +..** +#P -36 30 +** +*.* +.*** +..*** +.*** +*.* +** +#P -33 27 +*** +* +.* +#P -24 28 +....* +.**** +**** +*..* +**** +.**** +....* +#P -15 29 +* +* +#P -11 31 +** +** +#P -91 53 +** +** +#P -79 51 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P -70 49 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P -62 52 +* +.* +.* +...* +#P -57 51 +** +.* +. +* +#P -51 46 +..* +*.* +.** +#P -69 57 +* +.** +** +#P -34 46 +** +** +#P -24 44 +..** +.* +* +* +* +.* +..** +#P -19 47 +...* +....** +.**..* +***** +...* +#P -11 46 +** +** +...** +...*** +...** +** +** +#P 0 48 +** +** +#P -25 54 +.* +* +*** +#P -36 61 +..** +* +.*.*..* +.....* +#P -27 62 +.* +** +*.* +#P -20 70 +.** +** +..* +#P -62 64 +** +* +.*** +...* +#P -67 70 +*** +..* +.* +#P -75 77 +.** +*.* +..* +#P -96 82 +** +** +#P -85 79 +* +*.* +...** +...** +...** +*.* +* +#P -75 81 +....** +....** +.** +*** +.** +....** +....** +#P -64 79 +..** +..* +*.* +** +#P -54 72 +* +.** +** +#P -53 82 +.* +*.* +** +. +** +* +.* +** +#P -39 87 +* +.** +** +#P -29 74 +** +.* +.*.* +..** +#P -19 76 +...*...*** +..*****...* +.**.**...* +***.**...* +.**.**** +..**** +...* +#P -6 74 +** +*..* +....* +....* +....* +*..* +** +#P 5 77 +** +** +#P -24 102 +* +.** +** +#P -18 92 +** +** +#P -13 90 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -4 96 +*.* +** +.* +#P 5 92 +...* +..** +.** +*** +.** +..** +...* +#P 12 94 +** +** +** +#P 16 94 +** +** +#P -12 103 +..* +** +.** +#P -6 113 +** +*.* +* +#P -37 128 +.* +*.* +** +. +** +* +.* +** +#P -13 120 +** +.* +.*.* +..** +#P -7 122 +....* +..*.* +** +** +** +..*.* +....* +#P 1 121 +*** +* +.* +#P 6 121 +* +#P 11 120 +..** +.*...* +*.....* +*...*.** +*.....* +.*...* +..** +#P 21 123 +** +** diff --git a/programs/demos/life2/lif/PUSHER.lif b/programs/demos/life2/lif/PUSHER.lif new file mode 100644 index 000000000..f664503a8 --- /dev/null +++ b/programs/demos/life2/lif/PUSHER.lif @@ -0,0 +1,541 @@ +#Life 1.05 +#D Block pusher +#D by Dean Hickerson +#N +#P 0 0 +** +** +#P 8 -26 +.** +*.* +..* +#P 24 -35 +** +* +.*** +...* +#P 19 -42 +**...** +..*** +.*...* +..*.* +...* +#P 22 -54 +** +** +#P -2 -43 +.* +* +*** +#P 8 -56 +..** +..* +*.* +** +#P -5 -54 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -11 -52 +** +** +#P -5 -60 +** +* +.*** +...* +#P -10 -72 +..*** +. +..*.* +.***** +**...** +**...** +#P -7 -79 +** +** +#P -17 -77 +..** +..* +*.* +** +#P -28 -75 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P -36 -77 +** +.* +.*.* +..** +#P -34 -67 +** +** +#P -46 -70 +...** +.*..* +* +* +* +.*..* +...** +#P -55 -72 +** +.* +.*.* +..** +#P -40 -63 +...* +.*** +* +** +#P -36 -80 +** +** +#P -38 -91 +..*** +.*...* +*.....* +**.*.** +#P -40 -105 +**...** +...* +*.....* +.**.** +..*.* +...* +...* +#P -37 -114 +** +** +#P -41 -93 +*.* +** +.* +#P -49 -86 +..* +** +.** +#P -45 -105 +** +** +#P -48 -100 +** +** +#P -54 -96 +..* +*.* +.** +#P -59 -93 +..** +.*.* +.* +** +#P -56 -108 +** +*** +..**.* +..*..* +..**.* +*** +** +#P -53 -113 +** +** +#P -66 -116 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P -78 -118 +* +** +.** +.*** +.** +** +* +#P -87 -115 +** +** +#P -61 -104 +.* +..* +*** +#P -74 -106 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -79 -101 +..** +.*.* +.* +** +#P -74 -111 +* +*.* +** +#P -82 -104 +.* +* +*** +#P -89 -96 +* +*.* +** +#P -86 -92 +** +*.* +..* +..** +#P -79 -87 +** +.* +.*.* +..** +#P -68 -85 +* +**** +.**** +.*..* +.**** +**** +* +#P -58 -83 +** +** +#P -106 -113 +** +** +#P -108 -104 +**...** +*.*.*.* +.***** +..*** +...* +#P -110 -88 +..*** +.*...* +*.....* +.*...* +..*** +..*** +#P -107 -79 +** +** +#P -104 -93 +*.* +.** +.* +#P -96 -86 +* +.** +** +#P -95 -99 +** +** +#P -117 -99 +** +** +#P -119 -93 +..*** +..*** +.*...* +. +**...** +#P -121 -76 +**...** +**...** +. +..*** +..*** +...* +#P -118 -65 +** +** +#P -117 -81 +*.* +.** +.* +#P -113 -61 +** +** +#P -108 -63 +** +** +#P -101 -74 +...* +.*** +* +** +#P -116 -49 +**...** +..*** +.*...* +..*.* +...* +#P -112 -43 +*** +*** +#P -114 -38 +**...** +.***** +..*** +...* +#P -112 -27 +** +** +#P -107 -51 +.** +*.* +..* +#P -99 -58 +*** +..* +.* +#P -92 -66 +.** +*.* +..* +#P -102 -66 +*.* +.** +.* +#P -109 -74 +* +.** +** +#P -87 -62 +* +*** +...* +..** +#P -85 -51 +**...** +. +*.....* +. +.**.** +...* +#P -83 -41 +** +** +#P -72 -59 +** +** +#P -101 -34 +** +** +#P -104 -23 +**...** +. +.*...* +..*** +..*** +#P -102 -16 +...* +..*** +.*...* +...* +*.....* +*.....* +.*...* +..*** +#P -99 0 +** +** +#P -89 -14 +** +** +#P -80 -23 +..** +..* +*.* +** +#P -74 -26 +** +** +#P -76 -17 +**...** +.***** +..*** +...* +#P -78 -5 +..*** +. +..*.* +.***** +**...** +**...** +#P -76 8 +** +** +#P -65 -35 +..** +.*.* +.* +** +#P -59 -40 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -46 -35 +** +*.* +..* +..** +#P -64 -24 +** +** +#P -67 -16 +..*** +.*...* +. +*.....* +**...** +#P -65 0 +**...** +. +*.....* +. +.**.** +...* +#P -67 8 +..** +...* +*** +* +#P -59 8 +** +** +#P -49 5 +* +**** +.**** +.*..* +.**** +**** +* +#P -40 3 +...* +..*.* +**...* +**...* +**...* +..*.* +...* +#P -27 1 +..** +..* +*.* +** +#P -56 -16 +.** +*.* +..* +#P -32 -13 +.* +* +*** +#P -48 0 +.* +** +*.* +#P -22 4 +.** +*.* +..* +#P -36 14 +..*** +. +* +* +* +#P -30 16 +* +* +* +#P -29 22 +.** +** +..* +#P -22 20 +..** +..* +*.* +** +#P -44 27 +*** +..* +.* +#P -21 29 +.* +** +*.* +#P -31 29 +** +** +#P -67 33 +** +** +#P -58 30 +...* +..** +.** +*** +.** +..** +...* +#P -51 32 +** +** +** +#P -48 32 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -33 35 +** +** +#P -24 33 +** +*..* +....* +....* +....* +*..* +** +#P -13 31 +...*.* +.*...* +.* +*....* +.* +.*...* +...*.* +#P 1 34 +** +** diff --git a/programs/demos/life2/lif/PUSHGUN.lif b/programs/demos/life2/lif/PUSHGUN.lif new file mode 100644 index 000000000..1ccbf5e8c --- /dev/null +++ b/programs/demos/life2/lif/PUSHGUN.lif @@ -0,0 +1,534 @@ +#Life 1.05 +#D Sqrtgun 10.1 +#D Population in generation t is asymptotic to sqrt(5t/8). +#D A 3 glider salvo pushes a block 10 units southeast and sends back +#D 2 gliders, which cause another salvo to be fired and a glider to +#D be sent southwest. The round trip time, and hence the gap between +#D southwestward gliders, increases by an average of 80 generations each +#D time. More specifically, let a[0]=a[2]=199 and a[1]=-1. Then, for +#D n>=0, a glider is sent southwest (by reflection from a buckaroo) in +#D generation 40 n^2 + 1120 n + a[n mod 3] (at which time the population +#D is 5n + 1115) and escapes about 270 generations later. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 2/14/91 +#N +#P 50 56 +** +* +#P 75 56 +** +* +.*** +...* +#P 70 42 +...* +..*.* +.*...* +.***** +**...** +.***** +..*** +...* +#P 72 34 +**...** +. +*.....* +. +.**.** +...* +#P 69 20 +..*** +.*...* +*.....* +*.....* +#P 67 5 +*.....* +**...** +. +..*** +..*** +...* +#P 69 -4 +** +* +#P 68 36 +** +* +#P 54 35 +.....*..* +**..**...* +*........* +.....**** +#P 59 24 +*.* +** +.* +#P 45 29 +..** +...* +*** +* +#P 47 16 +...* +..*.* +.*...* +..*** +**...** +#P 49 6 +**...** +**...** +.***** +..*.* +. +..*** +#P 51 -3 +** +* +#P 45 8 +.* +** +*.* +#P 44 -21 +** +* +#P 34 -23 +...* +..**** +.**.* +***.*.* +.**.* +..**** +...* +#P 16 -25 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P 10 -22 +** +* +#P 22 -16 +** +* +#P 38 -35 +** +* +#P 28 -37 +*.* +*...* +....* +.....* +....* +*...* +*.* +#P 12 -35 +...** +.*..* +* +* +* +.*..* +...** +#P 2 -30 +....** +...*.* +...* +.*** +* +** +#P -3 -19 +..*** +.*...* +. +*.....* +**...** +#P 2 -9 +** +* +.*** +...* +#P 9 -5 +..* +** +.** +#P 20 -35 +** +*.* +* +#P 0 -40 +....** +**..**..** +*...*..*.* +......*** +......** +#P 28 -55 +** +* +#P 16 -58 +...** +.*..* +* +* +* +.*..* +...** +#P -1 -60 +...* +.**** +..*.** +*.*.*** +..*.** +.**** +...* +#P -6 -57 +** +* +#P 7 -73 +** +* +#P -3 -76 +...* +..**** +.**.* +***.*.* +.**.* +..**** +...* +#P -21 -78 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P -26 -76 +** +* +#P -33 -81 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P -45 -79 +* +**** +.**** +.*..* +.**** +**** +* +#P -55 -76 +** +* +#P -32 -72 +** +* +#P -34 -66 +..* +.** +. +.* +*.* +*..* +.*..* +. +.* +.** +#P -41 -66 +..** +..* +*.* +** +#P -53 -64 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P -63 -62 +...* +..**** +.**.*.* +***.*..* +.**.*.* +..**** +...* +#P -73 -59 +** +* +#P -68 -54 +** +* +#P -56 -55 +** +* +#P -51 -55 +..* +*.* +.** +#P -41 -59 +.** +.** +.** +..* +.*.* +**.* +#P -40 -51 +** +* +#P -35 -50 +*.* +** +.* +#P -26 -51 +** +.* +.*.* +..** +#P -16 -49 +** +*** +..**.* +..*..* +..**.* +*** +** +#P -5 -47 +** +* +#P -26 -33 +** +* +#P -70 -45 +**...** +.***** +..*** +...* +#P -74 -41 +** +* +#P -77 -29 +.***** +*.***.* +.*...* +..*** +...* +#P -79 -21 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P -77 -7 +** +* +#P -71 -19 +..* +*.* +.** +#P -66 -33 +*** +#P -68 -31 +..*.* +.***** +**...** +**...** +#P -63 -22 +** +* +.*** +...* +#P -54 -40 +* +*** +...* +..** +#P -52 -30 +..*** +.*...* +*.....* +**.*.** +#P -50 -19 +** +* +#P -51 -12 +.** +*.* +..* +#P -45 -11 +.** +.* +. +. +**.* +.*.* +..* +.** +.** +.** +#P -39 -16 +* +*** +...* +..** +#P -37 -10 +..*** +..*** +.*...* +*.....* +.*...* +..*** +#P -39 3 +..** +...* +*** +* +#P -46 2 +** +* +#P -60 0 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -68 -2 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P -80 0 +** +* +#P -74 9 +** +* +#P -76 18 +**...** +*.*.*.* +.***** +..*** +...* +#P -78 28 +..** +...* +*** +* +#P -67 12 +** +.* +.*.* +..** +#P -58 14 +...** +.*..* +* +* +* +.*..* +...** +#P -48 12 +..** +..* +*.* +** +#P -33 30 +..** +..* +*.* +** +#P -45 32 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P -52 37 +..** +.*.* +.* +** +#P -64 54 +** +* +#P -53 51 +* +*.* +...** +...** +...** +*.* +* +#P -45 56 +** +*.* +..* +..** +#P -52 47 +*** +* +.* +#P -21 25 +..* +** +.** +#P 23 29 +** +.** +* +#P 29 54 +*.* +** +.* +#P -7 40 +** +* +#P -9 51 +..*** +.*...* +*.....* +.*...* +..*** +..*** +#P -11 59 +..** +...* +*** +* +#P -2 60 +** +*.* +* +#P -7 75 +** +* +#P 4 72 +* +*.* +...** +...** +...** +*.* +* +#P 12 77 +** +*.* +..* +..** diff --git a/programs/demos/life2/lif/PUSHGUN2.lif b/programs/demos/life2/lif/PUSHGUN2.lif new file mode 100644 index 000000000..40aef9ecc --- /dev/null +++ b/programs/demos/life2/lif/PUSHGUN2.lif @@ -0,0 +1,562 @@ +#Life 1.05 +#D Sqrtgun 3.0 +#D Population in generation t is asymptotic to 5 sqrt(t/12). A 4 glider +#D salvo pushes a blinker 3 units southeast and sends back a glider, +#D which causes another salvo to be fired and a glider to be sent +#D northeast. The round trip time, and hence the gap between +#D northeastward gliders, increases by an average of 24 generations each +#D time. More specifically, let a[0]=207, a[1]=159, a[2]=-33, a[3]=111, +#D and a[4]=231. For n>=0, a glider is sent northeast (by reflection from +#D a buckaroo) in generation 12 n^2 + 1116 n + a[n mod 5] (at which +#D time, for n>=1, the population is 5n + 1297) and escapes about 300 +#D generations later. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 1/28/91 +#N +#P 55 60 +*** +#P 39 59 +.* +* +*** +#P 71 34 +....** +****....** +***.**..* +.....* +#P 84 34 +** +* +.*** +...* +#P 79 26 +...* +..*** +.***** +**...** +.***** +.*...* +...* +#P 77 11 +**...** +*.....* +. +.*...* +..*** +#P 79 2 +** +* +#P 69 29 +.* +* +*** +#P 59 31 +..** +...* +*** +* +#P 61 22 +**...** +**...** +.***** +..*.* +. +..*** +#P 63 4 +...* +..*.* +.*...* +..*** +**...** +#P 66 -1 +** +* +#P 48 35 +....* +**..**.*** +*.....**** +....** +#P 55 30 +** +* +#P 52 21 +**...** +. +.*...* +..*** +..*** +#P 54 3 +...* +..*** +..*** +. +**...** +*.....* +#P 56 -9 +** +* +. +. +. +** +* +#P 46 -12 +..** +.* +* +* +* +.* +..** +#P 28 -14 +....* +..*.* +** +** +** +..*.* +....* +#P 22 -9 +..** +.*.* +.* +** +#P 35 -2 +.* +*.* +.* +#P 29 -1 +* +*.* +** +#P 46 -48 +** +* +#P 36 -51 +*.* +*...* +....* +.....* +....* +*...* +*.* +#P 20 -53 +...** +.*..* +* +* +* +.*..* +...** +#P 6 -56 +** +..* +...* +...* +...* +..* +** +#P -9 -54 +....** +....* +.** +*** +.** +....* +....** +#P -16 -51 +** +* +#P -11 -45 +.**.........** +*..*.......*..* +***..*****..*** +...**.....** +..*.........* +..**.*...*.** +.......* +#P 32 -34 +..** +..* +*.* +** +#P 24 -32 +* +**** +.**** +.*..* +.**** +**** +* +#P 8 -30 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P 0 -28 +** +* +#P 11 -34 +** +* +#P -15 -31 +......*.* +.....* +.*..*....* +**.*..*.** +....** +#P 7 -9 +...* +.*** +* +** +#P 39 23 +*** +..* +.* +#P -23 -44 +** +* +#P -25 -55 +**...** +**...** +.***** +..*.* +. +..*** +#P -27 -73 +...* +..*.* +.*...* +..*** +**...** +#P -25 -78 +** +* +#P -42 -85 +** +* +#P -45 -76 +**...** +*.....* +. +.*...* +..*** +#P -47 -61 +...* +..*** +.***** +**...** +.***** +.*...* +...* +#P -42 -53 +** +* +.*** +...* +#P -33 -53 +.* +* +*** +#P -53 -78 +..** +..* +*.* +** +#P -62 -76 +..** +.*.* +* +*..* +* +.*.* +..** +#P -76 -74 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -85 -71 +** +* +#P -53 -71 +.** +.*..* +. +.*..* +*..* +*.* +.* +. +.** +.* +#P -88 -58 +** +* +#P -83 -60 +...* +.**** +..*.** +*.*.*** +..*.** +.**** +...* +#P -64 -58 +*.* +*...* +....* +.....* +....* +*...* +*.* +#P -56 -53 +** +*.* +..* +..** +#P -65 -47 +** +* +#P -67 -35 +**...** +..*** +.*...* +..*.* +...* +#P -69 -26 +..*** +. +..*.* +.***** +**...** +**...** +#P -67 -13 +** +* +#P -51 -43 +* +*** +...* +..** +#P -49 -35 +...* +..*** +..*** +. +**...** +*.....* +#P -51 -24 +..** +...* +*** +* +#P -42 -18 +.** +.* +. +. +.* +**.* +...* +...* +*..* +.** +#P -43 -5 +** +* +#P -54 -11 +** +* +#P -55 -7 +...** +.*..* +* +* +* +.*..* +...** +#P -67 -9 +*.* +*...* +....* +.....* +....* +*...* +*.* +#P -77 -7 +** +* +#P -37 3 +** +* +#P -51 1 +....* +..*.* +** +** +** +..*.* +....* +#P -61 3 +..** +.*...* +*.....* +*...*.** +*.....* +.*...* +..** +#P -71 6 +** +* +#P -60 13 +** +* +#P -35 10 +.** +*..* +...* +...* +**.* +.* +. +. +.** +..* +#P -62 23 +**...** +.***** +.**.** +.**.** +..*** +#P -60 32 +..*** +..*** +.*...* +*.....* +.*...* +..*** +#P -57 47 +** +* +#P -53 24 +** +.** +* +#P -47 27 +** +* +#P -49 36 +**...** +*.....* +. +.*...* +..*** +#P -51 46 +..** +...* +*** +* +#P -48 60 +** +* +#P -43 58 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P -29 63 +** +*.* +..* +..** +#P -29 37 +..** +.*.* +.* +** +#P -16 32 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P -10 30 +..** +..* +*.* +** +#P -1 29 +* +*.* +** +#P 16 30 +.** +.* +. +. +*** +** +...** +..*** +.*.* +.** +#P 1 46 +...* +.*** +* +** +#P -4 52 +..*** +..*** +.*...* +. +**...** +#P 9 53 +*** +..* +.* +#P 8 59 +.* +*.* +.* +#P -2 70 +..*** +.*...* +*.....* +*.....* +#P 1 80 +** +* +#P 17 80 +** +* +#P 26 78 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P 36 76 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P 51 79 +** +* diff --git a/programs/demos/life2/lif/QUILT.lif b/programs/demos/life2/lif/QUILT.lif new file mode 100644 index 000000000..dfbd0a4c9 --- /dev/null +++ b/programs/demos/life2/lif/QUILT.lif @@ -0,0 +1,51 @@ +#Life 1.05 +#D Another quilt +#D woven by Dean Hickerson, March 1994 +#N +#P -23 -23 +.............**....**....**....** +............*..*...**...*..*...** +............*..*........*..* +.........**.****.******.****.****** +.........*.*....*......*....*......* +...........*..*..*..*..*..*..*..*..* +...........***.**..***.***.**..***.** +.........**..**..***.**..**..***.**..* +........*...*...*...*...*...*...*...*.* +...**..*.*...*...*...*...*...*...*...*.* +...*...***.***.***.***.***.***.***.**..*** +....***..**.***.***.***.***.***.***.***...* +.***....*...*...*...*...*...*...*...*...*.* +*..*.*...*...*...*...*...*...*...*...*..*.*.** +*..*.*.***.***.***.***.***.***.***.***..*.*.** +.***..*..**.***.***.***.***.***.***.*.*...* +....*.*.*...*...*...*...*...*...*...*.*.*.* +...*.*.*.*...*...*...*...*...*...*...*.*.* +...*...*.*.***.***.***.***.***.***.**..*..*** +**.*.*..***.***.***.***.***.***.***.***.*.*..* +**.*.*..*...*...*...*...*...*...*...*...*.*..* +...*.*...*...*...*...*...*...*...*...*....*** +...*...***.***.***.***.***.***.***.**..*** +....***..**.***.***.***.***.***.***.***...* +.***....*...*...*...*...*...*...*...*...*.* +*..*.*...*...*...*...*...*...*...*...*..*.*.** +*..*.*.***.***.***.***.***.***.***.***..*.*.** +.***..*..**.***.***.***.***.***.***.*.*...* +....*.*.*...*...*...*...*...*...*...*.*.*.* +...*.*.*.*...*...*...*...*...*...*...*.*.* +...*...*.*.***.***.***.***.***.***.**..*..*** +**.*.*..***.***.***.***.***.***.***.***.*.*..* +**.*.*..*...*...*...*...*...*...*...*...*.*..* +...*.*...*...*...*...*...*...*...*...*....*** +...*...***.***.***.***.***.***.***.**..*** +....***..**.***.***.***.***.***.***.***...* +......*.*...*...*...*...*...*...*...*.*..** +.......*.*...*...*...*...*...*...*...* +........*..**.***..**..**.***..**..** +.........**.***..**.***.***..**.*** +..........*..*..*..*..*..*..*..*..* +..........*......*....*......*....*.* +...........******.****.******.****.** +..................*..*........*..* +.............**...*..*...**...*..* +.............**....**....**....** diff --git a/programs/demos/life2/lif/R125AQ25.lif b/programs/demos/life2/lif/R125AQ25.lif new file mode 100644 index 000000000..3fb5457a9 --- /dev/null +++ b/programs/demos/life2/lif/R125AQ25.lif @@ -0,0 +1,58 @@ +#Life 1.05 +#R 125/36 +#P -32 -14 +........**.* +......* +.......*..*.....**.* +....***.......* +......**.......*..* +...*....**..* +***.....****...* +...*....**..* +......**.......*..* +....***.......* +.......*..*.....**.* +......* +........**.* +#P 0 -14 +........**.* +......*...........* +.......*..*...*.*.* +....***.......*..* +......**....* +...*....**.** +***.....**** +...*....**.** +......**....* +....***.......*..* +.......*..*...*.*.* +......*...........* +........**.* +#P -32 2 +........**.* +......*..........* +.......*..*......*....* +....***.......**..*...** +......**........*..** +...*....**..*.....*..* +***.....****.......*** +...*....**..*.....*..* +......**........*..** +....***.......**..*...** +.......*..*......*....* +......*..........* +........**.* +#P 0 2 +........**.*...............*...*.* +......*....................* +.......*..*...........*.*.*..**.* +....***...........*..*....**...*.* +......**......*..***...***.**.*.** +...*....**...*.*.*...**..** +***.....****.**..*.....**....* +...*....**...*.*.*...**..** +......**......*..***...***.**.*.** +....***...........*..*....**...*.* +.......*..*...........*.*.*..**.* +......*....................* +........**.*...............*...*.* diff --git a/programs/demos/life2/lif/R125AQ33.lif b/programs/demos/life2/lif/R125AQ33.lif new file mode 100644 index 000000000..b8fb700fa --- /dev/null +++ b/programs/demos/life2/lif/R125AQ33.lif @@ -0,0 +1,119 @@ +#Life 1.05 +#R 125/36 +#P -27 -26 +........** +....**.**...* +...******* +..*..*.*.**.* +.....**.* +.** +** +.** +.....**.* +..*..*.*.**.* +...******* +....**.**...* +........** +#P -4 -27 +......*** +. +....*..*.** +...**....* +..*....** +......** +.**..*.* +**....* +.**..*.* +......** +..*....** +...**....* +....*..*.** +. +......*** +#P 12 -27 +...................* +....................*..* +..................***.* +....*.**..*.*......* +...*..*.*.**.....**.** +..**...**.***.....*** +.****.****.....*.........* +**....***....*..*.*...** +.****.****.....*.........* +..**...**.***.....*** +...*..*.*.**.....**.** +....*.**..*.*......* +..................***.* +....................*..* +...................* +#P 3 -9 +..............** +......*......*..* +.....**.....*...* +.......*.*...*..* +....*.......* +.**.**...*....* +**.**.....*.* +**..* +.*** +..**..* +.*** +**..* +**.**.....*.* +.**.**...*....* +....*.......* +.......*.*...*..* +.....**.....*...* +......*......*..* +..............** +. +. +......* +.....**............** +.......*.*........*..* +....*................* +.**.**...*..*....*...* +**.**.....*...*.* +**..*.......*.....* +.***.......***.***...** +..**..*....**..*..**.*** +.***.......***.***...** +**..*.......*.....* +**.**.....*...*.* +.**.**...*..*....*...* +....*................* +.......*.*........*..* +.....**............** +......* +#P -27 -6 +........**..........** +....**.**...*...**.**...* +...*******....*.****** +..*..*.*.**.*.**.*.*.**.* +.....**.*........**.* +.** +** +.** +.....**.*........**.* +..*..*.*.**.*.**.*.*.**.* +...*******....*.****** +....**.**...*...**.**...* +........**..........** +#P -27 12 +.....* +....***..** +.........*.*......* +...*...*****.....*..*** +..***....*.**.*...* +..*.***.**..*.**..* +.....*.**....***..** +.**...**.*......***....* +**.....***.......*.*** +.**...**.*......***....* +.....*.**....***..** +..*.***.**..*.**..* +..***....*.**.*...* +...*...*****.....*..*** +.........*.*......* +....***..** +.....* diff --git a/programs/demos/life2/lif/R125BOX.lif b/programs/demos/life2/lif/R125BOX.lif new file mode 100644 index 000000000..8ab2381da --- /dev/null +++ b/programs/demos/life2/lif/R125BOX.lif @@ -0,0 +1,418 @@ +#Life 1.05 +#R 125/36 +#P -1 151 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 176 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 101 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 126 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 51 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 76 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 1 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 26 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 -48 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 -23 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 -98 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 -72 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 -148 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 -122 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 -199 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +#P -1 -173 +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** +** diff --git a/programs/demos/life2/lif/R125FISH.lif b/programs/demos/life2/lif/R125FISH.lif new file mode 100644 index 000000000..471d7df55 --- /dev/null +++ b/programs/demos/life2/lif/R125FISH.lif @@ -0,0 +1,11 @@ +#Life 1.05 +#R 125/36 +#P 0 0 +..* +. +*.* +#P 3 0 +** +. +. +* diff --git a/programs/demos/life2/lif/R125FUSE.lif b/programs/demos/life2/lif/R125FUSE.lif new file mode 100644 index 000000000..65a4264b5 --- /dev/null +++ b/programs/demos/life2/lif/R125FUSE.lif @@ -0,0 +1,13 @@ +#Life 1.05 +#R 125/36 +#P 1 1 +* +..* +.* +....* +...* +#P 6 6 +.* +* +...* +..* diff --git a/programs/demos/life2/lif/R125OSCS.lif b/programs/demos/life2/lif/R125OSCS.lif new file mode 100644 index 000000000..c1bb47e0c --- /dev/null +++ b/programs/demos/life2/lif/R125OSCS.lif @@ -0,0 +1,247 @@ +#Life 1.05 +#R 125/36 +#P -39 -23 +..* +*.* +** +#P -33 -23 +.* +..* +*.* +** +#P -27 -23 +..** +.*.* +* +** +#P -19 -23 +**.* +.** +.** +*.** +#P -10 -23 +** +** +** +** +#P -3 -23 +**..* +*.*.* +..* +..* +#P 5 -23 +...** +..*.*.* +..*...* +*.*...*.* +.*.....* +#P 17 -23 +..* +..* +.*.* +*...* +**.** +#P 25 -23 +..** +..* +.*.* +*...* +**.** +#P 33 -23 +** +* +.*.* +....* +...** +#P -37 -17 +**...** +**...** +**...** +**...** +..*** +**...** +**...** +**...** +**...** +#P -25 -16 +.** +* +*** +* +.** +#P -19 -16 +**...** +..*.* +***.*** +..*.* +**...** +#P -9 -16 +**.....** +..*.*.* +****.**** +..*.*.* +**.....** +#P 3 -15 +....** +......* +.*..* +..*..* +* +.** +#P 13 -15 +*.*.*...** +*...*..* +..*....** +*.*.*....* +*.*.*...** +#P 26 -14 +.** +*.** +*..* +#P 33 -14 +...* +.**.* +*...* +#P 0 -6 +.*...* +*.*.* +.* +....* +.*.*.* +*...* +#P 9 -6 +...** +.*....* +..*..* +..*..* +**....** +#P 21 -7 +..........*.* +.........*...* +.........*...* +........*.....* +.......*.*.*.*.* +.....**.*.*.*.*.** +....*....*...*....* +........*.....* +....*....*...*....* +.....**.*.*.*.*.** +.......*.*.*.*.* +........*.....* +.........*...* +*........*...* +*.........*.* +*.* +..* +..* +.....** +#P -39 -4 +..** +.* +* +*.* +#P -31 -5 +.*..* +..** +**..** +*....* +.*..* +#P -21 -4 +.*..*.*** +..*...* +***.*..* +#P -8 -5 +**.** +. +..* +. +**.** +#P -35 3 +** +* +.** +.** +* +** +#P -28 3 +*....* +*....* +*....* +.*..* +#P -18 4 +.....*** +**.....* +*.***.* +*.....* +..*...* +..*.....* +..*.***.* +.*.....** +.*** +#P -38 6 +* +* +#P -4 6 +*...* +**.** +**.** +**.** +*...* +#P 7 5 +* +** +** +** +** +* +#P 11 5 +.* +** +** +** +** +.* +#P 17 5 +** +#P -30 12 +...**** +. +....** +*........* +*.*....*.* +*.*....*.* +*........* +....** +. +...**** +#P -1 15 +* +.* +. +...** +..*.* +.* +#P -11 17 +..* +.* +....* +**.* +** +#P 9 17 +*.* +*.* +..* +..* +#P 15 18 +* +* +*.* +*.* +#P 22 17 +.*..* +.*..* +**..** +#P 32 18 +*.* +*..* +.*.* diff --git a/programs/demos/life2/lif/R135AQ33.lif b/programs/demos/life2/lif/R135AQ33.lif new file mode 100644 index 000000000..6bb84d286 --- /dev/null +++ b/programs/demos/life2/lif/R135AQ33.lif @@ -0,0 +1,108 @@ +#Life 1.05 +#R 135/3 +#P 16 -50 +....* +....* +....** +....* +...** +..*..** +. +.*.*.** +**...* +..*.** +.*.*** +..*..* +..* +...*** +....*.* +....*.* +....** +. +....** +...** +...*.* +...*.* +...** +....** +. +....** +....*.* +....*.* +...*** +..* +..*..* +.*.*** +..*.** +**...* +.*.*.** +. +..*..** +...** +....* +....** +....* +....* +#P 0 -35 +.....* +...** +...** +...*.* +. +...** +. +....* +. +..**.** +....*.* +.*.* +..* +* +..* +.*.* +....*.* +..**.** +. +....* +. +...** +. +...*.* +...** +...** +.....* +#P 37 -29 +.** +** +.**..** +.*.*..** +..*.* +. +.**...* +.**...* +....* +....** +..* +..* +..** +. +.** +*..* +....* +.*...* +..*..** +..* +...* +#P 1 8 +...*...**.....**...............* +.*..*....*....*****......*.*.**.* +.*......****..**..*...*.**...*....* +**..****.****.***..*.*.*.*...**..*.** +..*...**.*..***.*...*.*.**.*.****...* +.*..*.*...*...**.*......**..*.*..***.*** +.*..*.*...*...**.*......**..*.*..***.*** +..*...**.*..***.*...*.*.**.*.****...* +**..****.****.***..*.*.*.*...**..*.** +.*......****..**..*...*.**...*....* +.*..*....*....*****......*.*.**.* +...*...**.....**...............* diff --git a/programs/demos/life2/lif/R135AQUA.lif b/programs/demos/life2/lif/R135AQUA.lif new file mode 100644 index 000000000..97499eba4 --- /dev/null +++ b/programs/demos/life2/lif/R135AQUA.lif @@ -0,0 +1,1015 @@ +#Life 1.05 +#R 135/3 +#P -86 -83 +...*..** +.**.*.* +**.....* +.***..* +.....* +....* +....* +.....* +.***..* +**.....* +.**.*.* +...*..** +#P -58 -76 +** +**..* +****..* +..** +.....* +.....* +..** +****..* +**..* +** +. +. +. +. +. +.** +** +.**.....*** +...*.*.*** +.....*** +......* +......* +.....*** +...*.*.*** +.**.....*** +** +.** +. +. +. +. +. +..*.**.* +****...** +**.....** +****...* +..*.** +.......* +.......* +..*.** +****...* +**.....** +****...** +..*.**.* +#P -144 -75 +...** +.** +** +.** +#P -124 -75 +..*** +**** +** +**** +..*** +#P -86 -66 +..*.*.* +****..** +**....** +****..* +..*.* +......* +......* +..*.* +****..* +**....** +****..** +..*.*.* +#P -124 -60 +........* +.......** +..***.* +****..* +** +****..* +..***.* +.......** +........* +#P -27 -60 +......*..* +**.....*** +**..*.* +****..* +..**** +. +..**** +****..* +**..*.* +**.....*** +......*..* +. +. +. +. +. +** +**...** +***.**** +..***..* +. +....*..* +...**..* +....*..* +. +..***..* +***.**** +**...** +** +#P 37 -60 +.*** +**..* +.***..* +.....** +.....*.** +...*....* +.*** +.** +.*** +...*....* +.....*.** +.....** +.***..* +**..* +.*** +#P 69 -63 +..** +****...*.* +**..*.*..** +**....**.** +.......*** +....*....* +..**.*.* +.** +..**.*.* +....*....* +.......*** +**....**.** +**..*.*..** +****...*.* +..** +#P -144 -56 +** +**..* +**** +..** +#P 130 -55 +.*** +**..*...*** +.***..*.*.* +.....**..* +.....*.* +...*.....* +.***...*..* +.**...**..* +.***...*..* +...*.....* +.....*.* +.....**..* +.***..*.*.* +**..*...*** +.*** +#P -124 -46 +..........* +..........* +........* +..*.**.* +****.*..* +**...**..* +****.*..* +..*.**.* +........* +..........* +..........* +#P -86 -44 +.*** +**..* +.*** +.....*.* +.....* +.....* +.....*.* +.*** +**..* +.*** +#P -144 -37 +..* +*** +** +****.* +..***.* +....** +......* +. +. +. +. +. +..* +*** +** +***.*.* +..*.**..* +.....*..* +.......* +. +. +. +. +. +** +**....* +***...* +..*** +....** +#P 69 -38 +.*** +**..* +.****** +....**..* +.......*.* +...*.*..* +.**.**...* +** +.**.**...* +...*.*..* +.......*.* +....**..* +.****** +**..* +.*** +#P 37 -35 +.....** +..*..* +***.* +**....* +***..* +..*..*.* +. +....** +. +..*..*.* +***..* +**....* +***.* +..*..* +.....** +#P -124 -30 +.......**.* +.....* +....***..* +..**** +*** +** +*** +..**** +....***..* +.....* +.......**.* +#P 130 -30 +.**...*.* +**..****.* +.***.*.**** +....*....*.* +...........* +........* +......***** +......** +......***** +........* +...........* +....*....*.* +.***.*.**** +**..****.* +.**...*.* +#P -86 -24 +..* +*** +** +**.** +...*.* +...*.* +**.** +** +*** +..* +. +. +. +. +. +..*..* +******* +**...** +**** +..*** +.....* +.....* +..*** +**** +**...** +******* +..*..* +#P -58 -27 +...*.**.* +.**.* +**....* +.**.*.*.* +...*.** +......** +......** +...*.** +.**.*.*.* +**....* +.**.* +...*.**.* +#P -27 -26 +.......* +.......* +**.....** +**..*...* +****..* +..**** +. +..**** +****..* +**..*...* +**.....** +.......* +.......* +. +. +. +. +. +........* +.......** +.**.....*** +**..**....* +.****..*...* +.....* +. +.....* +.****..*...* +**..**....* +.**.....*** +.......** +........* +#P 37 -15 +.....** +..*..* +***.* +**....*..* +***..*..* +..*..*.** +. +....** +. +..*..*.** +***..*..* +**....*..* +***.* +..*..* +.....** +#P 130 -10 +..**....** +.**...*...* +..**..*...* +....*...* +.........* +..**** +***.* +** +***.* +..**** +.........* +....*...* +..**..*...* +.**...*...* +..**....** +#P -144 -3 +** +** +*** +..**** +....***..* +.....* +.......**.* +#P -121 -1 +**....* +**....* +***.* +..**** +. +..**** +***.* +**....* +**....* +#P 37 5 +...**.* +.**..**** +**...**..* +.** +.......*** +.......*.* +.....****.* +.....** +.....****.* +.......*.* +.......*** +.** +**...**..* +.**..**** +...**.* +#P -27 10 +.......* +.......*..* +**.....**** +**..*...** +****..* +..**** +. +..**** +****..* +**..*...** +**.....**** +.......*..* +.......* +. +. +. +. +. +.......* +..***.** +****....** +**.....** +****...* +..*.**** +. +..*.**** +****...* +**.....** +****....** +..***.** +.......* +#P -144 14 +..*** +****...** +**....**..* +****....* +..*** +#P -121 13 +** +**..* +****..* +..**** +. +..**** +****..* +**..* +** +#P -87 14 +........* +..*.**.*..*.* +****.*..*..** +**...**..* +****.*..*..** +..*.**.*..*.* +........* +#P 130 15 +...*..*.*** +.**.*.**** +**.....* +.**.*...** +...*..** +.......**** +.........* +. +.........* +.......**** +...*..** +.**.*...** +**.....* +.**.*.**** +...*..*.*** +#P -87 26 +........*.....** +..*.**.*..*.*....* +****.*..*..**..** +**...**..* +****.*..*..**..** +..*.**.*..*.*....* +........*.....** +#P 37 25 +...* +.**.* +**.....*.* +.**.*.*.* +...*.*....* +......**..* +..........* +.......** +..........* +......**..* +...*.*....* +.**.*.*.* +**.....*.* +.**.* +...* +#P -144 29 +..*.** +***...* +**.....* +***.*.*.* +..*...** +.....** +......* +#P -121 31 +..** +****...** +**..*.** +**....* +. +. +. +. +. +..*...**.** +****.**..*..* +**...*....* +**....*.* +.........* +#P -87 38 +**........* +**..*....**.*.* +***.***.**.** +..*.**..**...* +....**..* +..*.**..**...* +***.***.**.** +**..*....**.*.* +**........* +. +. +. +. +. +**....* +**..*.**......* +****...**.*.*.*** +..**.....*...*.*** +...........****.* +..**.....*...*.*** +****...**.*.*.*** +**..*.**......* +**....* +#P 130 40 +**.......* +**...*...* +***.**** +..*..* +....*...* +..*..**.* +***......* +**....**..* +***......* +..*..**.* +....*...* +..*..* +***.**** +**...*...* +**.......* +#P -144 41 +..*.* +****..** +**....*..* +****..*..** +..*.*..*..** +. +. +. +. +. +..*.** +****...** +**.....*..* +****...*..** +..*.**..*..** +#P 97 44 +.*** +**..* +.***..* +.....** +.....*.** +...*...*..* +.***.....*.* +.**...**..* +.***.....*.* +...*...*..* +.....*.** +.....** +.***..* +**..* +.*** +#P -27 46 +.....*.* +**...*.* +**..*.* +***.*....* +..*.**...* +....**** +....****.* +....**** +..*.**...* +***.*....* +**..*.* +**...*.* +.....*.* +#P 37 45 +...** +...**..* +...***.*** +.....*.** +.......**.* +...*..*.*** +.**.**....** +** +.**.**....** +...*..*.*** +.......**.* +.....*.** +...***.*** +...**..* +...** +#P 69 52 +.*** +**..*...* +.***....* +.....*.*.** +.....* +...*..* +.*** +.** +.*** +...*..* +.....* +.....*.*.** +.***....* +**..*...* +.*** +#P -121 60 +..*...**.** +****.**..*....** +**...*....*.***..* +**....*.*.....**** +.........*.....** +#P -144 61 +..*.* +****..** +**....* +****..* +..*.*..* +.........* +.........* +#P -87 66 +** +**..*.......* +****..*.*.*.*** +..****.*...*.*** +.........****.* +..****.*...*.*** +****..*.*.*.*** +**..*.......* +** +#P -58 66 +.***....* +**..*..** +.******.*** +....***...* +.......*...* +. +.......*...* +....***...* +.******.*** +**..*..** +.***....* +#P -121 70 +..*...**.**.....* +****.**..*..*..** +**...*....*.*****.* +**....*.*....*..*** +.........*........** +#P -144 73 +..*.** +****...** +**.....* +****...* +..*.**..* +..........* +..........* +#P -27 87 +.*** +**..*...* +.***...** +.....*.**.* +.....*...* +.....*...* +.....*.**.* +.***...** +**..*...* +.*** +#P -58 -5 +..*.** +****.*.* +**...*** +****.* +..*.**.** +. +..*.**.** +****.* +**...*** +****.*.* +..*.** +#P -58 11 +..*.**.* +****.* +**...**.* +****.* +..*.**.** +. +..*.**.** +****.* +**...**.* +****.* +..*.**.* +#P -58 27 +..*..**..** +****...*.* +**...** +**...**..* +.......*.** +. +.......*.** +**...**..* +**...** +****...*.* +..*..**..** +#P -58 43 +..* +***....* +**....* +***.*...* +..*..*..* +.....*** +. +.....*** +..*..*..* +***.*...* +**....* +***....* +..* +#P 69 -13 +..*...* +****.** +**...*..** +**....**.* +. +.......*..* +.....**.*** +....** +.....**.*** +.......*..* +. +**....**.* +**...*..** +****.** +..*...* +#P 69 7 +..*...** +****.** +**...* +**....*.* +........* +.....* +...***** +...** +...***** +.....* +........* +**....*.* +**...* +****.** +..*...** +#P 69 27 +..** +..**...* +..***.****.* +....** +......*...* +...*.* +.**..** +** +.**..** +...*.* +......*...* +....** +..***.****.* +..**...* +..** +#P 97 -61 +**....* +**....* +***.* +..**** +.......*** +....*.*** +..**..* +.** +..**..* +....*.*** +.......*** +..**** +***.* +**....* +**....* +#P 97 -41 +.**....* +**..**.* +.****..* +.....* +.......* +....* +..***** +..** +..***** +....* +.......* +.....* +.****..* +**..**.* +.**....* +#P 97 -21 +.**....* +**....** +.**..* +...*.*...* +. +....*****.* +..***.* +..** +..***.* +....*****.* +. +...*.*...* +.**..* +**....** +.**....* +#P 97 -1 +..**.....* +..**...** +..***.***.** +....**...** +......*...* +...*.* +.**..** +** +.**..** +...*.* +......*...* +....**...** +..***.***.** +..**...** +..**.....* +#P 97 19 +**....** +**..*...* +****...* +..***** +. +....*.* +..**.** +.** +..**.** +....*.* +. +..***** +****...* +**..*...* +**....** +#P 5 -66 +**..** +**........* +****....** +..***..** +....**.* +........* +.....**..* +........* +....**.* +..***..** +****....** +**........* +**..** +#P 5 -48 +.** +** +.** +...*.* +.....** +..*...** +**** +** +**** +..*...** +.....** +...*.* +.** +** +.** +#P 5 -28 +** +** +**** +..*...** +.....** +...*.* +.** +** +.** +...*.* +.....** +..*...** +**** +** +** +#P 5 -8 +....* +.***.*..**.* +**..**** +.**...**..* +.......*** +....*..** +..***** +..** +..***** +....*..** +.......*** +.**...**..* +**..**** +.***.*..**.* +....* +#P 5 12 +..** +.**...** +..**..**** +....*...*** +. +..**** +***.* +** +***.* +..**** +. +....*...*** +..**..**** +.**...** +..** +#P 5 32 +.** +**..**..* +.****..**..* +.....*.**** +........** +.....*.* +...**..* +..** +...**..* +.....*.* +........** +.....*.**** +.****..**..* +**..**..* +.** +#P 5 52 +...** +..**..* +...***..* +.......* +.......** +..*.**..** +****......* +** +****......* +..*.**..** +.......** +.......* +...***..* +..**..* +...** diff --git a/programs/demos/life2/lif/R135PUSH.lif b/programs/demos/life2/lif/R135PUSH.lif new file mode 100644 index 000000000..bdbb1841b --- /dev/null +++ b/programs/demos/life2/lif/R135PUSH.lif @@ -0,0 +1,100 @@ +#Life 1.05 +#R 135/3 +#P 35 0 +** +#P 64 -1 +..*** +** +..*** +#P 80 -1 +..*** +** +..*** +#P 96 -1 +..*** +** +..*** +#P 112 -1 +..*** +** +..*** +#P 128 -1 +..*** +** +..*** +#P 144 -1 +..*** +** +..*** +#P 160 -1 +..*** +** +..*** +#P 176 -1 +..*** +** +..*** +#P 192 -1 +..*** +** +..*** +#P 208 -1 +..*** +** +..*** +#P 224 -1 +..*** +** +..*** +#P 240 -1 +..*** +** +..*** +#P 256 -1 +..*** +** +..*** +#P 272 -1 +..*** +** +..*** +#P 288 -1 +..*** +** +..*** +#P 304 -1 +..*** +** +..*** +#P 320 -1 +..*** +** +..*** +#P 336 -1 +..*** +** +..*** +#P 352 -1 +..*** +** +..*** +#P 368 -1 +..*** +** +..*** +#P 384 -1 +..*** +** +..*** +#P 400 -1 +..*** +** +..*** +#P 416 -1 +..*** +** +..*** +#P 432 -1 +..*** +** +..*** diff --git a/programs/demos/life2/lif/R234KLDO.lif b/programs/demos/life2/lif/R234KLDO.lif new file mode 100644 index 000000000..fbff54b17 --- /dev/null +++ b/programs/demos/life2/lif/R234KLDO.lif @@ -0,0 +1,8 @@ +#Life 1.05 +#R /234 +#P -1 -1 +** +** +#P -1 1 +. +. diff --git a/programs/demos/life2/lif/R2378PI.lif b/programs/demos/life2/lif/R2378PI.lif new file mode 100644 index 000000000..2ceefedb6 --- /dev/null +++ b/programs/demos/life2/lif/R2378PI.lif @@ -0,0 +1,7 @@ +#Life 1.05 +#R 2378/38 +#P -1 -1 +*** +*.* +#P -1 1 +*.* diff --git a/programs/demos/life2/lif/R238COLL.lif b/programs/demos/life2/lif/R238COLL.lif new file mode 100644 index 000000000..b679301fc --- /dev/null +++ b/programs/demos/life2/lif/R238COLL.lif @@ -0,0 +1,20 @@ +#Life 1.05 +#R 238/357 +#P 3 -3 +...* +...** +....** +**...* +....** +...** +...* +#P 9 -2 +...** +...** +* +...** +...** +#P 18 -1 +* +* +* diff --git a/programs/demos/life2/lif/R238FISH.lif b/programs/demos/life2/lif/R238FISH.lif new file mode 100644 index 000000000..01a238fac --- /dev/null +++ b/programs/demos/life2/lif/R238FISH.lif @@ -0,0 +1,11 @@ +#Life 1.05 +#R 238/357 +#P 3 -3 +...* +...** +....** +**...** +#P 6 1 +.** +** +* diff --git a/programs/demos/life2/lif/R238OSCS.lif b/programs/demos/life2/lif/R238OSCS.lif new file mode 100644 index 000000000..a498b6a40 --- /dev/null +++ b/programs/demos/life2/lif/R238OSCS.lif @@ -0,0 +1,28 @@ +#Life 1.05 +#R 238/357 +#P -14 -6 +..**...**...**...**...** +***..***..***..***..***..* +*..***..***..***..***..*** +..**...**...**...**...** +#P -13 3 +.* +*** +*** +. +*** +*** +.* +#P -4 3 +*** +*** +.* +. +.* +*** +*** +#P 4 3 +**** +**** +**** +**** diff --git a/programs/demos/life2/lif/R245FISH.lif b/programs/demos/life2/lif/R245FISH.lif new file mode 100644 index 000000000..557a32c95 --- /dev/null +++ b/programs/demos/life2/lif/R245FISH.lif @@ -0,0 +1,7 @@ +#Life 1.05 +#R 245/368 +#P -5 0 +.* +** +#P -6 2 +*** diff --git a/programs/demos/life2/lif/R245PUFF.lif b/programs/demos/life2/lif/R245PUFF.lif new file mode 100644 index 000000000..190bfc3b4 --- /dev/null +++ b/programs/demos/life2/lif/R245PUFF.lif @@ -0,0 +1,10 @@ +#Life 1.05 +#R 245/368 +#P 5 -3 +.* +* +* +* +#P 5 1 +* +.* diff --git a/programs/demos/life2/lif/R2AQUA1.lif b/programs/demos/life2/lif/R2AQUA1.lif new file mode 100644 index 000000000..261617c60 --- /dev/null +++ b/programs/demos/life2/lif/R2AQUA1.lif @@ -0,0 +1,23 @@ +#Life 1.05 +#R /2 +#P -4 -5 +.* +* +* +.* +#P 4 -5 +..* +* +* +..* +#P 12 -5 +..* +* +* +.* +#P -3 4 +...* +..*..* +*...* +* +.* diff --git a/programs/demos/life2/lif/R2COL.lif b/programs/demos/life2/lif/R2COL.lif new file mode 100644 index 000000000..8e617b3df --- /dev/null +++ b/programs/demos/life2/lif/R2COL.lif @@ -0,0 +1,10 @@ +#Life 1.05 +#R /2 +#P 2 -1 +..* +* +* +..* +#P -3 1 +.* +* diff --git a/programs/demos/life2/lif/R2DIAG.lif b/programs/demos/life2/lif/R2DIAG.lif new file mode 100644 index 000000000..572e85420 --- /dev/null +++ b/programs/demos/life2/lif/R2DIAG.lif @@ -0,0 +1,134 @@ +#Life 1.05 +#R /2 +#P 1 1 +* +.* +..* +...* +....* +.....* +......* +.......* +........* +.........* +..........* +...........* +............* +.............* +..............* +...............* +................* +.................* +..................* +...................* +....................* +.....................* +......................* +.......................* +........................* +.........................* +..........................* +...........................* +............................* +.............................* +..............................* +...............................* +#P 33 33 +* +.* +..* +...* +....* +.....* +......* +.......* +........* +.........* +..........* +...........* +............* +.............* +..............* +...............* +................* +.................* +..................* +...................* +....................* +.....................* +......................* +.......................* +........................* +.........................* +..........................* +...........................* +............................* +.............................* +..............................* +...............................* +#P -63 -63 +* +.* +..* +...* +....* +.....* +......* +.......* +........* +.........* +..........* +...........* +............* +.............* +..............* +...............* +................* +.................* +..................* +...................* +....................* +.....................* +......................* +.......................* +........................* +.........................* +..........................* +...........................* +............................* +.............................* +..............................* +...............................* +................................* +#P -30 -30 +* +.* +..* +...* +....* +.....* +......* +.......* +........* +.........* +..........* +...........* +............* +.............* +..............* +...............* +................* +.................* +..................* +...................* +....................* +.....................* +......................* +.......................* +........................* +.........................* +..........................* +...........................* +............................* +.............................* +..............................* diff --git a/programs/demos/life2/lif/R2OSCS.lif b/programs/demos/life2/lif/R2OSCS.lif new file mode 100644 index 000000000..082ac5dd0 --- /dev/null +++ b/programs/demos/life2/lif/R2OSCS.lif @@ -0,0 +1,16 @@ +#Life 1.05 +#R /2 +#P -5 -1 +* +.* +#P 3 -1 +* +.** +.** +...* +#P 12 -1 +* +.* +. +.* +* diff --git a/programs/demos/life2/lif/R2PASCAL.lif b/programs/demos/life2/lif/R2PASCAL.lif new file mode 100644 index 000000000..2cc5dc0a6 --- /dev/null +++ b/programs/demos/life2/lif/R2PASCAL.lif @@ -0,0 +1,23 @@ +#Life 1.05 +#R /2 +#P -252 0 +*.......*.......*.......*.......*.......*.......* +*.......*.......*.......*.......*.......*.......* +#P -196 0 +*.......*.......*.......*.......*.......*.......* +*.......*.......*.......*.......*.......*.......* +#P -140 0 +*.......* +*.......* +#P 132 0 +* +* +#P 140 0 +*.......*.......*.......*.......*.......*.......* +*.......*.......*.......*.......*.......*.......* +#P 196 0 +*.......*.......*.......*.......*.......*.......* +*.......*.......*.......*.......*.......*.......* +#P 252 0 +* +* diff --git a/programs/demos/life2/lif/R2PUF.lif b/programs/demos/life2/lif/R2PUF.lif new file mode 100644 index 000000000..f4c3e1039 --- /dev/null +++ b/programs/demos/life2/lif/R2PUF.lif @@ -0,0 +1,12 @@ +#Life 1.05 +#R /2 +#P 8 0 +* +.* +. +..* +#P 11 -1 +.* +..* +..* +* diff --git a/programs/demos/life2/lif/R2PUF2.lif b/programs/demos/life2/lif/R2PUF2.lif new file mode 100644 index 000000000..f61f59dca --- /dev/null +++ b/programs/demos/life2/lif/R2PUF2.lif @@ -0,0 +1,13 @@ +#Life 1.05 +#R /2 +#P 5 -3 +* +.* +..* +...* +...* +#P 3 2 +...* +..* +.* +* diff --git a/programs/demos/life2/lif/R2PUF3.lif b/programs/demos/life2/lif/R2PUF3.lif new file mode 100644 index 000000000..3b66b89ee --- /dev/null +++ b/programs/demos/life2/lif/R2PUF3.lif @@ -0,0 +1,12 @@ +#Life 1.05 +#R /2 +#P -5 -4 +.*.* +....* +*...* +..* +#P -5 1 +..* +*...* +....* +.*.* diff --git a/programs/demos/life2/lif/R2RAKE.lif b/programs/demos/life2/lif/R2RAKE.lif new file mode 100644 index 000000000..a8131c6ca --- /dev/null +++ b/programs/demos/life2/lif/R2RAKE.lif @@ -0,0 +1,23 @@ +#Life 1.05 +#R /2 +#P 3 -1 +.....* +. +....* +. +...* +*...* +* +#P 9 -2 +*...* +...* +. +. +* +* +#P 17 -1 +*....* +.*....* +..*...* +....* +...* diff --git a/programs/demos/life2/lif/R2RAKE2.lif b/programs/demos/life2/lif/R2RAKE2.lif new file mode 100644 index 000000000..c60bc4dc5 --- /dev/null +++ b/programs/demos/life2/lif/R2RAKE2.lif @@ -0,0 +1,24 @@ +#Life 1.05 +#R /2 +#P -16 -11 +* +*...* +...*..* +......* +....* +. +.....*...* +......*...*....* +.............*..* +..............*.* +#P -16 2 +..............*.* +.............*..* +......*...*....* +.....*...* +. +....* +......* +...*..* +*...* +* diff --git a/programs/demos/life2/lif/R34ACORN.lif b/programs/demos/life2/lif/R34ACORN.lif new file mode 100644 index 000000000..9231a76c2 --- /dev/null +++ b/programs/demos/life2/lif/R34ACORN.lif @@ -0,0 +1,8 @@ +#Life 1.05 +#R 34/34 +#P 1 0 +** +.* +#P 3 1 +* +** diff --git a/programs/demos/life2/lif/R34AQUA.lif b/programs/demos/life2/lif/R34AQUA.lif new file mode 100644 index 000000000..2f4df2156 --- /dev/null +++ b/programs/demos/life2/lif/R34AQUA.lif @@ -0,0 +1,18 @@ +#Life 1.05 +#R 34/34 +#P 1 0 +* +** +** +* +#P 6 0 +**** +...* +*..* +.*** +.* +#P 13 0 +.* +*..* +..** +.*** diff --git a/programs/demos/life2/lif/R34BILL.lif b/programs/demos/life2/lif/R34BILL.lif new file mode 100644 index 000000000..9440ed768 --- /dev/null +++ b/programs/demos/life2/lif/R34BILL.lif @@ -0,0 +1,18 @@ +#Life 1.05 +#R 34/34 +#P -6 -6 +..**.**.*.** +.*.********.* +*.*........*.* +**.********.** +.*.*..*.*.*.* +**.*.....**.** +.*.**.....*.** +#P -6 1 +**.*.....**.* +**.**.....*.** +.*.*.*.*..*.* +**.********.** +*.*........*.* +.*.********.* +..**.*.**.** diff --git a/programs/demos/life2/lif/R34P12.lif b/programs/demos/life2/lif/R34P12.lif new file mode 100644 index 000000000..7afabd8f3 --- /dev/null +++ b/programs/demos/life2/lif/R34P12.lif @@ -0,0 +1,21 @@ +#Life 1.05 +#R 34/34 +#P -6 -7 +.*** +.** +*** +#P 3 -7 +..* +** +.*..* +.*** +...* +#P -6 3 +..* +.** +*** +#P 2 3 +...* +..**.* +*.** +..* diff --git a/programs/demos/life2/lif/R34P2.lif b/programs/demos/life2/lif/R34P2.lif new file mode 100644 index 000000000..c3336134a --- /dev/null +++ b/programs/demos/life2/lif/R34P2.lif @@ -0,0 +1,90 @@ +#Life 1.05 +#R 34/34 +#P -16 -22 +.* +** +* +#P -7 -22 +*** +. +.* +#P 0 -22 +*** +.* +.* +#P 6 -22 +* +.** +.* +#P 14 -23 +.* +.*** +** +..* +#P -18 -14 +** +*.** +** +#P -11 -14 +*.* +*.** +** +#P -4 -14 +..* +**.** +.*.* +.*.* +#P 4 -14 +..** +**.* +.*.** +.** +#P 12 -14 +.** +.*.** +*.*.* +**.* +..** +#P -20 -3 +.*...............* +**...............** +..*.............* +....*.*.*.*.*.* +...*.*.*.*.*.*.* +.*...............* +.**.............** +*.................* +#P 2 -1 +***..**..**..**..*** +...**..**..**..** +.*................* +#P -18 12 +...* +...*.* +.* +......** +** +......* +..*.* +....* +#P -7 12 +...*.*.*..*.* +...*.*.**.*.* +.*............* +. +**............** +. +.*............* +...*.*.**.*.* +...*.*..*.*.* +#P 12 12 +........*.*.* +...*.*.*..*.* +...*.*.*......* +.* +..............** +** +..............* +.*......*.*.* +...*.*..*.*.* +...*.*.* diff --git a/programs/demos/life2/lif/R34P3.lif b/programs/demos/life2/lif/R34P3.lif new file mode 100644 index 000000000..02afb8439 --- /dev/null +++ b/programs/demos/life2/lif/R34P3.lif @@ -0,0 +1,52 @@ +#Life 1.05 +#R 34/34 +#P -6 -9 +.* +.*.* +** +..* +#P 1 -9 +.**** +*....* +*....* +*....* +*....* +.**** +#P -27 3 +.........*.* +...*.*.*.*.* +...*.*.......* +.* +.............** +** +.............* +.*.......*.* +...*.*.*.*.* +...*.* +#P -9 3 +...........*.*.* +.........*.*.*.* +.......*...*.....* +...*.*.*.* +...*.*.*.........** +.* +.................* +**.........*.*.* +.........*.*.*.* +.*.....*...* +...*.*.*.* +...*.*.* +#P 13 3 +...........*.*.* +.........*.*.*.* +...........*.....* +.......* +...*.*.*.*.......** +...*.*.* +.*...............* +...........*.*.* +**.......*.*.*.* +...........* +.*.....* +...*.*.*.* +...*.*.* diff --git a/programs/demos/life2/lif/R34P4.lif b/programs/demos/life2/lif/R34P4.lif new file mode 100644 index 000000000..ee0bcc0b1 --- /dev/null +++ b/programs/demos/life2/lif/R34P4.lif @@ -0,0 +1,7 @@ +#Life 1.05 +#R 34/34 +#P -1 -1 +.* +*** +#P 0 1 +* diff --git a/programs/demos/life2/lif/R34STILL.lif b/programs/demos/life2/lif/R34STILL.lif new file mode 100644 index 000000000..34fd6c5e8 --- /dev/null +++ b/programs/demos/life2/lif/R34STILL.lif @@ -0,0 +1,23 @@ +#Life 1.05 +#R 34/34 +#P -5 0 +** +** +#P 2 0 +..** +.*.* +*.* +**.* +.*.* +** +*.** +.** +#P 6 0 +.** +**.* +..** +*.* +*.** +.*.* +*.* +** diff --git a/programs/demos/life2/lif/R45678FI.lif b/programs/demos/life2/lif/R45678FI.lif new file mode 100644 index 000000000..a7d8c4f5f --- /dev/null +++ b/programs/demos/life2/lif/R45678FI.lif @@ -0,0 +1,9 @@ +#Life 1.05 +#R 45678/35 +#P -2 -2 +* +.*** +***** +#P -1 1 +**** +.* diff --git a/programs/demos/life2/lif/R45678G2.lif b/programs/demos/life2/lif/R45678G2.lif new file mode 100644 index 000000000..d44e6dc9e --- /dev/null +++ b/programs/demos/life2/lif/R45678G2.lif @@ -0,0 +1,13 @@ +#Life 1.05 +#R 45678/35 +#P -1 -5 +.* +*** +*** +*** +*** +#P -1 0 +*** +*** +*** +.* diff --git a/programs/demos/life2/lif/R45678GO.lif b/programs/demos/life2/lif/R45678GO.lif new file mode 100644 index 000000000..51ba5d5bc --- /dev/null +++ b/programs/demos/life2/lif/R45678GO.lif @@ -0,0 +1,10 @@ +#Life 1.05 +#R 45678/35 +#P -1 -2 +.* +*** +*** +#P -1 1 +*** +*** +.* diff --git a/programs/demos/life2/lif/R45678OS.lif b/programs/demos/life2/lif/R45678OS.lif new file mode 100644 index 000000000..f150888ed --- /dev/null +++ b/programs/demos/life2/lif/R45678OS.lif @@ -0,0 +1,173 @@ +#Life 1.05 +#R 45678/35 +#P -36 -20 +..* +.*** +***** +#P -27 -20 +..* +.*** +***** +***** +..* +#P -17 -20 +..* +.*** +***** +.*** +.*** +#P 17 -19 +** +*** +.** +#P 24 -20 +......* +**.....** +***....*** +.**.....** +...*......* +#P -1 -13 +.** +. +**** +#P 7 -13 +.* +*** +.* +#P -36 -11 +.*** +***** +.*** +#P -26 -11 +..* +***** +.*** +#P 14 -12 +.*** +*** +*** +* +#P 24 -12 +.** +*** +**** +..* +#P -12 -10 +**** +**** +#P -37 -1 +*** +*** +*** +#P -29 -1 +*** +*** +*** +.* +#P -22 -1 +.*** +.*** +.*** +*** +#P -14 -2 +..*** +.*** +.*** +.*** +*** +#P -6 -2 +*** +.*** +.*** +.*** +*** +#P 2 -1 +**** +.*** +.*** +...* +#P 10 -2 +.* +.**** +.*** +**** +...* +#P 19 -2 +* +*** +*** +*** +..* +#P 26 -2 +..* +.*** +.*** +.*** +*** +#P 35 -1 +.*** +***** +***** +..* +#P 15 7 +....* +....* +..***** +..***** +******* +..*** +..*** +#P 23 6 +......* +......* +....***** +....***** +..********* +....***** +....***** +......* +......* +. +. +..* +***** +***** +****** +***** +***** +..* +#P -30 9 +.* +***** +.**** +.**** +.**** +#P -22 9 +..* +..**** +****** +..**** +..**** +#P -37 10 +**** +**** +**** +**** +#P -12 10 +..*** +..*** +******* +.***** +.*.*.* +#P -1 10 +.*** +**** +**** +**** +#P 8 10 +.*** +**** +**** +*** +#P 22 20 +* diff --git a/programs/demos/life2/lif/R45678PO.lif b/programs/demos/life2/lif/R45678PO.lif new file mode 100644 index 000000000..4e79f95e8 --- /dev/null +++ b/programs/demos/life2/lif/R45678PO.lif @@ -0,0 +1,138 @@ +#Life 1.05 +#R 45678/35 +#P -22 -23 +...* +.***** +.***** +******* +.***** +.***** +.***** +******* +.***** +.***** +.***** +******* +.***** +.***** +.***** +******* +.***** +.***** +.***** +******* +.***** +.***** +.***** +******* +.***** +.***** +.***** +******* +.***** +.***** +.***** +******* +.***** +.***** +.***** +******* +.***** +.***** +.***** +******* +.***** +.***** +.***** +...* +...* +#P -3 -23 +.** +.*** +**** +.*** +.**** +.*** +**** +.*** +.**** +.*** +**** +.*** +.**** +.*** +**** +.*** +.**** +.*** +**** +.*** +.**** +.*** +**** +.*** +.**** +.*** +**** +.*** +.**** +.*** +**** +.*** +.**** +.*** +**** +.*** +.**** +.*** +**** +.*** +.**** +.*** +**** +.*** +.**** +.*** +..** +#P 14 -23 +..* +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** +***** +.*** diff --git a/programs/demos/life2/lif/R4OSC.lif b/programs/demos/life2/lif/R4OSC.lif new file mode 100644 index 000000000..1009553a8 --- /dev/null +++ b/programs/demos/life2/lif/R4OSC.lif @@ -0,0 +1,40 @@ +#Life 1.05 +#R 4/4 +#P -27 -8 +......* +....***..*...**.***.**.**.* +.....*.***********.******** +.....*....* +.....* +.*....** +.****** +**....* +..* +..* +**....* +.****** +.*....** +.....* +.....*....*.........*.*.** +.....*.************.**.**** +....***..*...**.**.*.* +......* +#P 0 -8 +...................* +*.**.**.**.**...*..*** +*******************.* +...............*....* +....................* +..................**....* +...................****** +...................*....** +.......................* +.......................* +...................*....** +...................****** +..................**....* +....................* +**...*.........*....* +******.************.* +....*.*.**.**...*..*** +...................* diff --git a/programs/demos/life2/lif/R5678LIN.lif b/programs/demos/life2/lif/R5678LIN.lif new file mode 100644 index 000000000..a066b6890 --- /dev/null +++ b/programs/demos/life2/lif/R5678LIN.lif @@ -0,0 +1,8 @@ +#Life 1.05 +#R 5678/35678 +#P -26 0 +*************************** +*************************** +#P 1 0 +*************************** +************************** diff --git a/programs/demos/life2/lif/R5678MAT.lif b/programs/demos/life2/lif/R5678MAT.lif new file mode 100644 index 000000000..c5261f94b --- /dev/null +++ b/programs/demos/life2/lif/R5678MAT.lif @@ -0,0 +1,84 @@ +#Life 1.05 +#R 5678/35678 +#P -36 -20 +..****..****..****..****..****..**** +..****..****..****..****..****..**** +**....**....**....**....**....**....* +**....**....**....**....**....**....* +**....**....**....**....**....**....* +**....**....**....**....**....**....* +..****..****..****..****..****..**** +..****..****..****..****..****..**** +**....**....**....**....**....**....* +**....**....**....**....**....**....* +**....**....**....**....**....**....* +**....**....**....**....**....**....* +..****..****..****..****..****..**** +..****..****..****..****..****..**** +**....**....**....**....**....**....* +**....**....**....**....**....**....* +**....**....**....**....**....**....* +**....**....**....**....**....**....* +..****..****..****..****..****..**** +..****..****..****..****..****..**** +..****..****..****..****..****..**** +..****..****..****..****..****..**** +**....**....**....**....**....**....* +**....**....**....**....**....**....* +**....**....**....**....**....**....* +**....**....**....**....**....**....* +..****..****..****..****..****..**** +..****..****..****..****..****..**** +**....**....**....**....**....**....* +**....**....**....**....**....**....* +**....**....**....**....**....**....* +**....**....**....**....**....**....* +..****..****..****..****..****..**** +..****..****..****..****..****..**** +**....**....**....**....**....**....* +**....**....**....**....**....**....* +**....**....**....**....**....**....* +**....**....**....**....**....**....* +..****..****..****..****..****..**** +..****..****..****..****..****..**** +#P 1 -20 +.****..****..****..****..****..**** +.****..****..****..****..****..**** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +.****..****..****..****..****..**** +.****..****..****..****..****..**** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +.****..****..****..****..****..**** +.****..****..****..****..****..**** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +.****..****..****..****..****..**** +.****..****..****..****..****..**** +.****..****..****..****..****..**** +.****..****..****..****..****..**** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +.****..****..****..****..****..**** +.****..****..****..****..****..**** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +.****..****..****..****..****..**** +.****..****..****..****..****..**** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +*....**....**....**....**....**....** +.****..****..****..****..****..**** +.****..****..****..****..****..**** diff --git a/programs/demos/life2/lif/R5678NON.lif b/programs/demos/life2/lif/R5678NON.lif new file mode 100644 index 000000000..8bdfc38ef --- /dev/null +++ b/programs/demos/life2/lif/R5678NON.lif @@ -0,0 +1,35 @@ +#Life 1.05 +#R 5678/35678 +#P -15 -9 +************** +.************** +..************** +...************* +....************ +.....*********** +......********** +.......********* +........******** +.........******* +..........****** +...........***** +............**** +.............*** +..............** +...............* +#P 1 -6 +* +** +*** +**** +***** +****** +******* +******** +********* +********** +*********** +************ +************* +************** +.************** diff --git a/programs/demos/life2/lif/R5678OS2.lif b/programs/demos/life2/lif/R5678OS2.lif new file mode 100644 index 000000000..7bdeefbfe --- /dev/null +++ b/programs/demos/life2/lif/R5678OS2.lif @@ -0,0 +1,398 @@ +#Life 1.05 +#R 5678/35678 +#P -30 1 +*.**** +..****..** +....****** +....*.**** +......**** +#P -3 1 +**** +..**..** +..****** +....**** +....**** +#P -41 10 +.**** +.**** +.*** +****........***.*.* +..****........*.*.* +..****......***.*** +....****....*.....* +....****....***...* +......**** +......**** +........**** +........**** +..........**** +..........**** +............**** +............**** +............*.**** +..............****..** +..............*.****** +................****** +................*.**** +#P -15 10 +.**** +.**** +.*** +****........*.*.*** +*.****......*.*.*.* +..****......***.*.* +..*.****......*.*.* +....****......*.*** +......**** +......**** +........**** +........**** +........*.**** +..........**** +............**** +............**** +............*.**** +................**..** +................****** +..................**** +..................**** +#P 11 10 +.**** +.**** +.*** +****........*.*.*** +..****......*.*.*.* +..****......***.*** +..*.****......*.*.* +....****......*.*** +......**** +......**** +........**** +........**** +..........**** +..........**** +..........*.**** +............**** +............*.**** +..............****..** +..............*.****** +..................**** +..................**** +#P -41 35 +..** +..** +**** +.*** +.**** +.****........*.*** +...****......*.* +...****......*.*** +.....****....*.*.* +.....****....*.*** +.......**** +.......**** +.......*.**** +.........**** +...........**** +...........**** +.............**** +.............**** +...............**** +...............*.**..** +.................****** +...................**** +...................**** +#P -41 62 +.**** +.**** +.*** +**** +*.****.......***.*** +..****.......*.*...* +..*.****.....***.*** +....****.....*.*.* +....*.****...***.*** +......**** +........**** +........**** +........*.**** +..........**** +............**** +............**** +..............**** +..............**** +................**** +................*.**..** +..................****** +....................**** +....................**** +#P -13 62 +.**** +.**** +.*** +**** +*.****.......***.*** +..****.......*.*.*.* +....****.....***.*** +....****.......*.*.* +....*.****...***.*** +......**** +......*.**** +........**** +..........**** +..........**** +..........*.**** +............**** +..............**** +..............**** +..............*.**** +................*.**..** +..................****** +....................**** +....................**** +#P 15 62 +.**** +.**** +.*** +****........*.***.*.* +..****......*...*.*.* +..****......*.***.*** +....****....*.*.....* +....****....*.***...* +......**** +......**** +........**** +........**** +..........**** +..........**** +............**** +............**** +..............**** +..............**** +................**** +................****..** +..................****** +..................****** +..................*.**** +#P -41 89 +..** +..** +**** +.*** +.**** +.**** +...****.......*.*** +...****.......*.* +.....****.....*.*** +.....****.....*.*.* +.....*.****...*.*** +.......**** +.........**** +.........**** +...........**** +...........**** +.............**** +.............**** +.............*.**** +...............**** +.................**** +...................**..** +...................****** +.....................**** +.....................**** +#P -12 89 +..** +..** +**** +.*** +.**** +.**** +...****.......*.*** +...****.......*.* +.....****.....*.*** +.....****.....*.*.* +.......****...*.*** +.......**** +.......*.**** +.........**** +...........**** +...........**** +.............**** +.............**** +.............*.**** +...............**** +.................**** +.................****..** +.................*.****** +...................*.**** +.....................**** +#P 17 89 +..** +..** +**** +.*** +.****.......*.***.*** +.****.......*.*.*...* +...****.....*.***.*** +...****.....*.*.*.* +.....****...*.***.*** +.....**** +.....*.**** +.......**** +.........**** +.........**** +...........**** +...........**** +.............**** +.............**** +.............*.**** +...............**** +...............*.**** +...................**..** +...................****** +.....................**** +.....................**** +#P -41 -114 +..**......*** +..**......*.* +****......*** +.***......*.* +.****.....*** +.**** +...**** +...**** +...*.**** +.....****..** +.......****** +.......*.**** +.........**** +. +. +. +. +.****......*** +.****......*.* +.***.......*** +****.......*.* +..****.....*** +..**** +..*.**** +....**** +......**** +......****..** +......*.****** +..........**** +..........**** +#P -41 -80 +.****................****....***.*** +.****................****......*.*.* +.***.......***.......***.....***.*** +****.......*........****.....*...*.* +..****.....***........****...***.*** +..****.....*.*........**** +..*.****...***..........**** +....****................**** +....*.****................**** +......****................**** +........****................**** +........****..**............****..** +........*.******..............****** +..........*.****..............****** +............****..............*.**** +. +. +. +. +..**.....................** +..**.....................** +****...................****......***.*** +.***.......*.***........***........*.*.* +.****......*.*.*........****.....***.*.* +.****......*.*.*........****.......*.*.* +...****....*.*.*..........****...***.*** +...****....*.***..........**** +.....****.................*.**** +.....****...................**** +.....*.****...................**** +.......****...................**** +.........****...................**** +.........****...................**** +...........****...................**** +...........****..**...............****..** +.............******...............*.****** +.............******...................**** +.............*.****...................**** +#P -41 -38 +.**** +.**** +.***.......***.*** +****.........*.*.* +..****.....***.*** +..****.....*...*.* +....****...***.*** +....**** +......**** +......**** +......*.**** +........**** +........*.**** +..........**** +............**** +............****..** +..............****** +..............****** +..............*.**** +#P -17 -38 +.**** +.**** +.***.......*.*.*** +****.......*.*.*.* +..****.....***.*** +..****.......*.*.* +....****.....*.*** +....**** +....*.**** +......**** +........**** +........**** +..........**** +..........**** +............**** +............*.**..** +..............****** +................**** +................**** +#P -41 -15 +..** +..** +**** +.***.......***.*.* +.****........*.*.* +.****......***.*** +...****....*.....* +...****....***...* +.....**** +.....**** +.......**** +.......**** +.........**** +.........**** +...........**** +...........**** +#P -16 -15 +..** +..** +**** +.***.......***.*** +.****........*...* +.****......***.*** +...****......*.* +...****....***.*** +.....**** +.....**** +.....*.**** +.......**** +.........**** +.........*.** +...........**** +.............** diff --git a/programs/demos/life2/lif/R5678OSC.lif b/programs/demos/life2/lif/R5678OSC.lif new file mode 100644 index 000000000..22b7bed12 --- /dev/null +++ b/programs/demos/life2/lif/R5678OSC.lif @@ -0,0 +1,171 @@ +#Life 1.05 +#R 5678/35678 +#P -22 -20 +.* +**.** +..*** +.****** +.****** +...*** +...**.** +......* +#P -10 -19 +...*.........*.........* +...*.*......*****......* +.****........****....*** +...****......****......* +..*.*........*****....** +....*...........* +. +. +. +.............*.........* +.............*.*.......* +..****.....*****.....*** +.*.**.*......*****.....* +.******.....******....** +.******.......****** +.*.**.*.......**** +..****..........*.* +................* +......................* +......................* +.............*......**** +...*.........*.*......** +..*.***....*****.....*** +..*****......*****.....* +..*****.....******.....* +..*.**.*......****** +...****.......***** +................***** +................*.* +...........*......* +...........*.* +.*.......***** +**.*..*....*****.......* +..****....****** +.*****......****** +..*****.....****** +..****........******...* +.*..*.**......**** +......*.........*.* +................* +#P 14 -21 +.* +.*.* +**** +****** +*****.......**...** +*******......***** +*****......********* +*****......********* +*.*.....*************** +..*.......*********** +.........************* +..........*********** +.*......*************** +**.........********* +****.......********* +****.........***** +******......**...** +****** +..****** +..*****.......*.*.*.* +....*****....******** +*...*.*....*********** +*.....*.....*********** +***........*********** +**..........*********** +****.......*********** +.*..........*********** +.*.........*********** +............*********** +.............******** +.............*.*.*.* +.*...* +.*.*.* +.********....*.* +*******......**** +.*******....******* +*******....******* +.********...******* +*******....******* +..*.*.*......**** +..*...*.......*.* +#P -29 -16 +*.* +..* +*** +#P -37 -11 +.* +. +**.* +. +.*** +#P -29 -9 +.** +. +**** +#P -22 -9 +*.*.*.* +..*.* +***.*** +. +. +***.*** +..*.* +*.*.*.* +#P -37 -2 +.* +**.* +* +*.* +#P -29 -3 +** +** +**** +**** +#P -21 2 +.*..* +****.* +.**** +.**** +*.**** +.*..* +#P -39 5 +.* +**.* +.** +***** +..* +*.* +#P -31 5 +.*.* +** +.**** +*** +..*.* +*.* +#P -22 12 +.*....* +**.**.** +..**** +.****** +.****** +..**** +**.**.** +.*....* +#P -34 14 +.** +..***** +******* +.**** +**.** +.* +#P -46 15 +..** +...* +.***** +***** +..* +..** diff --git a/programs/demos/life2/lif/R5678POP.lif b/programs/demos/life2/lif/R5678POP.lif new file mode 100644 index 000000000..715aa47b1 --- /dev/null +++ b/programs/demos/life2/lif/R5678POP.lif @@ -0,0 +1,92 @@ +#Life 1.05 +#R 5678/35678 +#P 12 -1 +* +* +*** +*** +.**** +.**** +...**** +...**** +...*.**** +.....**** +.....*.**** +.......**** +.......*.**** +.........**** +...........**** +...........**** +...........*.**** +.............**** +#P 27 17 +**** +**** +..**** +..**** +..*.**** +....**** +....*.**** +......**** +........**** +........**** +..........**** +..........**** +..........*.**** +............******** +............*.****** +..............**** +..............*..* +#P -24 -33 +....**** +....**** +....*** +...**** +.....**** +.....**** +.......**** +.......**** +.........**** +.........**** +.........*.**** +...........**** +...........*.**** +.............**** +.............*.**** +...............**** +.****............**** +.****............**** +.***...............**** +****...............**** +..****.............*.**** +..****...............**** +..*.****...............**** +....****...............**** +......****.............*.**** +......****...............**** +......*.****...............**** +#P -24 -6 +........****...............**** +........*.****...............**** +..........****...............**** +...****.....****.............*.**** +...****.....****...............**** +...***......*.****.............*.*** +..****........****...............*** +....****......*.****.............*.* +....****........****...............* +....*.****........**** +......****........**** +......*.****......*.**** +........****........**** +.****.....****......*.**** +.****.....****........**** +.***........****........**** +****........****........**** +..****........****......*.**** +..****........********....**** +..*.****........******......**** +....********....****........******** +....*.******....*..*..........****** +......****....................**** +......*..*....................*..* diff --git a/programs/demos/life2/lif/RABBITS.lif b/programs/demos/life2/lif/RABBITS.lif new file mode 100644 index 000000000..97783d03b --- /dev/null +++ b/programs/demos/life2/lif/RABBITS.lif @@ -0,0 +1,11 @@ +#Life 1.05 +#D Rabbits +#D Another small but vigorously growing population. +#D (If you look closely you can see a male and female rabbit!) +#D Andrew Trevorrow discovered Rabbits in 1986 using a +#D Methuselah search program. +#N +#P -3 -1 +*...*** +***..* +.* diff --git a/programs/demos/life2/lif/RACE.lif b/programs/demos/life2/lif/RACE.lif new file mode 100644 index 000000000..e6de5184a --- /dev/null +++ b/programs/demos/life2/lif/RACE.lif @@ -0,0 +1,92 @@ +#Life 1.05 +#D A race between two gliders +#D +#D There's no winner, but at least +#D equality has been achieved. +#N +#P -6 -6 +..* +.*.* +*..* +.** +#P -10 -10 +..***** +.*....* +*..* +*.** +* +* +** +#P -14 -7 +.* +*.* +.* +#P -7 -14 +.* +*.* +.* +#P 2 -15 +....*..* +....* +...*....* +..*.*..** +**.* +. +. +*..* +..** +#P 14 -8 +** +** +** +.* +*.* +.* +* +#P 9 -3 +***.* +**** +....* +#P -15 2 +....*..* +....* +...*....* +..*.*..** +**.* +. +. +*..* +..** +#P -3 9 +** +** +** +.* +*.* +.* +* +#P -8 14 +***.* +**** +....* +#P 5 5 +.** +*..*..** +*.*....*..* +.*.....*.*.* +....**.*..* +....*..* +.*....* +.***** +. +...* +..*.* +...* +#P 6 1 +*.* +.** +.* +#P 1 6 +* +.** +** diff --git a/programs/demos/life2/lif/RAKE.lif b/programs/demos/life2/lif/RAKE.lif new file mode 100644 index 000000000..b2854920d --- /dev/null +++ b/programs/demos/life2/lif/RAKE.lif @@ -0,0 +1,33 @@ +#Life 1.05 +#D Rake +#D +#D Two LWSS perturb the output of a +#D puffer train (PUFTRAIN) to make +#D a moving glider gun. +#N +#P -10 -8 +.** +**** +**.** +..** +#P -2 -8 +...* +....* +*...* +.**** +#P -2 -1 +* +.** +..* +..* +.* +#P -2 6 +...* +....* +*...* +.**** +#P -19 9 +.**** +*...* +....* +...* diff --git a/programs/demos/life2/lif/RAKE2.lif b/programs/demos/life2/lif/RAKE2.lif new file mode 100644 index 000000000..c6b6c347a --- /dev/null +++ b/programs/demos/life2/lif/RAKE2.lif @@ -0,0 +1,34 @@ +#Life 1.05 +#D Backward Rake +#D +#D Two LWSS perturb the output of a +#D puffer train (PUFTRAIN) to make +#D a moving glider gun. Very +#D similar to RAKE. +#N +#P -10 -8 +.** +**** +**.** +..** +#P -2 -8 +...* +....* +*...* +.**** +#P -2 -1 +* +.** +..* +..* +.* +#P -2 6 +...* +....* +*...* +.**** +#P -20 8 +...* +....* +*...* +.**** diff --git a/programs/demos/life2/lif/RAKE3.lif b/programs/demos/life2/lif/RAKE3.lif new file mode 100644 index 000000000..a789925a1 --- /dev/null +++ b/programs/demos/life2/lif/RAKE3.lif @@ -0,0 +1,78 @@ +#Life 1.05 +#D Rake for the Breeder +#D +#D Uses a different puffer train +#D than the other rakes. +#N +#P 7 -12 +.****** +*.....* +......* +*....* +..** +#P 11 -4 +** +.** +** +* +. +* +** +.** +** +#P 6 -6 +..* +.* +** +*.* +.* +. +. +. +.* +*.* +** +.* +..* +#P 7 8 +..** +*....* +......* +*.....* +.****** +#P -4 -16 +..** +*....* +......* +*.....* +.****** +#P -4 12 +.****** +*.....* +......* +*....* +..** +#P -29 -13 +..* +*...* +.....* +*....* +.***** +#P -29 9 +.***** +*....* +.....* +*...* +..* +#P -89 -11 +..* +*...* +.....* +*....* +.***** +#P -89 7 +.***** +*....* +.....* +*...* +..* diff --git a/programs/demos/life2/lif/RAKEGUN.lif b/programs/demos/life2/lif/RAKEGUN.lif new file mode 100644 index 000000000..ceba35dff --- /dev/null +++ b/programs/demos/life2/lif/RAKEGUN.lif @@ -0,0 +1,1167 @@ +#Life 1.05 +#D Rake Gun +#D +#D Yet another method of quadratic +#D growth (see also the BREEDERs +#D and SWITCPUF). Notice that you +#D can switch to backward rakes by +#D delaying the lwssgun farthest +#D west by two generations. +#D +#D By Achim Flammenkamp, +#D Aug 6, 1994. +#N +#P 139 -89 +** +** +#P 137 -77 +.***** +*.***.* +.*...* +..*** +...* +#P 139 -69 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P 144 -57 +** +* +.*** +...* +#P 126 -86 +** +** +#P 123 -79 +...* +..*** +..*** +. +**...** +**...** +#P 121 -64 +*.....* +*.....* +.*...* +..*** +#P 119 -54 +..** +...* +*** +* +#P 126 -54 +.....* +***.**..** +****....** +....** +#P 73 -90 +** +** +. +.* +*.* +*.* +.* +#P 71 -81 +**.*.** +*.....* +.*...* +..*** +#P 73 -64 +.***** +*.***.* +.*...* +..*** +...* +#P 76 -55 +..*** +.**.** +.**.** +.***** +**...** +#P 74 -48 +..* +**.* +...* +. +*.** +..*..* +...*.* +#P 74 -37 +..*** +.*...* +*.....* +.*...* +..*** +..*** +#P 76 -28 +** +** +#P 71 -71 +.* +* +*** +#P 64 -63 +* +*.* +** +#P 68 -55 +** +*.* +* +#P 56 -59 +* +.** +** +#P 59 -51 +.** +*** +**.* +.*** +..* +#P 60 -36 +.** +.*** +*.** +*** +.* +#P 66 -46 +...** +...*.* +**.*.* +*.*.* +..* +.*..* +.* +.*...* +.* +.*..* +..* +*.*.* +**.*.* +...*.* +...** +#P 54 -78 +.** +.** +. +. +*** +*** +#P 52 -69 +**...** +.***** +..*** +...* +#P 50 -52 +**...** +..*** +.*...* +..*.* +...* +#P 53 -44 +** +** +#P 53 -37 +.** +.** +. +. +..** +*.** +* +* +*..* +.** +#P 110 17 +...* +.*** +* +** +#P 104 27 +...*** +..*...* +.*.....* +.*.....* +. +.* +.** +.** +**..* +.*.* +..** +#P 103 40 +**...** +**...** +. +..*** +..*** +...* +#P 105 51 +** +** +#P 97 17 +.....* +***.**..** +****....** +....** +#P 100 27 +** +** +#P 95 31 +.** +*.* +..* +#P 91 19 +*** +* +.* +#P 85 20 +* +*** +...* +..** +#P 87 29 +**...** +...* +*.....* +.**.** +..*.* +...* +...* +#P 89 39 +...* +..*** +.*...* +*.***.* +.***** +#P 92 54 +** +** +#P 77 13 +** +** +#P 75 20 +..*** +. +..*.* +.***** +**...** +**...** +#P 76 28 +..** +**.** +*..* +...* +* +.** +#P 77 36 +**...** +.***** +..*** +...* +#P 74 48 +...* +..*** +..*** +. +**...** +**...** +#P 72 56 +..** +.*.* +** +.** +.** +....*** +#P 72 66 +**...** +. +.*...* +..*** +..*** +#P 74 75 +** +** +#P 70 37 +..* +** +.** +#P 66 49 +.** +** +..* +#P 67 18 +...** +...*.* +**.*.* +*.*.* +..* +.** +*** +*** +*** +.** +..* +*.*.* +**.*.* +...*.* +...** +#P 61 22 +*** +*..* +* +* +.*.* +#P 60 37 +.*** +*..* +...* +...* +*.* +#P 53 14 +..** +.*.* +*** +** +...** +..*** +#P 55 22 +** +** +#P 54 29 +** +** +#P 51 37 +..*** +.*...* +. +*.....* +**...** +#P 56 44 +** +*.* +..* +.** +#P 54 48 +* +*..* +* +#P 53 53 +**.*.** +. +*.....* +. +.**.** +...* +#P 56 63 +** +** +#P 42 43 +*** +*** +. +. +** +** +#P 40 36 +...* +..*** +.***** +**...** +#P 42 18 +...* +..*.* +.*...* +..*** +**...** +#P 47 13 +...* +.*** +* +** +#P 40 27 +.** +** +..* +#P 32 22 +** +.** +* +#P 29 9 +.*.* +....* +*....*..** +**.*..*.** +....** +#P 22 10 +* +*** +...* +..** +#P 24 19 +**...** +*.....* +. +.*...* +..*** +#P 26 30 +...* +.**.** +. +*.....* +. +**.*.** +#P 29 44 +** +** +#P 17 1 +...* +.*** +* +** +#P 12 7 +..*** +..*** +.*...* +. +**...** +#P 11 15 +** +*.* +* +#P 10 25 +..*** +.*...* +*.....* +*.....* +...* +.*...* +..*** +...* +#P 12 35 +** +** +#P 5 13 +*** +..* +.* +#P 3 8 +*** +* +.* +#P 4 1 +....** +**....**** +**..**.*** +....* +#P -8 4 +* +*** +...* +..** +#P -6 13 +..*** +.*...* +*.....* +**.*.** +#P -3 19 +...* +..** +. +.*.** +*..** +**** +#P -4 27 +**...** +...* +*.....* +.**.** +..*.* +...* +...* +#P -1 38 +** +** +#P 7 -23 +..** +**.** +**** +.** +#P 7 -15 +..** +**.** +**** +.** +#P -2 -24 +*..* +....* +*...* +.**** +#P -10 -8 +.** +**** +**.** +..** +#P -28 -66 +** +** +. +. +*** +*** +#P -30 -57 +**...** +.***** +..*** +...* +#P -28 -40 +**...** +..*** +.*...* +..*.* +...* +#P -23 -34 +** +* +.*** +...* +#P -30 -47 +..* +** +.** +#P -31 -34 +*.* +.** +.* +#P -33 -30 +** +** +#P -41 -31 +.*..** +*...** +* +.**** +#P -36 -39 +** +** +#P -41 -63 +** +** +#P -44 -53 +**.*.** +. +*.....* +. +.**.** +...* +#P -46 -41 +..*** +.*...* +. +*.....* +**...** +#P -48 -31 +..** +...* +*** +* +#P -53 -23 +..** +**.** +**** +.** +#P -62 -24 +*..* +....* +*...* +.**** +#P -70 -8 +.** +**** +**.** +..** +#P -54 -32 +** +* +.*** +...* +#P -59 -40 +...* +..*** +.***** +**...** +.***** +.*...* +..*.* +...*** +#P -60 -64 +.** +*..* +...* +...* +.*.* +.*.* +..* +#P -61 -55 +**...** +*.....* +. +.*...* +..*** +#P -61 -44 +* +*.* +** +#P -67 -33 +..** +.*** +*.*..*..** +**..**..** +....** +#P -72 -67 +** +** +#P -75 -62 +...* +..*.* +.*...* +..*** +**...** +#P -74 -53 +* +* +*.*** +#P -72 -49 +...* +*.** +** +#P -77 -44 +**...** +**...** +.***** +..*.* +. +..*** +#P -79 -35 +..** +...* +*** +* +#P -84 -35 +** +* +.*** +...* +#P -89 -47 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P -91 -55 +.***** +*.***.* +.*...* +..*** +...* +#P -89 -67 +** +** +#P -93 -45 +* +*.* +** +#P -29 4 +...* +.*** +* +** +#P -34 13 +**...** +*.*.*.* +.***** +..*** +...* +#P -36 25 +..*** +.**.** +.**.** +.***** +**...** +#P -32 34 +** +#P -34 38 +** +** +#P -35 4 +*** +..* +.* +#P -37 16 +** +*.* +* +#P -47 1 +....** +****....** +***.**..** +.....* +#P -54 1 +* +*** +...* +..** +#P -52 13 +**...** +..*** +.*...* +..*.* +...* +#P -48 19 +*** +*** +#P -50 24 +**...** +.***** +..*** +...* +#P -47 35 +** +** +#P -42 11 +** +** +#P -92 -5 +** +.** +* +#P -94 3 +...* +.*** +* +** +#P -99 12 +**...** +*.....* +. +.*...* +..*** +#P -101 23 +...* +.**.** +. +*.....* +. +**.*.** +#P -99 37 +** +** +#P -103 15 +.** +** +..* +#P -107 10 +** +.** +* +#P -112 0 +....** +**.*..*.** +**..*....* +.....* +......*.* +#P -119 0 +* +*** +...* +..** +#P -117 12 +.***** +*.***.* +.*...* +..*** +...* +#P -113 17 +** +*.* +*.* +.* +#P -115 23 +**.*.** +*.....* +.*...* +..*** +#P -112 34 +** +** +#P -102 -33 +......** +......*** +**..*..*.* +**..**..** +....** +#P -97 -40 +..* +*.* +.** +#P -102 -64 +** +** +#P -105 -57 +...* +..*** +..*** +. +**...** +**...** +#P -104 -49 +.** +.*.* +*..** +..** +..** +...* +#P -107 -42 +*.....* +*.....* +.*...* +..*** +#P -109 -32 +..** +...* +*** +* +#P -114 -32 +** +* +.*** +...* +#P -119 -49 +.* +*.* +*.* +.** +#P -119 -45 +...* +..*** +.*...* +*.***.* +.***** +#P -121 -55 +..*** +.*...* +*.....* +**.*.** +#P -119 -64 +** +** +#P -119 -31 +** +** +#P -127 -32 +.**** +* +*...** +.*..** +#P -124 -40 +** +** +#P -122 -24 +*..* +....* +*...* +.**** +#P -130 -8 +.** +**** +**.** +..** +#P -132 -67 +** +** +#P -135 -57 +**.*.** +. +*.....* +. +.**.** +...* +#P -129 -46 +* +.** +** +#P -137 -45 +..*** +.*...* +. +*.....* +**...** +#P -139 -35 +..** +...* +*** +* +#P -149 -67 +** +** +#P -151 -61 +..*** +..*** +.*...* +. +**...** +#P -151 -52 +....*** +.** +.** +** +.*.* +..** +#P -149 -44 +**...** +**...** +. +..*** +..*** +...* +#P -144 -35 +** +* +.*** +...* +#P -163 -64 +.** +.** +.** +.* +*.* +*.* +.* +#P -165 -55 +**...** +*.*.*.* +.***** +..*** +...* +#P -167 -39 +..*** +.*...* +*.....* +.*...* +..*** +..*** +#P -169 -32 +..** +...* +*** +* +#P -162 -32 +.....**** +**.......* +**..**...* +....**..* +#P -161 -44 +*.* +.** +.* +#P -164 -22 +** +** +#P -175 -25 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -180 -24 +.** +*.* +..* +*** +** +#P -183 -22 +.* +** +#P -189 -27 +..** +.*.* +* +*..* +* +.*.* +..** +#P -189 -16 +* +*.* +** +#P -203 -24 +** +*** +..**.* +..*..* +..**.* +*** +** +#P -208 -19 +.** +..* +.* +** +#P -212 -21 +*** +#P -210 -19 +* +* +* +#P -221 -22 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -226 -19 +** +** +#P -201 -12 +..* +*.* +.** +#P -214 -1 +** +** +#P -208 -3 +....* +..*.* +** +** +** +..*.* +....* +#P -199 1 +* +* +* +#P -198 -3 +..* +**** +**..* +...** +#P -191 -1 +** +** +...** +...*** +...** +** +** +#P -180 1 +** +** +#P -173 -6 +.** +* +#P -182 -16 +.**....*....** +*..*.*...*.*..* +***.........*** +...**.....** +..*..*****..* +..**.......** +#P -190 -8 +.** +**** +**.** +..** +#P -173 -1 +.**** +*.......** +*...**..** +.*..** +#P -157 -1 +.** +*.* +..* +#P -188 9 +* +*** +...* +..** +#P -182 14 +* +* +#P -186 18 +**...** +.***** +..*** +...* +#P -184 30 +..*** +. +..*.* +.***** +**...** +**...** +#P -184 38 +...* +.** +. +* +. +.*..* +...** +#P -179 22 +* +..* +.* +#P -177 19 +.** +*..* +#P -173 14 +..* +** +#P -181 8 +..** +.*** +*.*..*..** +**..**..** +....** +#P -163 12 +...* +.*** +* +** +#P -168 19 +..*** +.**.** +.**.** +.***** +**...** +#P -170 26 +..* +**.* +...* +. +*.** +..*..* +...*.* +#P -170 37 +..*** +.*...* +*.....* +.*...* +..*** +..*** +#P -168 46 +** +** diff --git a/programs/demos/life2/lif/RANDGUN.lif b/programs/demos/life2/lif/RANDGUN.lif new file mode 100644 index 000000000..ccf1200a3 --- /dev/null +++ b/programs/demos/life2/lif/RANDGUN.lif @@ -0,0 +1,159 @@ +#Life 1.05 +#D Pseudorandom number generator with p46 logic +#D A glider stream is emitted representing a pseudorandom binary +#D sequence satisfying the recursion a[n] = a[n-1] XOR a[n-12]. +#D (By spreading out the pattern, the 12 can be changed.) The +#D sequence has period 3255, so the gun has period 46*3255 = 149730. +#D Built by Bill Gosper, October 1989 or earlier +#D (Header by Dean Hickerson, 4/11/93) +#N +#P -41 61 +** +** +#P -33 53 +..** +.*.* +**.* +.** +..* +. +..* +.** +**.* +.*.* +..** +#P -5 56 +.** +**.** +.*..* +.*..* +..** +. +..** +.*..* +.*..* +**.** +.** +#P 6 64 +** +** +#P 49 -6 +** +** +** +#P 42 -3 +***...*** +*.*...*.* +*..*.*..* +..**.** +#P 42 5 +**.....** +**.*.*.** +*..*.*..* +***...*** +#P 49 21 +** +** +#P -8 -30 +** +** +#P 1 -38 +..* +.** +**....* +.**....** +. +. +. +.**....** +**....* +.** +..* +#P 19 -30 +** +** +#P -36 -64 +** +** +#P -24 -66 +...* +..** +.***.* +** +.** +..* +. +..* +.** +** +.***.* +..** +...* +#P -14 -59 +...* +.**.* +**.*** +.*..* +..** +#P -9 -64 +** +** +#P -47 -48 +** +** +#P -49 -34 +..**.....** +.*..*...*..* +....**.** +...*.*.*.* +...*.*.*.* +.*.........* +*...........* +#P -47 -25 +* +** +#P -45 -26 +**.** +.*.*..* +.***.*.** +*****.**** +.*.**.**.* +**.......** +**.......** +***.....*** +..***.*** +....*.* +.*..*.*..* +*..*...*..* +.**.....** +#P -44 -1 +** +** +#P -30 -30 +** +** +#P -32 -14 +.***.....*** +**.**...**.** +**.*.*.*.*.** +.*...*.*...* +.*..*...*..* +..***...*** +#P -30 -3 +** +** +#P -28 3 +** +** +#P -29 18 +***.....*** +***.....*** +.**.....** +...*...* +.*..*.*..* +*...*.*...* +.*..*.*..* +.***...*** +#P -28 30 +** +** diff --git a/programs/demos/life2/lif/RANDGUN2.lif b/programs/demos/life2/lif/RANDGUN2.lif new file mode 100644 index 000000000..bb8b4e6a3 --- /dev/null +++ b/programs/demos/life2/lif/RANDGUN2.lif @@ -0,0 +1,159 @@ +#Life 1.05 +#D Pseudorandom number generator with p120 logic +#D A glider stream is emitted representing a pseudorandom binary +#D sequence satisfying the recursion a[n] = a[n-1] XOR a[n-11]. +#D (By spreading out the pattern, the 11 can be changed.) The +#D sequence has period 1533, so the gun has period 120*1533 = 183960. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 3/21/92 +#N +#P -94 -90 +** +.* +.*.* +..** +#P -86 -88 +** +..* +...* +...* +...* +..* +** +#P -69 -90 +* +*.* +...** +...** +...** +*.* +* +#P -63 -91 +.** +*..* +.** +#P -57 -93 +** +*..* +....* +....* +....* +*..* +** +#P -46 -91 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P -32 -88 +.* +** +#P -75 -85 +.* +..* +*** +#P -52 -75 +**.* +*.** +#P -47 -71 +** +.* +. +. +*** +.** +#P -49 -65 +** +*** +.*.* +..** +#P -88 -59 +** +* +#P -91 -54 +...* +..*** +.*...* +*.***.* +.***** +#P -89 -36 +..*** +.*...* +*.....* +**.*.** +#P -86 -25 +.* +** +#P -85 -45 +*** +..* +.* +#P -71 -52 +* +*** +...* +..** +#P -69 -43 +*.....* +**...** +. +..*** +..*** +...* +#P -71 -32 +..*** +..*** +.*...* +. +**...** +#P -68 -18 +* +** +#P -73 -40 +*** +* +.* +#P 87 52 +** +* +#P 85 59 +...* +..*** +..*** +. +**...** +*.....* +#P 87 74 +*.....* +*.....* +.*...* +..*** +#P 77 84 +....** +..*...* +.*.....* +**.*...* +.*.....* +..*...* +....** +#P 70 86 +* +*.* +...** +...** +...** +*.* +* +#P 59 88 +* +** +#P 88 68 +.* +* +*** +#P 81 76 +* +*.* +** diff --git a/programs/demos/life2/lif/RANDLWSS.lif b/programs/demos/life2/lif/RANDLWSS.lif new file mode 100644 index 000000000..36535670c --- /dev/null +++ b/programs/demos/life2/lif/RANDLWSS.lif @@ -0,0 +1,197 @@ +#Life 1.05 +#D Pseudorandom LWSS generator with p46 logic +#D A lightweight spaceship stream is emitted representing a +#D pseudorandom binary sequence satisfying the recursion +#D a[n] = a[n-1] XOR a[n-19]. (By spreading out the pattern, +#D the 19 can be changed.) The sequence has period 413385, +#D so the gun has period 46*413385 = 19015710. +#D Built by Bill Gosper, October 1989 or earlier +#D (Header by Dean Hickerson, 4/11/93) +#N +#P 16 -18 +** +** +#P 15 -32 +.** +*.* +*..* +.** +#P 22 -32 +.** +.*.* +*..* +.** +#P 16 -45 +** +** +#P -40 -94 +** +** +#P -57 -102 +..** +.*..** +****** +..**** +. +. +. +..**** +****** +.*..** +..** +#P -65 -102 +.** +.** +*..* +.**.* +.**.* +#P -67 -96 +...**.* +...**.* +**.*** +*.*.* +.**** +..** +#P -119 -51 +** +** +#P -118 -39 +**...** +#P -120 -34 +**.* +*..* +.*** +#P -113 -34 +*.** +*..* +*** +#P -119 -24 +** +** +#P -139 -8 +** +** +#P -141 -1 +..***...*** +.*..*...*..* +.*...*.*...* +**.*.*.*.*.** +**.**...**.** +.***.....*** +#P -135 10 +...* +..*.* +.*...* +.***** +*.*.*.* +.*...* +. +.*...* +*.*.*.* +.***** +.*...* +..*.* +...* +#P -139 19 +** +** +#P -105 13 +** +** +#P -93 5 +.** +*..* +*..* +.*** +. +. +. +.*** +*..* +*..* +.** +#P -78 13 +** +** +#P -72 11 +** +** +#P -60 3 +.** +*..** +*...* +.*..* +.*** +. +.*** +.*..* +*...* +*..** +.** +#P -45 11 +** +** +#P -120 33 +** +** +#P -106 24 +......* +.*...* +* +*..** +.** +..*** +. +..*** +.** +*..** +* +.*...* +......* +#P -98 22 +.....***...* +...*****..*.* +..**...**...* +..***...*..* +.*.**...*** +..* +*..**...*** +*****...*..* +..**...**...* +********..*.* +*..*.***...* +..* +.** +#P -73 30 +** +** +#P -63 27 +** +** +#P -55 19 +..** +.*.* +**.* +.** +..* +. +..* +.** +**.* +.*.* +..** +#P -27 22 +.** +**.** +.*..* +.*..* +..** +. +..** +.*..* +.*..* +**.** +.** +#P -16 30 +** +** diff --git a/programs/demos/life2/lif/RELAY.lif b/programs/demos/life2/lif/RELAY.lif new file mode 100644 index 000000000..d62865cdf --- /dev/null +++ b/programs/demos/life2/lif/RELAY.lif @@ -0,0 +1,12 @@ +#Life 1.05 +#D Relay between two pentadecathlons +#D Well known. +#N +#P -17 -2 +********** +#P -1 0 +* +.** +** +#P 8 2 +********** diff --git a/programs/demos/life2/lif/RELAY2.lif b/programs/demos/life2/lif/RELAY2.lif new file mode 100644 index 000000000..1cf4e4937 --- /dev/null +++ b/programs/demos/life2/lif/RELAY2.lif @@ -0,0 +1,242 @@ +#Life 1.05 +#D Relay with pit stops +#D Authors: David Bell, Dean Hickerson. +#N +#P -56 -60 +*** +* +.* +#P -61 -59 +** +...* +* +....* +....* +. +..** +.* +#P -70 -61 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P -77 -58 +** +** +#P -63 -49 +**...** +**...** +.***** +..*.* +. +..*** +#P -65 -40 +..** +...* +*** +* +#P -61 -38 +..** +.*.* +.* +** +#P -52 -43 +...* +..** +.** +*** +.** +..** +...* +#P -45 -41 +** +** +** +. +. +*** +*** +#P -47 -31 +**...** +.***** +..*** +...* +#P -49 -22 +..** +...* +*** +* +#P -45 -20 +..** +.*.* +.* +** +#P -33 -25 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P -31 -17 +...* +..*.* +.*...* +..*** +**...** +#P -33 -4 +..** +...* +*** +* +#P -29 -2 +..** +.*.* +.* +** +#P -20 -7 +** +*** +..**.* +..*..* +..**.* +*** +** +#P -15 3 +..*** +. +..*.* +.***** +**...** +**...** +#P -15 11 +...* +.** +. +* +. +.*..* +...** +#P 54 57 +.* +..* +*** +#P 57 51 +...* +.** +. +* +* +....* +.* +...** +#P 65 54 +** +*** +..**.* +..*..* +..**.* +*** +** +#P 76 56 +** +** +#P 57 43 +..*** +. +..*.* +.***** +**...** +**...** +#P 62 36 +...* +.*** +* +** +#P 58 34 +..** +..* +*.* +** +#P 49 36 +* +** +.** +.*** +.** +** +* +#P 43 34 +*** +*** +. +. +.** +.** +.** +#P 41 27 +...* +..*** +.***** +**...** +#P 46 18 +...* +.*** +* +** +#P 42 16 +..** +..* +*.* +** +#P 29 18 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 25 12 +**...** +..*** +.*...* +..*.* +...* +#P 30 0 +...* +.*** +* +** +#P 26 -2 +..** +..* +*.* +** +#P 15 0 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P 9 -9 +**...** +**...** +.***** +..*.* +. +..*** +#P 11 -18 +** +*..* +. +....* +. +..** +.* diff --git a/programs/demos/life2/lif/REVFUSE.lif b/programs/demos/life2/lif/REVFUSE.lif new file mode 100644 index 000000000..9ec4dba4d --- /dev/null +++ b/programs/demos/life2/lif/REVFUSE.lif @@ -0,0 +1,535 @@ +#Life 1.05 +#D Reversible Pi Fuse +#D By Dean Hickerson. +#D Uses a pi-heptomino reaction that +#D climbs a row of blinkers. This +#D example has a period of 1200 gens. +#D See also SPARK2PI, PIPUF. +#N +#P -163 -46 +** +** +#P -159 -48 +* +.** +#P -154 -49 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -140 -51 +..** +.*.* +* +*..* +* +.*.* +..** +#P -134 -49 +.** +*..*.** +.**..** +#P -142 -44 +* +.** +** +#P -135 -36 +*.* +.** +.* +#P -127 -29 +* +.** +.* +#P -129 -25 +*..* +.** +#P -119 -34 +..** +..* +*.* +** +#P -115 -29 +..** +..* +*.* +** +#P -135 -21 +** +.** +* +#P -158 -16 +** +** +#P -148 -18 +..** +.*...* +*.....* +*...*.** +*.....* +.*...* +..** +#P -138 -16 +....* +..*.* +** +** +** +..*.* +....* +#P -128 -19 +** +** +#P -124 -14 +** +** +#P -162 -2 +** +** +#P -152 -5 +..** +.*...* +*.....* +*...*.** +*.....* +.*...* +..** +#P -142 -7 +....* +..*.* +** +** +** +..*.* +....* +#P -128 -4 +** +** +#P -139 2 +* +.** +** +#P -132 1 +** +** +#P -133 7 +.** +*..* +. +...* +...** +..* +#P -119 9 +** +*.* +..* +..** +#P -123 14 +** +*.* +..* +..** +#P -139 17 +.* +.** +*.* +#P -146 25 +** +.** +* +#P -167 28 +** +** +#P -163 30 +.** +* +#P -158 26 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -144 28 +..** +.*.* +* +*..* +* +.*.* +..** +#P -138 30 +.**..** +*..*.** +.** +#P -116 -5 +** +.** +* +#P -112 -14 +* +.** +** +#P -98 -25 +...* +.*** +* +** +#P -91 -9 +* +* +* +#P -75 -8 +*** +#P -57 -9 +* +* +* +#P -41 -8 +*** +#P -23 -9 +* +* +* +#P -7 -8 +*** +#P 11 -9 +* +* +* +#P 27 -8 +*** +#P 45 -9 +* +* +* +#P 61 -8 +*** +#P 79 -9 +* +* +* +#P 95 -8 +*** +#P -72 13 +** +** +#P -67 10 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P -49 12 +..** +.*.* +* +*..* +* +.*.* +..** +#P -43 14 +.** +*..*.** +.**..** +#P -58 16 +* +*.* +** +#P -66 23 +.* +* +*** +#P -68 18 +** +** +#P -83 26 +..** +.*.* +.* +** +#P -79 31 +..** +.*.* +.* +** +#P -68 29 +.** +*..* +.** +#P -60 28 +** +*..* +*..* +...* +. +*..* +..* +#P -67 47 +** +** +#P -59 45 +...** +.*..* +* +* +* +.*..* +...** +#P -52 44 +.*** +*..*.* +** +. +....*** +#P -43 43 +*.* +*...* +....* +*....* +....* +*...* +*.* +#P -33 45 +** +** +#P 36 14 +....** +**.*..* +**..** +#P 45 12 +** +*.* +...* +*..* +...* +*.* +** +#P 62 10 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P 70 13 +** +** +#P 55 16 +..* +*.* +.** +#P 66 18 +** +** +#P 78 15 +.** +*.* +..* +#P 79 26 +** +*.* +..* +..** +#P 75 31 +** +*.* +..* +..** +#P 66 24 +.* +** +#P 63 30 +.** +*.* +..* +#P 56 38 +*** +..* +.* +#P 31 45 +** +** +#P 37 43 +...*.* +.*...* +.* +*....* +.* +.*...* +...*.* +#P 45 44 +...*** +.*.*..* +.....** +. +*** +#P 54 45 +** +*..* +....* +....* +....* +*..* +** +#P 65 47 +** +** +#P 94 -25 +* +*** +...* +..** +#P 111 -29 +** +.* +.*.* +..** +#P 115 -34 +** +.* +.*.* +..** +#P 127 -49 +....** +**.*..* +**..** +#P 136 -51 +** +*.* +...* +*..* +...* +*.* +** +#P 147 -49 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P 156 -48 +..* +** +#P 161 -46 +** +** +#P 139 -44 +..* +** +.** +#P 125 -25 +**.** +**.** +..* +#P 126 -19 +** +** +#P 132 -21 +.** +** +..* +#P 122 -14 +** +** +#P 133 -16 +* +*.* +...** +...** +...** +*.* +* +#P 140 -18 +....** +..*...* +.*.....* +**.*...* +.*.....* +..*...* +....** +#P 156 -16 +** +** +#P 126 -4 +** +** +#P 137 -7 +* +*.* +...** +...** +...** +*.* +* +#P 144 -5 +....** +..*...* +.*.....* +**.*...* +.*.....* +..*...* +....** +#P 160 -2 +** +** +#P 130 1 +** +** +#P 136 2 +..* +** +.** +#P 129 6 +..* +**.** +**.** +#P 115 9 +..** +.*.* +.* +** +#P 119 14 +..** +.*.* +.* +** +#P 143 25 +.** +** +..* +#P 131 30 +**..** +**.*..* +....** +#P 140 28 +** +*.* +...* +*..* +...* +*.* +** +#P 151 26 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P 160 30 +** +..* +#P 165 28 +** +** diff --git a/programs/demos/life2/lif/ROT8.lif b/programs/demos/life2/lif/ROT8.lif new file mode 100644 index 000000000..b63c378c8 --- /dev/null +++ b/programs/demos/life2/lif/ROT8.lif @@ -0,0 +1,274 @@ +#Life 1.05 +#D A field of roteightors +#D Well known. +#N +#P -4 -25 +* +*** +...* +..** +#P -9 -21 +* +*** +...* +..* +..* +#P -14 -17 +* +*** +...* +..** +#P -19 -13 +* +*** +...* +..* +..* +#P -24 -9 +* +*** +...* +..** +#P -25 0 +..** +.*.* +.* +** +#P -21 5 +..** +.*.* +.* +** +#P -17 10 +..** +.*.* +.* +** +#P -13 15 +..** +.*.* +.* +** +#P -9 20 +..** +.*.* +.* +** +#P 0 20 +.* +.* +* +.*** +...* +#P 5 17 +** +* +.*** +...* +#P 10 12 +.* +.* +* +.*** +...* +#P 15 9 +** +* +.*** +...* +#P 20 4 +.* +.* +* +.*** +...* +#P 21 -4 +..** +..* +*.* +** +#P 17 -9 +..** +..* +*.* +** +#P 13 -14 +..** +..* +*.* +** +#P 9 -19 +..** +..* +*.* +** +#P 5 -24 +..** +..* +*.* +** +#P -20 -3 +*** +*..* +* +.* +#P -16 -9 +...* +....* +.*..* +..*** +. +. +. +. +. +..* +...* +*..* +.*** +#P -11 -11 +.*** +.*..* +.* +..* +. +. +. +. +. +*** +*..* +* +.* +#P -12 7 +*** +*..* +* +.* +#P -6 -17 +...* +....* +.*..* +..*** +. +. +. +. +. +..* +...* +*..* +.*** +#P -8 1 +...* +....* +.*..* +..*** +. +. +. +. +. +..* +...* +*..* +.*** +#P -1 -19 +.*** +.*..* +.* +..* +. +. +. +. +. +*** +*..* +* +.* +#P -3 -1 +.*** +.*..* +.* +..* +. +. +. +. +. +*** +*..* +* +.* +#P -4 17 +*** +*..* +* +.* +#P 3 -16 +...* +....* +.*..* +..*** +. +. +. +. +. +..* +...* +*..* +.*** +#P 1 2 +...* +....* +.*..* +..*** +. +. +. +. +. +..* +...* +*..* +.*** +#P 7 -9 +.*** +.*..* +.* +..* +. +. +. +. +. +*** +*..* +* +.* +#P 6 9 +*** +*..* +* +.* +#P 11 -6 +...* +....* +.*..* +..*** +. +. +. +. +. +..* +...* +*..* +.*** +#P 16 1 +*** +*..* +* +.* diff --git a/programs/demos/life2/lif/ROUND2.lif b/programs/demos/life2/lif/ROUND2.lif new file mode 100644 index 000000000..3395d9379 --- /dev/null +++ b/programs/demos/life2/lif/ROUND2.lif @@ -0,0 +1,117 @@ +#Life 1.05 +#D LWSS going round and round +#D +#D Turning reaction by Paul Callahan, July 1994 +#N +#P -23 -40 +** +** +#P -24 -29 +.***...*** +*..*...*..* +....*.* +....*.* +....*.* +*..*...*..* +.*.......* +#P -18 -19 +..* +**.** +. +**.** +*...* +.*** +#P -23 -13 +** +** +#P 39 -23 +** +** +#P 23 -24 +.*...* +*.....* +......* +.*...** +..*** +. +..*** +.*...** +......* +*.....* +.*...* +#P 14 -18 +.**.* +*.*.* +*....* +*.*.* +.**.* +#P 12 -23 +** +** +#P 22 39 +** +** +#P 14 23 +.*.......* +*..*...*..* +....*.* +....*.* +....*.* +*..*...*..* +.***...*** +#P 14 14 +.*** +*...* +**.** +. +**.** +..* +#P 22 12 +** +** +#P -40 22 +** +** +#P -29 14 +.*...* +*.....* +* +**...* +..*** +. +..*** +**...* +* +*.....* +.*...* +#P -19 14 +.*.** +.*.*.* +*....* +.*.*.* +.*.** +#P -13 22 +** +** +#P -7 -13 +.*..* +* +*...* +**** +#P 10 -7 +*** +*..* +* +* +.*.* +#P 3 10 +.**** +*...* +....* +*..* +#P -13 3 +*.* +...* +...* +*..* +.*** diff --git a/programs/demos/life2/lif/RPENTO.lif b/programs/demos/life2/lif/RPENTO.lif new file mode 100644 index 000000000..b392fb045 --- /dev/null +++ b/programs/demos/life2/lif/RPENTO.lif @@ -0,0 +1,13 @@ +#Life 1.05 +#D r-pentomino +#D A small, vigorous, common pattern. +#D +#D When the Game of Life was first +#D introduced around 1970, this was +#D proposed as the smallest pattern +#D for which the outcome was unknown. +#N +#P 3 3 +.** +** +.* diff --git a/programs/demos/life2/lif/SAWTOOT2.lif b/programs/demos/life2/lif/SAWTOOT2.lif new file mode 100644 index 000000000..9bdb15d06 --- /dev/null +++ b/programs/demos/life2/lif/SAWTOOT2.lif @@ -0,0 +1,574 @@ +#Life 1.05 +#D Parabolic sawtooth +#D Population is unbounded but does not tend to infinity; its graph as +#D a function of time is a sawtooth with a parabolic envelope. +#D The pattern works by repeating the following operation for each n>=0. +#D A 4-glider salvo is sent southeast toward a block A, arriving in +#D generation 20 n^2 + 144 n + a[n mod 3], where a[0]=a[2]=131 and +#D a[1]=91. Block A is pushed 1 unit southeast and another block, B, is +#D created upstream from A. Then, every 108 generations, 2 gliders hit B, +#D pulling it 3 units northwest. Eventually B gets deleted by a glider, at +#D generation 20 n^2 + 180 n + b[n mod 3], where b[0]=193, b[1]=223, +#D and b[2]=227. Then another 4-glider salvo is sent toward A. +#D The population is minimal around the time B is deleted. (The minimum +#D appears to be 1208 in generations 180 n^2 + 540 n + 210 and +#D 180 n^2 + 660n + 450.) The population is maximal around the time B is +#D created: there are about n/30 2-glider salvos on their way toward B +#D around generation t = 20 n^2 + 144 n, so the population is about +#D n/3 ~ sqrt(t/180) at this time. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 6/26/91 +#N +#P 46 41 +** +* +#P 47 32 +** +* +#P 46 14 +.** +.* +. +. +*** +** +...** +..*** +.*.* +.** +#P 56 14 +** +* +#P 54 3 +**...** +**...** +.***** +..*.* +. +..*** +#P 56 -11 +...* +..*** +.***** +**...** +#P 53 -25 +*.....* +**...** +. +..*** +..*** +...* +#P 51 -42 +..*** +..*** +.*...* +. +**...** +#P 53 -48 +** +* +#P 46 -4 +...** +...*.* +**.*.* +*.*.* +..* +..** +..*** +..*** +..*** +..** +..* +*.*.* +**.*.* +...*.* +...** +#P 35 -36 +** +* +#P 32 -30 +...* +.**.** +. +*.....* +. +**...** +#P 30 -13 +**...** +*.....* +. +.*...* +..*** +#P 33 -2 +** +* +#P 39 -13 +** +* +#P 27 -7 +** +* +#P 24 7 +** +* +#P 11 3 +..* +*.* +.** +#P 9 9 +.* +..* +*** +#P 12 -9 +...* +.**** +..*.** +*.*.*** +..*.** +.**** +...* +#P 6 -11 +** +.* +.*.* +..** +#P 44 -38 +** +* +#P 42 -48 +..*** +.*...* +*.....* +*.....* +#P 40 -63 +*.....* +**...** +. +..*** +..*** +...* +#P 42 -72 +** +* +#P 22 -72 +** +* +#P 19 -62 +..*** +.*...* +*.....* +*.....* +#P 20 -57 +.* +** +#P 17 -52 +..*** +..*** +.*...* +. +**...** +#P 19 -38 +** +* +#P 20 -26 +.....*..* +**..**...* +*........* +.....**** +#P 17 -29 +*.* +** +.* +#P 11 -29 +** +* +#P 9 -40 +**...** +*.....* +. +.*...* +..*** +#P 7 -57 +...* +.**.** +. +*.....* +. +**...** +#P 9 -63 +** +* +#P -2 -28 +....** +****....** +***.**..* +.....* +#P -6 -31 +.* +* +*** +#P -16 -40 +** +* +.*** +...* +#P -21 -51 +...* +..*** +..*** +. +**...** +*.....* +#P -19 -61 +**...** +. +.*...* +..*** +..*** +#P -16 -72 +** +* +#P -13 -51 +.* +..* +*** +#P -10 -37 +..** +..* +*.* +** +#P -23 -35 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P -29 -37 +** +.* +.*.* +..** +#P -25 -40 +** +* +.*** +...* +#P -30 -50 +*.....* +*.....* +.*...* +..*** +#P -32 -65 +...* +..*** +..*** +. +**...** +*.....* +#P -29 -72 +** +* +#P -29 -56 +.* +* +*** +#P -47 -65 +** +* +#P -50 -53 +.***** +*.***.* +.*...* +..*** +...* +#P -52 -45 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P -50 -31 +** +* +#P -44 -30 +....** +.*....**** +**..**.*** +....* +#P -58 -45 +** +* +#P -61 -38 +...* +..*** +..*** +. +**...** +*.....* +#P -63 -23 +*.....* +*.....* +.*...* +..*** +#P -60 -8 +**...** +**...** +.***** +..*.* +. +..*** +#P -58 2 +...* +..*.* +.*...* +..*** +**...** +#P -55 17 +** +* +#P -60 -29 +.* +..* +*** +#P -37 -21 +.* +.** +*.* +#P -40 -12 +..** +...* +. +*..* +.*..* +..*.* +...* +. +..** +..* +#P -21 -21 +.* +..* +*** +#P -29 -16 +* +*** +...* +..** +#P -27 -7 +*.....* +*.....* +.*...* +..*** +#P -25 5 +** +* +#P -43 12 +** +* +#P -31 10 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P -22 8 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P -11 6 +..** +..* +*.* +** +#P -11 2 +** +* +#P -7 -3 +* +.** +** +#P -6 -11 +..* +*.* +.** +#P -20 17 +** +* +#P -16 20 +** +.** +* +#P -8 18 +.** +*..* +* +* +*.** +..* +. +. +.** +.* +#P -45 31 +** +* +#P -35 29 +*.* +*...* +....* +.....* +....* +*...* +*.* +#P -23 31 +...** +.*..* +* +* +* +.*..* +...** +#P -11 33 +** +* +#P 2 32 +.** +.* +. +. +*** +** +...** +..*** +.*.* +.** +#P -54 44 +** +* +#P -46 41 +** +..* +...* +...* +...* +..* +** +#P -29 39 +* +*.* +...** +...** +...** +*.* +* +#P -20 41 +** +* +#P -35 44 +.* +..* +*** +#P -49 59 +** +* +#P -41 57 +** +..* +...* +...* +...* +..* +** +#P -24 59 +* +*.* +...** +...** +...** +*.* +* +#P -15 61 +** +* +#P -15 43 +*** +..* +.* +#P -15 50 +..** +.*.* +.* +** +#P -6 45 +** +*** +..**.* +..*..* +..**.* +*** +** +#P 8 43 +...* +..** +.** +*** +.** +..** +...* +#P 19 45 +** +* +#P -10 63 +** +* +#P -1 61 +** +*** +..**.* +..*..* +..**.* +*** +** +#P 13 63 +...* +..** +.** +*** +.** +..** +...* +#P 22 68 +** +*.* +..* +..** +#P 21 55 +..** +.*.* +*** +** +...** +..*** +. +. +..** +..* +#P 27 52 +....* +**..**.*** +*.....**** +....** +#P 43 56 +** +* +.*** +...* diff --git a/programs/demos/life2/lif/SAWTOOT3.lif b/programs/demos/life2/lif/SAWTOOT3.lif new file mode 100644 index 000000000..52fee98b9 --- /dev/null +++ b/programs/demos/life2/lif/SAWTOOT3.lif @@ -0,0 +1,621 @@ +#Life 1.05 +#D Orthogonal sawtooth with expansion factor 21 +#D Population is unbounded but does not tend to infinity. Its graph is +#D a sawtooth function with ever-increasing teeth. More specifically, +#D the population in generation t = 18*21^n + 222 (n>=0), is +#D 7t/60 + 1290, but the population in generation 6*21^n + 193 (n>=1) +#D is only 1212. +#D This uses a spark from a c/3 orthogonal spaceship ("turtle") to turn +#D a HWSS into a loaf, which is then pulled back by pairs of LWSSs. When +#D the loaf is pulled all the way back, another HWSS is fired toward the +#D c/3, starting the cycle again. The HWSS synthesis, using 2 gliders, +#D a Kok's galaxy, and a figure 8, is due to David Buckingham. +#D This was the first sawtooth built. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 4/10/91 +#N +#P -33 2 +*.......*** +**.**.*..** +.*....*** +.*...*.*..* +.*....*....* +.*....*....* +.*...*.*..* +.*....*** +**.**.*..** +*.......*** +#P 66 -25 +** +* +#P 55 -28 +** +*..* +....* +....* +....* +*..* +** +#P 42 -30 +...* +..**** +.**.* +***.*.* +.**.* +..**** +...* +#P 32 -32 +** +.* +.*.* +..** +#P 32 -25 +.** +*..* +* +* +*.** +..* +. +. +.** +.* +#P 41 -20 +..* +** +.** +#P 46 -16 +** +* +#P 69 -12 +** +* +#P 54 -14 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 44 -12 +** +*** +..**.* +..*..* +..**.* +*** +** +#P 35 -7 +..** +.*.* +.* +** +#P 35 -12 +** +* +#P 15 -23 +.** +*..* +...* +...* +**.* +.* +. +. +.** +.* +#P 9 -16 +* +.** +** +#P 12 -5 +** +*.* +..* +..** +#P -1 -10 +...* +.**** +..*.** +*.*.*** +..*.** +.**** +...* +#P -12 -12 +...** +.*..* +* +* +* +.*..* +...** +#P -20 -14 +** +.* +.*.* +..** +#P 15 -30 +..** +..* +*.* +** +#P 6 -28 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -12 -26 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P -17 -21 +..** +.*.* +.* +** +#P 9 -34 +** +* +#P 1 -37 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P -18 -39 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P -25 -41 +** +.* +.*.* +..** +#P -25 -20 +.* +* +*** +#P -30 -56 +** +* +#P -33 -49 +...* +..*** +..*** +. +**...** +*.....* +#P -35 -34 +*.....* +*.....* +.*...* +..*** +#P -30 -24 +** +* +.*** +...* +#P -32 -40 +.* +..* +*** +#P -40 -19 +.** +.* +. +. +*** +** +...** +..*** +.*.* +.** +#P -49 -57 +..** +..* +*.* +** +#P -58 -55 +** +*..* +....* +....* +....* +*..* +** +#P -75 -53 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P -81 -50 +** +* +#P -49 -50 +.** +.*.* +..*** +...** +** +*** +. +. +.** +.* +#P -56 -44 +.* +..* +*** +#P -86 -35 +** +* +#P -80 -37 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P -63 -35 +** +*..* +....* +....* +....* +*..* +** +#P -52 -32 +** +* +#P -82 -21 +** +* +#P -75 -24 +....** +....* +.** +*** +.** +....* +....** +#P -60 -26 +** +..* +...* +...* +...* +..* +** +#P -50 -28 +..** +..* +*.* +** +#P -58 -16 +.* +..* +*** +#P -62 -12 +** +* +#P -51 -21 +..** +..* +. +. +..*** +...** +** +*** +.*.* +..** +#P -85 -8 +** +* +#P -73 -10 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P -65 -8 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -53 -3 +** +*.* +..* +..** +#P -72 23 +** +* +#P -60 20 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P -51 18 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P -38 20 +** +* +#P -49 27 +** +* +#P -72 43 +** +* +#P -63 41 +* +** +.** +.*** +.** +** +* +#P -46 43 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P -40 37 +...** +..*.* +..* +.** +..*.** +..*.* +*.*..* +**..** +#P -33 32 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -16 30 +** +*.* +...* +*..* +...* +*.* +** +#P -7 28 +..** +..* +*.* +** +#P -23 18 +.** +.* +. +. +.* +**.* +...* +...* +*..* +.** +#P -22 33 +.* +..* +*** +#P -36 48 +** +* +#P -28 46 +** +..* +...* +...* +...* +..* +** +#P -11 48 +* +*.* +...** +...** +...** +*.* +* +#P -4 53 +** +*.* +..* +..** +#P -5 40 +..** +.*.* +*** +** +...** +..*** +. +. +..** +..* +#P -17 47 +*** +..* +.* +#P 5 46 +..** +.*.* +.* +** +#P 14 41 +** +*.* +...* +*..* +...* +*.* +** +#P 25 39 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P 39 41 +** +* +#P 5 33 +.** +*..* +...* +...* +**.* +.* +. +. +.** +.* +#P 12 24 +..** +.*.* +.* +** +#P 23 19 +* +*.* +...** +...** +...** +*.* +* +#P 30 21 +....** +..*...* +.*.....* +**.*...* +.*.....* +..*...* +....** +#P 44 26 +** +*.* +..* +..** +#P 22 28 +..* +** +.** +#P 51 19 +** +.* +.*.* +..** +#P 61 21 +...* +..**** +.**.**** +***.**...* +.**.**...* +..*****...* +...*...*** +#P 74 23 +** +*..* +....* +....* +....* +*..* +** +#P 85 26 +** +* +#P 47 31 +..* +..** +. +...* +..*.* +.*..* +*..* +. +...* +..** +#P 48 44 +..** +.*.* +.* +** +#P 54 39 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P 74 37 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P 82 39 +** +* +#P -53 5 +.**.**.* +**..**.** +........* +** +**.....** +.......** +* +**.**..** +.*.**.** +#P -39 11 +*** +*** +*** +...*** +...*** +...*** diff --git a/programs/demos/life2/lif/SAWTOOT4.lif b/programs/demos/life2/lif/SAWTOOT4.lif new file mode 100644 index 000000000..0b92793bc --- /dev/null +++ b/programs/demos/life2/lif/SAWTOOT4.lif @@ -0,0 +1,304 @@ +#Life 1.05 +#D Orthogonal sawtooth with expansion factor 11 +#D Population is unbounded but does not tend to infinity. Its graph is a +#D sawtooth function with ever-increasing teeth. More specifically, the +#D population in generation t = 36*11^n - 37 (n>=1), is 7(t+1)/30 + 746, but the +#D population in generation 12*11^n - 51 (n>=1) is only 635 if n is even, 633 if +#D n is odd. This uses a spark from a period 9, speed c/3 orthogonal spaceship, +#D found by David Bell, to turn a LWSS into a loaf, which is then pulled back by +#D pairs of LWSSs. When the loaf is pulled all the way back, it gets deleted and +#D the cycle begins again. (The deletion is caused by interaction with a LWSS +#D and with 3 gliders which would otherwise form a LWSS.) +#D +#D Try putting something in the path of the c/3, far away from the guns. When +#D the beam of LWSSs hits the resulting garbage, it is likely that a loaf will +#D eventually be formed and pulled back. No matter where the loaf starts, when +#D it reaches the guns it will be deleted by one of 3 different reactions. (The +#D block behind the c/3 is used for one of these; it's not needed for the +#D sawtooth pattern itself.) The beam of LWSSs will again be released and may +#D eventually form another loaf. The process may be repeated many times until +#D either the LWSS beam burns through the garbage or the reaction moves upstream +#D and consumes the guns. +#D +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 5/15/92 +#N +#P 20 5 +** +.* +.*.* +..** +#P 21 -11 +...............*...** +..............*....*** +................***...* +.*.........*...*.**.*.** +.**........***......*.* +..*.**.*.**..*....*..*** +..*...***...*........*.**.* +..*.....**..*....******....** +*.*....**..................** +..*.....**..*....******....** +..*...***...*........*.**.* +..*.**.*.**..*....*..*** +.**........***......*.* +.*.........*...*.**.*.** +................***...* +..............*....*** +...............*...** +#P 29 7 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P 39 9 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P 54 12 +.* +** +#P 31 16 +* +** +#P 26 19 +*** +* +.* +#P 51 25 +** +.* +#P 40 23 +** +.* +...** +...*** +...** +.* +** +#P 27 25 +..** +.* +* +* +* +.* +..** +#P 17 27 +* +** +#P 41 -24 +.* +** +#P 31 -27 +*.* +*...* +....* +.....* +....* +*...* +*.* +#P 15 -29 +...** +.*..* +* +* +* +.*..* +...** +#P 23 -25 +* +*.* +** +#P -1 -26 +....* +..*.* +** +** +** +..*.* +....* +#P -5 -22 +* +** +.* +#P -11 -24 +..** +.* +* +* +* +.* +..** +#P -21 -19 +..** +.*.* +.* +** +#P 2 -17 +* +.** +** +#P 18 -10 +** +* +#P 13 -2 +.** +**** +**.** +..** +#P 3 -5 +...* +....* +*...* +.**** +#P -27 -5 +...* +....* +*...* +.**** +#P -25 -18 +*.* +** +.* +#P 4 -30 +.* +** +#P -7 -33 +** +*..* +....* +....* +....* +*..* +** +#P -20 -35 +...* +..**** +.**.**** +***.**...* +.**.**...* +..*****...* +...*...*** +#P -30 -32 +** +* +#P -48 -32 +** +.* +#P -51 -27 +...* +.*...* +.***** +**...** +.***** +..*** +...* +#P -53 -8 +**...** +. +*.....* +. +.**.** +...* +#P -48 0 +** +* +.*** +...* +#P -47 -14 +*.* +.** +.* +#P -57 -2 +* +*** +...* +..** +#P -55 6 +..*** +.*...* +. +*.....* +**...** +#P -53 22 +**...** +. +*.....* +. +.**.** +...* +#P -50 32 +* +** +#P -44 -5 +.* +*.* +.* +#P -43 7 +.** +*.* +..* +#P -23 -13 +.**.........** +*..*.......*..* +***.........*** +...********* +..*..*****..* +..**..***..** +#P -31 9 +* +** +#P -23 6 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P -12 4 +...* +..*.* +**...* +.*...* +**...* +..*.* +...* +#P 1 2 +..** +..* +*.* +** +#P -3 14 +.** +*.* +..* +#P -28 22 +** +* +#P -23 20 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -5 22 +** +*** +..**.* +..*..* +..**.* +*** +** +#P 6 24 +.* +** diff --git a/programs/demos/life2/lif/SAWTOOT5.lif b/programs/demos/life2/lif/SAWTOOT5.lif new file mode 100644 index 000000000..62cd5247b --- /dev/null +++ b/programs/demos/life2/lif/SAWTOOT5.lif @@ -0,0 +1,935 @@ +#Life 1.05 +#D Orthogonal sawtooth with expansion factor 25 +#D Population is unbounded but does not tend to infinity. Its graph is a +#D sawtooth function with ever-increasing teeth. More specifically, the +#D population in generations t near 30 * 25^n is about 59t/225 if t is odd, +#D about 7t/10 if t is even but not == 46 (mod 60), and about 211t/900 if +#D t == 46 (mod 60); the population in generation 6 * 25^n - 1125 (n>=2) is +#D only 1846. (Even more specifically, the population in generation +#D t = 30 * 25^n - 525 (n>=1), is 59t/225 + 1951.) +#D +#D A shotgun produces a salvo of 4 eastward lightweight spaceships every 120 +#D generations. Some are deleted; the others eventually catch up to a pair of +#D c/3 spaceships and reflect off the backs of them, forming westward +#D middleweight spaceships. When a MWSS returns to the shotgun, it causes the +#D deletion of 5 salvos. (Notice the unusual eatering of a pi heptomino, by 2 +#D blocks, that's used in this deletion.) So the region between the shotgun and +#D the c/3s alternately becomes full and empty of spaceships. +#D +#D The c/3 spaceships were found by David Bell, who suggested this way of making +#D a sawtooth. +#D +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 8/26/92 +#N +#P 178 -48 +..* +.*.* +...** +..* +...** +..*** +. +.*..* +..*.* +....* +...* +.*.* +..* +..** +. +.*..* +.....* +..*..** +.**** +.**.* +..*.* +..*** +...** +**.* +* +* +*** +...** +*..** +.* +..** +.*** +#P 162 4 +.*** +..** +.* +*..** +...** +*** +* +* +**.* +...** +..*** +..*.* +.**.* +.**** +..*..** +.....* +.*..* +. +..** +..* +.*.* +...* +....* +..*.* +.*..* +. +..*** +...** +..* +...** +.*.* +..* +#P 173 -43 +.* +** +#P 160 -46 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P 148 -48 +* +** +.** +.*** +.** +** +* +#P 131 -51 +....* +..*.* +** +** +** +..*.* +....* +#P 127 -47 +.* +** +* +#P 121 -49 +..** +.* +* +* +* +.* +..** +#P 111 -46 +** +* +#P 132 -36 +.** +.* +. +. +**.* +.*.* +..* +.** +.** +.** +#P 156 20 +.* +** +#P 142 18 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P 131 16 +** +*..* +....* +....* +....* +*..* +** +#P 122 14 +** +.* +.*.* +..** +#P 133 25 +** +.* +#P 153 34 +** +.* +#P 142 32 +** +*.* +...* +*..* +...* +*.* +** +#P 131 34 +.* +*.* +**.* +**.*.* +**.* +*.* +.* +#P 118 26 +...* +..** +. +...* +..*.* +.*..* +*..* +. +...* +..** +#P 119 39 +..** +.*.* +.* +** +#P 117 50 +** +.* +#P 108 47 +* +*.* +...** +...** +...** +*.* +* +#P 90 49 +....** +....* +.** +*** +.** +....* +....** +#P 79 52 +...* +..**** +.**.*.* +***.*..* +.**.*.* +..**** +...* +#P 78 48 +* +** +#P 75 34 +.** +*..* +...* +...* +**.* +.* +. +. +..* +.** +#P 64 50 +** +*..* +....* +....* +....* +*..* +** +#P 55 52 +** +* +#P 88 31 +.....**** +**.......* +*...**...* +.....*..* +#P 122 -11 +* +*.* +** +#P 116 -24 +...* +....* +*...* +.**** +#P 106 8 +.**** +*...* +....* +...* +#P 97 6 +.** +**** +**.** +..** +#P 99 -2 +.* +** +*.* +#P 89 -52 +.* +** +#P 78 -54 +* +** +.** +.*** +.** +** +* +#P 73 -52 +.* +** +#P 67 -56 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P 50 -59 +** +.* +...** +...*** +...** +.* +** +#P 33 -57 +....* +..*.* +** +** +** +..*.* +....* +#P 27 -54 +* +** +#P 50 -50 +** +* +#P 48 -44 +.** +.* +. +. +*** +** +...** +..*** +.*.* +.** +#P 44 -35 +** +.* +#P 37 -35 +** +* +#P 68 -22 +...* +....* +*...* +.**** +#P 56 -24 +...* +....* +*...* +.**** +#P 52 -5 +** +.* +.*.* +..** +#P 59 41 +** +.* +#P 48 39 +...* +..** +.** +*** +.** +..** +...* +#P 30 41 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 25 43 +* +** +#P 21 29 +.** +.* +. +.*..* +*..* +*.* +.* +. +.** +.* +#P 64 26 +.* +** +#P 53 23 +...* +..** +.** +*** +.** +..** +...* +#P 35 21 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 30 24 +** +* +#P 44 27 +*.* +** +.* +#P 24 24 +.* +** +*.* +#P 46 8 +.**** +*...* +....* +...* +#P 37 6 +.** +**** +**.** +..** +#P 25 15 +..*....* +**.*..*.** +**......** +***....*** +#P 24 -11 +.*......* +**.*..*.** +.*.*..*.* +..*....* +#P 22 -41 +.* +*** +. +. +. +. +*** +.* +#P 8 -22 +...* +....* +*...* +.**** +#P -4 -24 +...* +....* +*...* +.**** +#P 2 -5 +..* +*.* +.** +#P 3 22 +.* +.** +. +.* +*.* +*..* +.*..* +. +.* +.** +#P 2 35 +.* +** +#P -12 33 +....* +..*.* +** +** +** +..*.* +....* +#P -16 33 +.* +** +* +#P -22 31 +..** +.* +* +* +* +.* +..** +#P -32 33 +** +* +#P -2 20 +.* +.** +*.* +#P -3 13 +..** +..* +*.* +** +#P -12 15 +..** +.*.* +* +*..* +* +.*.* +..** +#P -26 17 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -35 15 +** +.* +.*.* +..** +#P -17 -1 +......* +.....* +.*..*....* +**.*..*.** +....** +#P 4 -50 +.* +** +#P -5 -53 +* +*.* +...** +...** +...** +*.* +* +#P -23 -55 +....** +....* +.** +*** +.** +....* +....** +#P -39 -52 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -42 -48 +* +** +#P -49 -50 +...* +..** +.** +*** +.** +..** +...* +#P -58 -48 +* +** +#P -28 -35 +..* +*.* +.** +#P -37 -32 +......** +......*** +*...*..*.* +**..**..** +....** +#P -35 -2 +.**.........** +*..*.*...*.*..* +***.........*** +...**.....** +..*..*****..* +..**.......** +#P -23 6 +.** +**** +**.** +..** +#P -30 26 +** +*.* +..* +..** +#P -38 21 +*.* +*...* +....* +.....* +....* +*...* +*.* +#P -54 23 +...** +.*..* +* +* +* +.*..* +...** +#P -62 28 +..** +.*.* +.* +** +#P -65 21 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P -82 19 +** +*.* +...* +*..* +...* +*.* +** +#P -91 21 +** +* +#P -46 23 +** +*.* +* +#P -72 19 +.** +*.* +..* +#P -44 -1 +** +.* +#P -55 -3 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -73 -1 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P -78 4 +..** +.*.* +.* +** +#P -75 -5 +..** +..* +*.* +** +#P -82 -3 +* +*.* +...** +...** +...** +*.* +* +#P -100 -1 +....** +....* +.** +*** +.** +....* +....** +#P -116 -4 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -119 -3 +** +* +#P -126 -6 +...* +..** +.** +*** +.** +..** +...* +#P -135 -1 +..** +.*.* +.* +** +#P -52 -22 +...* +....* +*...* +.**** +#P -64 -24 +...* +....* +*...* +.**** +#P -59 -35 +** +.* +#P -73 -37 +...*.* +.*...* +.* +* +.* +.*...* +...*.* +#P -84 -35 +** +*..* +....* +....* +....* +*..* +** +#P -93 -30 +..** +.*.* +.* +** +#P -81 -39 +.* +** +#P -62 -48 +.* +** +#P -73 -51 +** +*.* +...* +*..* +...* +*.* +** +#P -84 -53 +.* +*.* +**.* +**.*.* +**.* +*.* +.* +#P -96 -50 +** +* +#P -97 -15 +....** +**..**..** +*...*..*.* +......*** +......** +#P -117 -50 +** +.* +#P -126 -53 +..* +.*.* +*...** +*...** +*...** +.*.* +..* +#P -142 -51 +** +*.* +.*** +..*** +.*** +*.* +** +#P -151 -48 +* +** +#P -112 -22 +...* +....* +*...* +.**** +#P -124 -24 +...* +....* +*...* +.**** +#P -122 -30 +** +*.* +..* +..** +#P -131 -35 +** +.* +...** +...*** +...** +.* +** +#P -148 -37 +....* +..*.* +** +** +** +..*.* +....* +#P -154 -39 +** +.* +.*.* +..** +#P -151 -30 +** +.* +#P -164 -33 +....** +....* +.** +*** +.** +....* +....** +#P -174 -31 +* +*.* +...** +...** +...** +*.* +* +#P -185 -33 +** +.* +.*.* +..** +#P -135 -18 +..** +.*** +*.*..*...* +**..**..** +....** +#P -153 -17 +..**.......** +..*.........* +...********* +***..*****..*** +*..*..***..*..* +.**.........** +#P -135 -7 +** +.* +#P -149 -9 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -160 -7 +** +*.* +...* +*..* +...* +*.* +** +#P -169 -5 +* +** +#P -157 -10 +.** +** +..* +#P -185 -26 +* +*** +...* +..** +#P -183 -17 +**...** +*.....* +. +.*...* +..*** +#P -181 -6 +...* +.**.** +. +*.....* +. +**...** +#P -178 8 +.* +** +#P -175 -14 +** +.** +* diff --git a/programs/demos/life2/lif/SAWTOOT6.lif b/programs/demos/life2/lif/SAWTOOT6.lif new file mode 100644 index 000000000..0faf71777 --- /dev/null +++ b/programs/demos/life2/lif/SAWTOOT6.lif @@ -0,0 +1,260 @@ +#Life 1.05 +#D Diagonal sawtooth with expansion factor 4 +#D Population is unbounded but does not tend to infinity. Its graph +#D is a sawtooth function with ever-increasing teeth. +#D +#D A p960 gun sends gliders southwest. Some are deleted; the others +#D reflect off the back of a Cordership. Each returning glider +#D deletes 2 outgoing ones. +#D +#D Note the use of an in-line inverter found by David Bell. +#D This was built by David Bell 8/29/92 +#D (header written by Dean Hickerson) +#N +#P 20 -7 +....*.*..*.* +**.*..*..*..*.** +....*.*..*.* +#P 50 -3 +..*** +.*...* +*.....* +#P 49 1 +* +* +#P 57 1 +* +* +#P 50 4 +*.....* +.*...* +..*** +#P 48 -35 +**..** +**.*..* +....** +#P 57 -37 +** +*.* +...* +*..* +...* +*.* +** +#P 68 -35 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P 77 -34 +..* +** +#P 82 -32 +** +** +#P 60 -30 +..* +** +.** +#P 53 -22 +*.* +** +.* +#P 47 -28 +** +*.* +* +#P 33 -15 +**..** +**.*..* +....** +#P 42 -17 +** +*.* +...* +*..* +...* +*.* +** +#P 49 -12 +** +#P 53 -15 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P 62 -14 +..* +** +#P 67 -12 +** +** +#P 45 -10 +..* +** +.** +#P -67 111 +......* +. +.*.** +.*.*......* +*....**...* +.*........* +.*.......* +. +.....* +#P -55 118 +..*** +...**.** +...**.* +...*.* +...*.* +....** +......* +...*.* +..* +. +. +....*...* +*...* +......* +.....** +. +..**.** +....* +#P -41 137 +......* +. +.*.** +.*.*......* +*....**...* +.*........* +.*.......* +. +.....* +#P -28 138 +..*** +..*.* +**..* +*** +*** +#P -55 97 +.....* +***.*.**** +...**.* +.**....**.* +#P -45 101 +..* +**.*.** +..**.* +....* +#P -43 107 +.....* +..***.** +**.*** +....* +. +...* +...* +...* +.*.* +..* +#P -42 120 +...* +...** +....* +.*.* +*..* +*.* +*.* +.* +#P -35 76 +.** +..** +..* +..** +.** +. +..* +*** +...*.* +.*...** +.....* +. +.*** +#P -22 95 +...* +..*** +. +*...*....*.* +*....**.***** +*..*.*..*...* +.....* +#P -9 102 +.** +..** +..* +..** +.** +. +..* +*** +...*.* +.*...** +.....* +. +.*** +#P -38 74 +** +** +#P -46 82 +** +** +#P -54 90 +** +** +#P -62 98 +** +** +#P 0 120 +** +** +#P -8 128 +** +** +#P -16 136 +** +** +#P -84 -144 +..* +.** +*** +.** +..* +#P -75 -144 +* +** +*** +** +* +#P -73 -151 +**...** +**...** +.***** +..*.* +. +..*** +#P -71 -160 +** +*..* +. +....* +. +..** +.* diff --git a/programs/demos/life2/lif/SAWTOOT7.lif b/programs/demos/life2/lif/SAWTOOT7.lif new file mode 100644 index 000000000..ecae86fc4 --- /dev/null +++ b/programs/demos/life2/lif/SAWTOOT7.lif @@ -0,0 +1,681 @@ +#Life 1.05 +#D Sawtooth with external timing +#D A p8 blinker puffer (found by Bob Wainwright) moves west. A glider +#D bounces between a fixed reflector (in gens 480*2^n-701 (n>=1)) +#D and a southeastward Cordership (in gens 720*2^n-661 (n>=1)). +#D Each bounce from the fixed reflector releases a salvo (formed in +#D gens 480*2^n-310 (n>=1)) consisting of a MWSS and 2 LWSSs aimed +#D toward the line of blinkers. The salvo hits the nearest blinker +#D in gen 2400*2^n-880n-3115 (n>=1), causing the blinker line to +#D decay at 2c/3. (Another salvo, present in the initial pattern, +#D hits in gen 5.) When the decay catches up to the puffer, a new +#D line of blinkers starts to form (in gen 3840*2^n-880n-3760 (n>=0)). +#D +#D When the salvo hits the blinker line, the population is large, +#D about 180*2^n in gens around 2400*2^n. (Specifically, in gen +#D 2400*2^n-880n-3115 there are 60*2^n-29 blinkers.) When the +#D decay catches up with the puffer, the population is bounded, about +#D 1400 in gens around 3840*2^n-880n. +#D (This header was written by Dean Hickerson, 4/4/93) +#D David I. Bell, dbell@pdact.pd.necisa.oz.au, 27/10/92 +#N +#P -72 -85 +.** +**.*** +.***** +..*** +. +. +.***** +.* +.* +..* +....* +#P -70 -72 +.** +**.**** +.****** +..**** +#P -64 -78 +* +* +* +#P -59 -81 +..*** +.***** +**.*** +.** +#P -45 -83 +..** +.**** +**.** +.** +#P 34 70 +.***** +.**.* +..*** +..** +..* +.*.* +.** +*.*** +.*...* +*...* +....*** +..** +..**.** +....* +#P 17 91 +.......*.* +**...**.* +*****.**...** +*.**.*.*...** +.**....*.**..* +........*.*.* +..........*.* +#P 8 94 +......* +.....* +.****.* +.**.*** +..*** +..** +..* +.*.* +.** +*.*** +.*...* +*...* +....*** +..** +..**.** +....* +#P 18 83 +*** +.*..* +.....* +..*.* +#P 7 84 +...*** +.****.* +****..* +.* +#P 4 81 +..* +**.* +**..* +.** +#P -6 83 +.*.* +.*..* +*...** +* +. +*..*** +** +..*** +..*** +#P -4 95 +* +.* +.* +.** +.* +*** +.** +#P -6 94 +.* +* +#P -9 97 +.* +* +. +.** +#P -6 105 +*..* +.** +#P -28 73 +..* +.*.*.** +...*..**..* +......*..*** +*..*..****.** +.*.*.....*** +..*.......* +#P -8 53 +....* +.*...* +*.....* +.**.** +. +.* +.**** +..*.* +....* +...*** +..**.** +...*** +....* +#P -2 47 +..* +.*.*.** +...*..**..* +......*..*** +*..*..****.** +.*.*.....*** +..*.......* +#P -29 81 +** +** +#P -21 89 +** +** +#P -13 97 +** +** +#P 17 43 +** +** +#P 25 51 +** +** +#P 33 59 +** +** +#P 12 70 +*** +* +.* +#P -66 36 +.* +** +#P -69 25 +**.*.** +*.....* +.*...* +..*** +#P -66 20 +.* +** +#P -71 14 +.***** +*.***.* +.*...* +..*** +...* +#P -66 2 +...* +.*** +* +** +#P -75 2 +..** +...* +*** +* +#P -73 -11 +...* +..*.* +.*...* +..*** +**...** +#P -68 -14 +.* +** +#P -71 -21 +...* +..*** +.***** +**...** +#P -68 -30 +** +** +#P -53 -5 +..** +...* +*** +* +#P -51 -14 +**...** +*.....* +. +.*...* +..*** +#P -53 -31 +...* +.**.** +. +*.....* +. +**.*.** +#P -55 -37 +* +*** +...* +..** +#P -28 -14 +..** +.*.* +.* +** +#P -21 -19 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P -13 -18 +.**.* +.*...* +*....* +**** +.* +#P -5 -17 +* +** +.** +.*** +.** +** +* +#P -4 -24 +.* +.** +*.* +#P 9 -20 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P 19 -22 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P 34 -20 +** +** +#P 11 -24 +*** +* +.* +#P 2 -31 +.....* +****.* +*.*.** +..* +.** +#P -8 -35 +..** +..** +. +. +..*** +...** +** +*** +.*.* +..** +#P -75 -45 +** +** +#P -70 -47 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -59 -47 +..** +*..* +*...* +*..** +#P -61 -42 +*** +#P -52 -45 +** +*** +..**.* +..*..* +..**.* +*** +** +#P -43 -42 +....** +..*...* +.*.....* +**.*...* +.*.....* +..*...* +....** +#P -26 -44 +....** +....** +.** +*** +.** +....** +....** +#P -18 -42 +.*...** +*...*.* +.***** +..*** +#P -34 -45 +.* +** +*.* +#P -50 -53 +.** +*.* +..* +#P -43 -53 +*.* +. +***** +.*** +..** +#P -36 -60 +.** +.** +.** +.* +*.* +*.** +. +. +.** +.** +#P -19 -54 +*** +* +.* +#P -35 -68 +.** +*.* +..* +#P -6 -49 +** +** +#P -1 -51 +...* +..*.* +**...* +**...* +**...* +..*.* +...* +#P 7 -53 +.** +** +..* +#P 16 -53 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P 23 -51 +.**.*** +*..**** +.** +#P -11 -64 +.** +*..* +...* +...* +**.* +** +. +. +.** +.** +#P -22 -70 +.*.* +....* +*....*..** +**.*..*.** +....** +#P 5 -61 +*.* +** +.* +#P 2 -58 +** +** +#P -8 -68 +.** +** +..* +#P -3 -71 +** +** +#P 4 -73 +....** +....** +.** +*** +.** +....** +....** +#P 12 -68 +** +*..** +.**** +..* +#P 17 -71 +* +* +* +#P 22 -71 +* +*.* +...** +...** +...** +*.* +* +#P 31 -68 +** +** +#P 39 -67 +** +*.....* +.....* +.*...* +...* +#P 48 -69 +** +*** +..**.* +..*..* +..**.* +*** +** +#P 58 -71 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 73 -69 +** +** +#P 50 -73 +.** +** +..* +#P 58 -75 +** +** +#P 56 -84 +**...** +. +.*...* +..*** +..*** +#P 54 -105 +...* +..*** +.*...* +...* +*.....* +*.....* +.*...* +..*** +#P 56 -109 +** +** +#P 55 -90 +* +*.* +** +#P 47 -83 +.* +* +*** +#P 43 -81 +.* +** +*.* +#P 45 -87 +.* +..* +*** +#P 30 -82 +.** +**.** +.**** +..** +#P 15 -83 +..** +.**** +**.** +.** +#P -15 -83 +..** +.**** +**.** +.** +#P -20 -78 +..* +** +.** +#P 45 -100 +.*...** +*...*.* +.***** +..*** +#P 37 -102 +....** +....** +.** +*** +.** +....** +....** +#P 27 -100 +* +*.* +...** +...** +...** +*.* +* +#P 16 -95 +..** +.*.* +.* +** +#P 37 -94 +..* +*.* +.** +#P 21 -91 +.**....*....** +*..*.*...*.*..* +***.........*** +...**.....** +..*..*****..* +..**.......** +#P 19 -104 +..** +..* +*.* +** +#P 11 -102 +* +**** +.**** +.*..* +.**** +**** +* +#P 2 -101 +....** +.....** +**.*.** +**.*.* +..**.* +#P -5 -104 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P -15 -107 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P -32 -105 +** +*.* +...* +*..* +...* +*.* +** +#P -41 -103 +....** +**.*..* +**..** +#P -44 -91 +** +.* +.*.* +..** +#P -14 -93 +.** +**.** +. +..* +...*.** +....* +#P -5 -93 +..* +** +.** +#P -22 -101 +..* +*.* +.** diff --git a/programs/demos/life2/lif/SAWTOOTH.lif b/programs/demos/life2/lif/SAWTOOTH.lif new file mode 100644 index 000000000..e343e0ce8 --- /dev/null +++ b/programs/demos/life2/lif/SAWTOOTH.lif @@ -0,0 +1,269 @@ +#Life 1.05 +#D Orthogonal sawtooth with expansion factor 6 +#D Population is unbounded but does not tend to infinity. Its graph is +#D a sawtooth function with ever-increasing teeth. More specifically, +#D the population in generations t near 28*6^n is about t/5 if +#D t is odd and about 3t/20 if t is even, but the population in +#D generation 14*6^n - 84 (n>=2) is only 562. (Even more +#D specifically, the population in generation t = 28*6^n + 12 (n>=1), +#D is 3t/20 + 555 and it drops to t/5 + 599 in the next generation.) +#D +#D This uses a spark from a period 4, speed c/4 orthogonal spaceship, +#D found by Tim Coe, to turn one LWSS into a loaf, which is then pulled +#D back by subsequent pairs of LWSSs. When the loaf is pulled all the +#D way back, it gets deleted and the cycle begins again. +#D +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 8/14/92 +#D Tim Coe, coe@vitsemi.com 8/11/95 +#N +#P 3 -5 +..*.* +**...** +....*.* +....* +.......* +..*...** +.* +**.** +**.* +.*.** +.* +..*..* +.**..* +...** +. +. +....*** +.*.* +..*.*..* +....*...* +.......* +.....** +...*** +...*** +#P 55 -29 +.* +** +#P 41 -32 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P 30 -34 +** +*.* +...* +*..* +...* +*.* +** +#P 12 -37 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 8 -35 +** +* +#P 2 -35 +...* +..** +.** +*** +.** +..** +...* +#P -7 -37 +** +.* +.*.* +..** +#P -2 -27 +** +*.* +..* +..** +#P -14 -32 +....* +..*.* +** +** +** +..*.* +....* +#P -18 -28 +* +** +.* +#P -24 -30 +..** +.* +* +* +* +.* +..** +#P -34 -27 +* +** +#P -5 -9 +** +*.* +..* +..** +#P -14 -14 +..** +.*.* +* +*..* +* +.*.* +..** +#P -28 -16 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -37 -14 +** +* +#P -23 -6 +** +.* +#P -32 -8 +* +*.* +...** +...** +...** +*.* +* +#P -49 -6 +** +..* +...* +...* +...* +..* +** +#P -57 -8 +** +.* +.*.* +..** +#P -54 1 +** +* +#P -57 10 +**.*.** +*.....* +.*...* +..*** +#P -55 21 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P -52 35 +.* +** +#P -50 13 +.* +.** +*.* +#P -41 23 +..** +.*.* +.* +** +#P -35 18 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -30 27 +** +* +#P -21 25 +...* +..** +.** +*** +.** +..** +...* +#P -14 27 +** +** +** +#P -11 27 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 5 30 +....** +....* +.** +*** +.** +....* +....** +#P 23 28 +* +*.* +...** +...** +...** +*.* +* +#P 32 30 +** +.* +#P -26 17 +.* +** +*.* +#P -15 16 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P -9 14 +..** +..* +*.* +** +#P -3 8 +..** +.*.* +.* +** +#P -25 8 +..**..***..** +..*..*****..* +...********* +***.........*** +*..*.......*..* +.**.........** diff --git a/programs/demos/life2/lif/SBMEM.lif b/programs/demos/life2/lif/SBMEM.lif new file mode 100644 index 000000000..436146833 --- /dev/null +++ b/programs/demos/life2/lif/SBMEM.lif @@ -0,0 +1,1044 @@ +#Life 1.05 +#D Sliding Block Memory +#D A block can be shifted back and +#D forth at will. +#D by Dean Hickerson +#N +#P 45 53 +** +** +#P 49 41 +** +** +#P 56 39 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P 64 37 +.** +.* +* +** +#P 68 38 +* +* +* +. +*** +#P 75 37 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P 81 42 +** +*.* +..* +..** +#P 85 39 +** +* +.*** +...* +#P 80 27 +..*** +..*** +.*...* +. +**...** +#P 82 16 +**...** +**...** +. +..*** +..*** +...* +#P 80 7 +* +*** +...* +..** +#P 73 6 +..** +..* +*.* +** +#P 59 8 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P 54 13 +..** +.*.* +.* +** +#P 69 13 +..* +** +.** +#P 78 19 +*** +* +.* +#P 72 25 +** +.** +* +#P 62 21 +*.* +** +.* +#P 57 31 +** +*.* +* +#P 48 23 +** +.* +.*.* +..** +#P 47 36 +*.* +** +.* +#P 40 22 +*.* +** +.* +#P 38 15 +..** +...* +*** +* +#P 40 4 +..*** +.**.** +.**.** +.***** +**...** +#P 42 -8 +**...** +*.*.*.* +.***** +..*** +...* +#P 40 -17 +* +*** +...* +..** +#P 39 -5 +** +*.* +* +#P 31 -12 +*** +* +.* +#P 24 -20 +** +*.* +* +#P 40 -28 +** +*.* +..* +..** +#P 27 -33 +...* +..*.* +**...* +**...* +**...* +..*.* +...* +#P 18 -35 +* +**** +.**** +.*..* +.**** +**** +* +#P 8 -30 +..** +.*.* +.* +** +#P 19 -26 +*.* +** +.* +#P 25 1 +.* +.** +*.* +#P 22 -3 +..** +..* +*.* +** +#P 13 -1 +** +*** +..**.* +..*..* +..**.* +*** +** +#P 3 -3 +** +.* +.*.* +..** +#P -5 -13 +..** +...* +*** +* +#P -3 -19 +**...** +..*** +.*...* +..*.* +...* +#P 2 -32 +...* +.*** +* +** +#P -1 -34 +** +** +#P 1 -39 +* +* +.* +#P -3 -48 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P -5 -56 +.***** +*.***.* +.*...* +..*** +...* +#P 0 -68 +...* +.*** +* +** +#P -3 -72 +..** +..* +*.* +** +#P -9 -70 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P -16 -69 +*** +. +* +* +* +#P -20 -67 +** +* +.* +.** +#P -28 -72 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P -35 -69 +** +** +#P -21 -62 +.* +** +*.* +#P -7 -46 +* +*.* +** +#P -27 -60 +* +*.* +** +#P -25 -51 +*.* +.** +.* +#P -36 -60 +* +*** +...* +..** +#P -34 -54 +..*** +..*** +.*...* +*.....* +.*...* +..*** +#P -29 -41 +** +* +.*** +...* +#P -17 -44 +* +.** +** +#P -15 -39 +.* +* +*** +#P -19 -35 +..** +...* +*** +* +#P -4 -28 +.* +* +*** +#P -11 -29 +..** +..* +*.* +** +#P -19 -27 +* +**** +.**** +.*..* +.**** +**** +* +#P -30 -29 +** +.* +.*.* +..** +#P -43 -48 +** +*.* +..* +..** +#P -52 -53 +..** +.*.* +* +*..* +* +.*.* +..** +#P -62 -55 +** +.* +.*.* +..** +#P -56 -47 +.* +..* +*** +#P -49 -39 +..* +*.* +.** +#P -44 -34 +..** +....* +....* +*...* +* +.*** +#P -37 -38 +..** +..* +*.* +** +#P -71 -54 +** +** +#P -74 -43 +**...** +. +.*...* +..*** +..*** +#P -72 -36 +...* +..*** +.*...* +...* +*.....* +*.....* +.*...* +..*** +#P -74 -22 +..** +...* +*** +* +#P -63 -38 +..* +*.* +.** +#P -70 -19 +..** +.*.* +.* +** +#P -65 -22 +** +#P -61 -24 +* +** +.** +.*** +.** +** +* +#P -51 -24 +.* +.** +*.* +#P -44 -22 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P -36 -20 +** +** +#P -26 -17 +.* +..* +*** +#P -19 -15 +*.* +.** +.* +#P -84 -9 +** +.* +.*.* +..** +#P -77 -7 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P -69 -6 +.* +**** +*....* +.*...* +.**.* +#P -61 -9 +* +** +.** +.*** +.** +** +* +#P -50 -6 +** +** +#P -60 2 +*.* +.** +.* +#P -72 8 +* +*.* +** +#P -88 -6 +* +*** +...* +..** +#P -86 3 +**...** +**...** +. +..*** +..*** +...* +#P -88 18 +..*** +.*...* +*.....* +*.....* +...* +.*...* +..*** +...* +#P -85 28 +** +** +#P -81 14 +* +.** +** +#P -65 15 +*** +..* +.* +#P -76 27 +..** +.*.* +.* +** +#P -73 22 +.** +..* +*.* +#P -66 22 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -57 20 +..** +..* +*.* +** +#P -51 10 +** +*.* +..* +..** +#P -50 0 +*** +..* +.* +#P -41 -3 +...* +.*** +* +** +#P -46 4 +..*** +. +..*.* +.***** +**...** +**...** +#P -45 12 +.** +**.** +.*..* +.* +....* +..** +#P -48 20 +**...** +.***** +..*** +...* +#P -45 31 +** +** +#P -37 21 +* +.** +** +#P -30 -10 +* +*** +...* +..** +#P -28 -1 +...* +..*** +.***** +*.*.*.* +**...** +#P -30 9 +..** +...* +*** +* +#P -14 2 +..** +.*..* +*....* +.**** +. +. +..** +..** +#P -3 11 +.** +*.* +..* +#P 4 13 +.* +..* +*** +#P 11 15 +*.* +.** +.* +#P 21 15 +** +** +#P 25 28 +*.* +.** +.* +#P 19 30 +* +.** +** +#P 9 36 +..****** +.*......* +*........* +.*......* +..****** +#P -1 34 +** +.** +* +#P -14 41 +** +** +#P -29 39 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -32 39 +** +** +** +#P -39 37 +...* +..** +.** +*** +.** +..** +...* +#P -48 40 +** +** +#P -68 53 +..** +.*.* +.* +** +#P -61 48 +....** +....** +.** +*** +.** +....** +....** +#P -53 49 +..* +** +*..** +.***** +..* +#P -46 46 +** +..* +...* +...* +...* +..* +** +#P -36 51 +** +*.* +..* +..** +#P -43 57 +* +* +#P -49 55 +..* +** +.** +#P -37 64 +..* +*.* +.** +#P -31 64 +** +.** +* +#P -39 71 +.* +.** +*.* +#P -71 64 +* +*** +...* +..** +#P -75 74 +** +.* +.*.* +..** +#P -68 76 +....* +.**** +**** +*..* +**** +.**** +....* +#P -61 74 +.*..* +.* +*...** +.**.*.* +. +.....** +#P -50 74 +..* +.*.* +*...** +*...** +*...** +.*.* +..* +#P -40 76 +....* +.**** +**** +*..* +**** +.**** +....* +#P -29 74 +..** +..* +*.* +** +#P -20 79 +* +*** +...* +..* +..* +#P -16 83 +.* +..* +* +#P -18 88 +.* +.** +*.* +#P -30 85 +...* +.*** +* +** +#P -35 95 +..*** +.*...* +*.....* +*.....* +...* +.*...* +..*** +...* +#P -37 104 +..** +...* +*** +* +#P -29 105 +*** +* +.* +#P -36 115 +** +** +#P -29 113 +....* +.**** +**** +*..* +**** +.**** +....* +#P -23 107 +..* +** +.*.* +...** +.....* +..* +.*...** +..**.*.* +. +......** +#P -11 111 +..* +.*.* +*...** +*...** +*...** +.*.* +..* +#P -4 116 +** +*.* +..* +..** +#P -25 96 +** +.** +* +#P -9 91 +*** +* +.* +#P -2 80 +** +** +#P -4 90 +**.*.** +. +*.....* +. +.**.** +...* +#P -6 98 +...* +..*.* +.*...* +.***** +**...** +.***** +..*** +...* +#P -1 112 +** +* +.*** +...* +#P -3 73 +.* +.** +*.* +#P 2 59 +* +*** +...* +..** +#P 13 71 +*** +* +.* +#P 21 78 +** +*.* +* +#P 15 90 +** +** +#P 19 88 +....* +..**** +.*.*.** +*..*.*** +.*.*.** +..**** +....* +#P 37 86 +...** +.*..* +* +* +* +.*..* +...** +#P 49 89 +** +** +#P 28 86 +*** +* +.* +#P 27 43 +.* +.** +*.* +#P 70 -8 +*.* +** +.* +#P 104 5 +*** +* +.* +#P 148 37 +...* +.*** +* +** +#P 131 56 +** +.** +* +#P 127 43 +** +** +#P 124 47 +...* +..*** +.*...* +...* +*.....* +*.....* +.*...* +..*** +#P 126 64 +...* +..*** +..*** +. +**...** +**...** +#P 128 77 +** +** +#P 100 -38 +*.* +** +.* +#P 115 -53 +*.* +** +.* +#P 116 -41 +..** +...* +*** +* +#P 118 -52 +...* +..*** +..*** +. +**...** +**...** +#P 123 -60 +...* +.*** +* +** +#P 124 -69 +** +** +#P 113 -62 +..* +*.* +.** +#P 105 -72 +.......* +......*.* +....**...* +..**.*...* +.***.*...* +*..**.*.* +.**....* +#P 98 -70 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P 90 -72 +** +.* +.*.* +..** +#P 87 -68 +* +*** +...* +..** +#P 89 -59 +**...** +*.....* +. +.*...* +..*** +#P 87 -44 +...* +..*** +.***** +**...** +.***** +.*...* +..*.* +...* +#P 90 -34 +** +** +#P 93 -48 +..* +*.* +.** +#P 100 -52 +** +.** +* +#P 106 -35 +** +* +.*** +...* diff --git a/programs/demos/life2/lif/SLOPUF.lif b/programs/demos/life2/lif/SLOPUF.lif new file mode 100644 index 000000000..99cfb27d5 --- /dev/null +++ b/programs/demos/life2/lif/SLOPUF.lif @@ -0,0 +1,121 @@ +#Life 1.05 +#D SloPuf: Move fast but Puff slowly. A good motto to live your Life by. +#D +#D This can be modified in two ways to give larger periods as follows: +#D +#D Moving the back 12 spaceships backwards by 9 cells and outwards by 3 cells +#D increases the period by 96. +#D +#D Moving the back 6 spaceships forwards by one cell and outwards by one cell, +#D and moving the next 6 spaceships forwards by 3 cells and inwards by one cell +#D increases the period by 8 and leaves one more blinker as output. (This can +#D only be done when there is sufficient room along the center line.) +#D +#D An interesting linear combination of the two rules results in the following: +#D +#D Moving the back six spaceships backwards by 6 cells and outwards by 6 cells +#D increases the period by 120 and leaves 3 more blinkers as output. +#D +#D By David Bell +#N +#P -41 -10 +...* +.*...* +* +*....* +***** +#P -41 -2 +.** +**.*** +.**** +..** +#P -39 3 +...** +.*....* +* +*.....* +****** +#P -33 0 +*** +#P -29 -3 +........* +.**.*..*.* +*.*.****.* +* +*.*.****.* +.**.*..*.* +........* +#P -17 -19 +****** +*.....* +* +.*....* +...** +#P -17 15 +...** +.*....* +* +*.....* +****** +#P 2 -23 +.** +**.** +.**** +..** +#P 2 20 +..** +.**** +**.** +.** +#P 10 -29 +.** +**.**** +.****** +..**** +#P 10 26 +..**** +.****** +**.**** +.** +#P 11 -13 +..**** +.****** +**.**** +.** +#P 11 10 +.** +**.**** +.****** +..**** +#P 21 -32 +..*** +.***** +**.*** +.** +#P 21 29 +.** +**.*** +.***** +..*** +#P 30 -22 +...** +.*....* +* +*.....* +****** +#P 30 18 +****** +*.....* +* +.*....* +...** +#P 34 -36 +.** +**.**** +.****** +..**** +#P 34 33 +..**** +.****** +**.**** +.** diff --git a/programs/demos/life2/lif/SLOPUF2.lif b/programs/demos/life2/lif/SLOPUF2.lif new file mode 100644 index 000000000..c3236449b --- /dev/null +++ b/programs/demos/life2/lif/SLOPUF2.lif @@ -0,0 +1,43 @@ +#Life 1.05 +#D Another puffer that moves fast but puffs slowly +#D +#D No puffers are known that move slowly. +#D This pattern by David Bell. +#N +#P -9 -10 +...* +.*...* +* +*....* +***** +#P -9 -2 +.** +**.*** +.**** +..** +#P -7 3 +...** +.*....* +* +*.....* +****** +#P -1 0 +*** +#P 3 -3 +........* +.**.*..*.* +*.*.****.* +* +*.*.****.* +.**.*..*.* +........* +#P 3 -10 +.** +**.*** +.***** +..*** +#P 3 7 +..*** +.***** +**.*** +.** diff --git a/programs/demos/life2/lif/SLR.lif b/programs/demos/life2/lif/SLR.lif new file mode 100644 index 000000000..8565f97fa --- /dev/null +++ b/programs/demos/life2/lif/SLR.lif @@ -0,0 +1,178 @@ +#Life 1.05 +#D Still-Life Reflector +#D +#D Converts one glider into 4 for any input stream +#D with a period of 672 or greater, unless pipelining +#D techniques are employed. It is a great challenge +#D to come up with the small, fast reflector that +#D consists solely of still-lifes. Dieter Leithner +#D (dietrich.deithner@dlr.de) is offering a $100 +#D prize for the first stable glider reflector that +#D fits within a 50x50 box. +#D +#D A glider collides with a boat in generation 97, +#D destroying the boat but creating a B-heptomino at +#D generation 107. This is converted into a Herschel +#D in 59 generations. Herschel conduits of lengths 64, +#D 77, 77, 64, 64, 77, 119, and 64 set the Herschel up +#D for a final collision to recreate the destroyed +#D boat. +#D +#D The first stable glider reflectors were created by +#D Paul Callahan and Dean Hickerson in late 1996. This +#D one by Dave Buckingham, May 30, 1997. +#N +#P -31 -20 +** +*.* +.* +#P -44 -16 +*.** +**.* +#P -35 -13 +** +** +#P -27 -5 +..** +..* +*.* +** +#P -47 13 +** +** +#P -46 20 +** +** +#P -42 18 +** +** +#P -40 24 +** +** +#P -26 25 +..** +...* +*** +* +#P -11 24 +** +** +#P -11 5 +...* +.*** +* +** +#P -1 12 +* +*** +...* +..** +#P 14 15 +** +** +#P 14 32 +** +* +.*** +...* +#P 20 22 +..** +.*.* +.* +** +#P 34 29 +** +** +#P 39 24 +** +** +#P 41 28 +** +** +#P 45 22 +** +** +#P 12 4 +..** +...* +*** +*..*** +..*...* +.**..** +#P 43 -13 +** +** +#P 45 -7 +** +** +#P 49 -9 +** +** +#P 50 -2 +** +** +#P 27 -16 +...* +.*** +* +** +#P 14 -13 +** +** +#P 3 -3 +** +*.* +..* +..** +#P 0 -33 +...* +.*** +* +** +#P -1 -27 +** +** +#P -6 -26 +** +** +#P -7 -32 +** +** +#P -14 1 +..** +...* +*** +* +#P -16 -1 +** +** +#P -20 -8 +* +*** +...* +..*.* +...* +#P -18 -14 +** +** +#P -26 -40 +** +** +#P -33 -39 +** +** +#P -31 -35 +** +** +#P -37 -33 +** +** +#P -26 -17 +** +* +.*** +...* +#P -59 -46 +* +.** +** diff --git a/programs/demos/life2/lif/SPARK2PI.lif b/programs/demos/life2/lif/SPARK2PI.lif new file mode 100644 index 000000000..692fb6da1 --- /dev/null +++ b/programs/demos/life2/lif/SPARK2PI.lif @@ -0,0 +1,354 @@ +#Life 1.05 +#D Spark to Pi fuse +#D by Al Hensel, 1987 +#D See also REVFUSE. +#N +#P -44 -40 +*.* +.** +.* +#P -12 3 +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +#P 11 3 +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +#P -12 75 +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +#P 11 75 +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +. +. +. +. +. +. +. +** +** +#P -2 2 +**.** +*...* +.*** +#P -1 7 +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +#P -1 67 +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +. +. +*** +.* +.* +*** +#P -2 115 +.*** +..* +..* +.*** +*...* +**.** diff --git a/programs/demos/life2/lif/SPDRRAKE.lif b/programs/demos/life2/lif/SPDRRAKE.lif new file mode 100644 index 000000000..3ef0c9532 --- /dev/null +++ b/programs/demos/life2/lif/SPDRRAKE.lif @@ -0,0 +1,360 @@ +#Life 1.05 +#D Period 360 c/5 rake +#D +#D On the inspiration of a huge c/5 puffer construction by +#D Tim Coe, David Bell used spiders (c/5 spaceships that he +#D found a few months earlier) to bounce gliders back and +#D forth, leaving debris. Part of the mechanism involves +#D Herschel reactions. In this version, the debris on the +#D left is cleaned up by extra spiders, and the debris on +#D the right is converted into a forward-swept wing of +#D gliders. Note that one of the spiders can be deleted to +#D leave gliders heading backward. Also, any of the eleven +#D circulating glider pairs may be deleted, increasing the +#D period to 3960. +#D +#D David Bell, September 13, 1997. +#N +#P -225 -48 +....*.....**.....**.....* +..*..**.**..*...*..**.**..* +***....*.*...*.*...*.*....*** +**..*..***.**...**.***..*..** +***..***....*...*....***..*** +.*.*..*...............*..*.* +..*.......................* +#P -227 -15 +..**.....**.....**.....** +*...*...*..*...*..*...*...* +*...*.*.***.....***.*.*...* +*.....**..***.***..**.....* +**.***...............***.** +*.........................* +.*...*...............*...* +..*..*...............*..* +#P -230 -1 +..**.....**.....**.....** +*...*...*..*...*..*...*...* +*...*.*.***.....***.*.*...* +*.....**..***.***..**.....* +**.***...............***.** +*.........................* +.*...*...............*...* +..*..*...............*..* +#P -172 15 +..**.....**.....**.....** +*...*...*..*...*..*...*...* +*...*.*.***.....***.*.*...* +*.....**..***.***..**.....* +**.***...............***.** +*.........................* +.*...*...............*...* +..*..*...............*..* +#P -165 37 +......*...***.....***...* +...**.*****.**...**.*****.** +.*.**.*.....*.*.*.*.....*.**.* +*...*.*...*****.*****...*.*...* +....***.....**...**.....*** +.*..*.***.............***.*..* +...*.......................* +#P -260 37 +.........**.....** +.****.*.*.*.....*.*.*.**** +***.*.*.**.*...*.**.*.*.*** +*...*.*.............*.*...* +.*.***.....**.**.....***.* +.**.....................** +.*****...............***** +....**...............** +#P -218 52 +..**.....**.....**.....** +*...*...*..*...*..*...*...* +*...*.*.***.....***.*.*...* +*.....**..***.***..**.....* +**.***...............***.** +*.........................* +.*...*...............*...* +..*..*...............*..* +#P -267 53 +.........**.....** +.****.*.*.*.....*.*.*.**** +***.*.*.**.*...*.**.*.*.*** +*...*.*.............*.*...* +.*.***.....**.**.....***.* +.**.....................** +.*****...............***** +....**...............** +#P -164 65 +.........*.......* +...**.*.*.**...**.*.*.** +***.*.***.........***.*.*** +*...*.*.....*.*.....*.*...* +....**......*.*......** +.**.........*.*.........** +.**.**...............**.** +.....*...............* +#P -269 75 +.........*.......* +...**.*.*.**...**.*.*.** +***.*.***.........***.*.*** +*...*.*.....*.*.....*.*...* +....**......*.*......** +.**.........*.*.........** +.**.**...............**.** +.....*...............* +#P -228 77 +..**.....**.....**.....** +*...*...*..*...*..*...*...* +*...*.*.***.....***.*.*...* +*.....**..***.***..**.....* +**.***...............***.** +*.........................* +.*...*...............*...* +..*..*...............*..* +#P -213 86 +.........*.......* +...**.*.*.**...**.*.*.** +***.*.***.........***.*.*** +*...*.*.....*.*.....*.*...* +....**......*.*......** +.**.........*.*.........** +.**.**...............**.** +.....*...............* +#P -233 70 +** +** +#P -183 58 +** +** +#P -196 -28 +** +** +#P -227 72 +.** +*.* +..* +#P -195 35 +.* +.** +*.* +#P -137 54 +.** +*.* +..* +#P -105 17 +.* +.** +*.* +#P -47 36 +.** +*.* +..* +#P -15 -1 +.* +.** +*.* +#P 43 18 +.** +*.* +..* +#P 75 -19 +.* +.** +*.* +#P 133 0 +.** +*.* +..* +#P 165 -37 +.* +.** +*.* +#P 180 20 +* +* +* +#P 182 22 +.**** +*....* +*.....* +.**..* +...** +#P 193 24 +*** +#P 200 23 +**.** +*...* +.*** +..* +#P 238 100 +*** +#P 241 119 +** +** +#P 181 63 +** +*.* +* +#P 149 26 +.* +** +*.* +#P 91 45 +** +*.* +* +#P 59 8 +.* +** +*.* +#P 1 27 +** +*.* +* +#P -31 -10 +.* +** +*.* +#P -89 9 +** +*.* +* +#P -121 -28 +.* +** +*.* +#P -179 -9 +** +*.* +* +#P 198 -48 +....*.....**.....**.....* +..*..**.**..*...*..**.**..* +***....*.*...*.*...*.*....*** +**..*..***.**...**.***..*..** +***..***....*...*....***..*** +.*.*..*...............*..*.* +..*.......................* +#P 202 -15 +..**.....**.....**.....** +*...*...*..*...*..*...*...* +*...*.*.***.....***.*.*...* +*.....**..***.***..**.....* +**.***...............***.** +*.........................* +.*...*...............*...* +..*..*...............*..* +#P 205 -1 +..**.....**.....**.....** +*...*...*..*...*..*...*...* +*...*.*.***.....***.*.*...* +*.....**..***.***..**.....* +**.***...............***.** +*.........................* +.*...*...............*...* +..*..*...............*..* +#P 147 15 +..**.....**.....**.....** +*...*...*..*...*..*...*...* +*...*.*.***.....***.*.*...* +*.....**..***.***..**.....* +**.***...............***.** +*.........................* +.*...*...............*...* +..*..*...............*..* +#P 136 37 +......*...***.....***...* +...**.*****.**...**.*****.** +.*.**.*.....*.*.*.*.....*.**.* +*...*.*...*****.*****...*.*...* +....***.....**...**.....*** +.*..*.***.............***.*..* +...*.......................* +#P 235 37 +.........**.....** +.****.*.*.*.....*.*.*.**** +***.*.*.**.*...*.**.*.*.*** +*...*.*.............*.*...* +.*.***.....**.**.....***.* +.**.....................** +.*****...............***** +....**...............** +#P 193 52 +..**.....**.....**.....** +*...*...*..*...*..*...*...* +*...*.*.***.....***.*.*...* +*.....**..***.***..**.....* +**.***...............***.** +*.........................* +.*...*...............*...* +..*..*...............*..* +#P 139 65 +.........*.......* +...**.*.*.**...**.*.*.** +***.*.***.........***.*.*** +*...*.*.....*.*.....*.*...* +....**......*.*......** +.**.........*.*.........** +.**.**...............**.** +.....*...............* +#P 188 74 +..**.....**.....**.....** +*...*...*..*...*..*...*...* +*...*.*.***.....***.*.*...* +*.....**..***.***..**.....* +**.***...............***.** +*.........................* +.*...*...............*...* +..*..*...............*..* +#P 195 88 +.........**.....** +.****.*.*.*.....*.*.*.**** +***.*.*.**.*...*.**.*.*.*** +*...*.*.............*.*...* +.*.***.....**.**.....***.* +.**.....................** +.*****...............***** +....**...............** +#P 203 99 +.........*.......* +...**.*.*.**...**.*.*.** +***.*.***.........***.*.*** +*...*.*.....*.*.....*.*...* +....**......*.*......** +.**.........*.*.........** +.**.**...............**.** +.....*...............* +#P 257 101 +....*.....**.....**.....* +..*..**.**..*...*..**.**..* +***....*.*...*.*...*.*....*** +**..*..***.**...**.***..*..** +***..***....*...*....***..*** +.*.*..*...............*..*.* +..*.......................* +#P 202 109 +......*...***.....***...* +...**.*****.**...**.*****.** +.*.**.*.....*.*.*.*.....*.**.* +*...*.*...*****.*****...*.*...* +....***.....**...**.....*** +.*..*.***.............***.*..* +...*.......................* +#P 210 118 +..**.....**.....**.....** +*...*...*..*...*..*...*...* +*...*.*.***.....***.*.*...* +*.....**..***.***..**.....* +**.***...............***.** +*.........................* +.*...*...............*...* +..*..*...............*..* +#P 245 119 +....*.....**.....**.....* +..*..**.**..*...*..**.**..* +***....*.*...*.*...*.*....*** +**..*..***.**...**.***..*..** +***..***....*...*....***..*** +.*.*..*...............*..*.* +..*.......................* diff --git a/programs/demos/life2/lif/SPIRAL.lif b/programs/demos/life2/lif/SPIRAL.lif new file mode 100644 index 000000000..2fcf5717e --- /dev/null +++ b/programs/demos/life2/lif/SPIRAL.lif @@ -0,0 +1,143 @@ +#Life 1.05 +#D Spiral decay +#D A glider's work is never done. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 4/10/91 +#N +#P -15 -27 +.* +*** +*.** +.*** +.** +#P -10 -25 +...* +..*** +.**..* +.**.** +.*..*** +..*.** +....* +*...* +.*.* +..* +#P -1 -27 +.* +*** +*.** +.*** +.** +#P -16 -18 +.*** +*..* +...* +...* +..* +#P 23 -14 +.**** +*...* +....* +*..* +#P 20 -9 +.** +***** +*....* +***..* +.*..** +..** +#P 23 0 +.**** +*...* +....* +...* +#P 15 -14 +..** +**.** +**** +.** +#P 3 22 +.** +.*** +*.** +*** +.* +#P 9 17 +...* +.**.** +. +*.*...* +*...* +**..* +.*** +..* +#P 17 22 +.** +.*** +*.** +*** +.* +#P 16 13 +..* +...* +...* +*..* +.*** +#P -28 16 +.*..* +* +*...* +**** +#P -28 2 +.* +* +*...* +**** +#P -26 9 +..** +**..* +*..*** +*....* +.***** +...** +#P -20 16 +..** +.**** +**.** +.** +#P -10 1 +**** +*...* +* +.* +#P 0 -9 +..* +.*** +**.* +*** +.** +#P 5 1 +...* +....* +*...* +.**** +#P 0 4 +.** +*** +**.* +.*** +..* +#P -7 6 +.* +*.* +.** +#P -4 -4 +.* +*.* +** +#P 4 -3 +** +*.* +.* +#P 0 -1 +.* +.** +*.* diff --git a/programs/demos/life2/lif/STARGATE.lif b/programs/demos/life2/lif/STARGATE.lif new file mode 100644 index 000000000..6394248d8 --- /dev/null +++ b/programs/demos/life2/lif/STARGATE.lif @@ -0,0 +1,726 @@ +#Life 1.05 +#D Star Gate: the paradox of an apparent warp-speed spaceship tunnel. +#D A p60 device which allows lightweight spaceships to jump forward in +#D Life space at the superluminous speed of 15/14 = 1.071c. +#D Specifically, LWSSs entering from the left jump by 30 cells along +#D their path in 28 generations. The Star Gate implements two copies +#D of a reaction in which crashing gliders create a Fast Forward +#D Force Field which allows LWSSs to travel by way of a tunnel effect. +#D Dieter Leithner, 26 Oct 1996 +#N +#P -77 -65 +** +** +#P -72 -67 +* +* +#P -67 -68 +* +**** +.**** +.*..* +.**** +**** +* +#P -56 -70 +....** +...*.* +..*** +.*** +..*** +...*.* +....** +.* +..* +*** +#P -48 -68 +.** +*..**** +.**.*** +#P -72 -59 +** +** +#P -75 -55 +...* +..*.* +.*...* +.***** +**...** +.***** +..*** +...* +#P -73 -37 +..*** +.*...* +. +*.....* +**...** +#P -71 -30 +.* +*.* +*.* +* +* +*..* +.** +#P -69 -46 +.** +*.* +..* +#P -61 -53 +*** +..* +.* +#P -59 -50 +...* +.*** +* +** +#P -62 -45 +* +* +#P -64 -41 +**...** +.***** +..*** +...* +.......* +#P -62 -29 +..*** +. +..*.* +.***** +**...** +**...** +#P -56 -40 +..** +.*..* +. +. +.* +* +#P -50 -45 +.** +*.* +..* +#P -43 -60 +** +.* +.*.* +..*** +....*** +....*..* +.....** +#P -33 -58 +** +*.* +...* +*..* +...* +*.* +** +#P -24 -60 +..** +..* +*.* +** +#P -41 -48 +.* +..* +*** +#P -62 -21 +...* +.** +. +* +. +.*..* +...** +#P -55 -20 +..** +.*.* +.* +** +#P -47 -25 +...** +.*..* +* +* +* +.*..* +...** +#P -40 -26 +.*** +*..*.* +** +. +....*** +#P -31 -27 +*.* +*...* +....* +*....* +....* +*...* +*.* +#P -23 -22 +** +*.* +..* +..** +#P -47 -32 +*** +* +.* +#P -33 -48 +* +.** +** +#P -26 -33 +.* +..* +*** +#P -18 -33 +* +.** +** +#P -25 -50 +** +.* +.*.* +..** +#P -21 -54 +* +*** +...* +..** +#P -17 -46 +.** +**.** +.**** +..** +#P -13 -38 +..* +*.* +.** +#P -15 -66 +** +** +#P -11 -68 +* +.** +#P -6 -69 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P 4 -67 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P 19 -64 +** +** +#P -4 -61 +.* +* +*** +#P -11 -53 +* +*.* +** +#P -5 -53 +..** +.*.* +.* +** +#P 0 -58 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 9 -57 +*** +. +..*..** +..*...* +..*..* +....** +#P 18 -60 +** +*** +..**.* +..*..* +..**.* +*** +** +#P 27 -62 +..** +..* +*.* +** +#P -2 -47 +..** +.**** +**.** +.** +#P 24 -67 +** +** +#P 33 -70 +..** +.*.* +* +*..* +* +.*.* +..** +#P 39 -67 +....** +...*.* +.*...* +**.*** +...** +#P 47 -68 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P 58 -65 +** +** +#P 33 -59 +* +*.* +** +#P 25 -52 +.* +* +*** +#P 13 -46 +.** +**.** +.**** +..** +#P 5 -37 +** +** +#P 13 -40 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P 20 -41 +..**.* +**.*.* +**.*.** +.....** +....** +#P 29 -42 +* +**** +.**** +.*..* +.**** +**** +* +#P 37 -44 +..** +..* +*.* +** +#P 35 -51 +....** +**.*..* +**..** +#P 44 -53 +** +*.* +...* +*..* +...* +*.* +** +#P 55 -51 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P 67 -53 +..** +..* +*.* +** +#P 71 -49 +** +** +** +.* +*.* +*.* +.* +#P 69 -40 +**...** +*.*.*.* +.***** +..*** +...* +#P 71 -24 +..*** +.*...* +*.....* +.*...* +..*** +..*** +#P 73 -15 +** +** +#P 69 -29 +*.* +** +.* +#P 47 -46 +..* +** +.** +#P 40 -38 +*.* +** +.* +#P 32 -31 +..* +** +.** +#P 32 -29 +........* +......**** +.....*.*.** +....*..*.*** +....**.*.** +..***.**** +.*.*....* +.* +** +#P 47 -27 +* +..**.* +.****.* +.**..** +#P 56 -31 +*.* +*...* +....* +*....* +....* +*...* +*.* +#P 64 -33 +..** +..* +*.* +** +#P 61 -22 +..* +** +.** +#P 16 -25 +* +*** +...* +..** +#P -11 -18 +.* +..* +*** +#P 19 -18 +.*..* +* +*...* +**** +#P -3 -18 +* +.** +** +#P 2 -23 +..* +*.* +.** +#P 12 -21 +** +.* +.*.* +..** +#P 25 -23 +*.* +** +.* +#P 76 -11 +** +** +#P 68 -13 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P 57 -13 +.** +.*..* +*...* +**..* +. +....*** +#P 49 -11 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P 42 -9 +** +** +#P 49 -18 +.*..* +* +*...* +**** +#P 17 -8 +..* +*.* +.** +#P 25 -8 +*.* +.** +.* +#P 4 -3 +.* +..* +*** +#P 12 -3 +* +.** +** +#P 10 1 +.* +** +*.* +#P 34 -17 +**** +*...* +* +.*..* +#P 11 9 +* +*** +...* +..** +#P 13 17 +...* +..*** +.***** +*.*.*.* +**...** +#P 11 24 +.....* +....*.* +...**.* +...*** +..*..* +..*** +.*...* +*.....* +.*...* +..*** +#P 9 41 +..** +...* +*** +* +#P 7 45 +........** +......*...* +.....*.....* +....*..*...* +...........* +..*...*...* +.*.**...** +.* +** +#P 23 46 +* +#P 26 46 +*** +..* +.* +#P 32 47 +* +*.* +...** +...** +...** +*.* +* +#P 39 52 +** +*.* +..* +..** +#P 34 7 +.** +** +..* +#P 25 16 +.* +** +*.* +#P 21 32 +.* +..* +*** +#P 28 40 +..* +*.* +.** +#P 33 38 +.** +*.* +..* +#P 40 31 +.* +** +*.* +#P 38 43 +** +.* +.*.* +..** +#P 48 45 +...*...*** +..*****...* +.**.**...* +***.**...* +.**.**** +..**** +...* +#P 61 43 +** +*..* +....* +....* +....* +*..* +** +#P 70 48 +** +*.* +..* +..** +#P 48 40 +** +** +#P 52 35 +..* +** +.** +#P 60 28 +*.* +** +.* +#P 68 39 +** +* +.*** +...* +#P 63 30 +..*** +.*...* +*.....* +**.*.** +#P 61 16 +**...** +...* +*.....* +.**.** +..*.* +...* +...* +#P 65 11 +.* +* +* +#P 63 7 +** +** +#P 51 5 +** +** +#P 49 12 +..*** +. +..*.* +.***** +**...** +**...** +#P 48 22 +..** +.** +*..* +..* +#P 54 24 +** +* +.*** +...* +#P -2 -1 +..** +**.** +**** +.** +#P -2 59 +..** +**.** +**** +.** +#P -32 -1 +..** +**.** +**** +.** +#P -32 59 +..** +**.** +**** +.** +#P -62 -1 +..** +**.** +**** +.** +#P -62 59 +..** +**.** +**** +.** diff --git a/programs/demos/life2/lif/STILL.lif b/programs/demos/life2/lif/STILL.lif new file mode 100644 index 000000000..1bd0f5206 --- /dev/null +++ b/programs/demos/life2/lif/STILL.lif @@ -0,0 +1,265 @@ +#Life 1.05 +#D Still life +#D An artistic arrangement +#D by Al Hensel. All of these +#D objects are well-known. +#N +#P 0 0 +** +** +#P 5 0 +** +*.* +.** +#P 0 5 +.* +*.* +.* +#P 5 5 +.* +*.* +** +#P -7 0 +.** +*..* +.** +#P -7 5 +..* +.*.* +*..* +.** +#P -13 5 +.** +*..* +*..* +.** +#P -1 10 +...** +..*.* +..* +*.* +** +#P 0 -7 +.** +..* +* +** +#P -7 -7 +** +.* +* +** +#P -14 -7 +** +* +.*** +...* +#P 6 -8 +.** +..* +.* +* +** +#P -15 -2 +** +.* +.*.** +..*..* +...** +#P -9 11 +..** +.*..* +.*.* +**.** +#P -18 11 +....** +...*..* +...*.** +**.* +*..* +.** +#P -13 17 +..** +.*..* +*..* +.** +#P -6 17 +..* +.*.* +.*.* +**.** +#P 1 16 +..* +.*.* +*.* +** +#P 6 8 +.....* +....*.* +...*.* +..*.* +.*.* +*.* +.* +#P -7 -14 +.** +*.*** +*....* +.***.* +...** +#P -16 -14 +...* +..*.* +..*.* +*.*.*.* +**...** +#P 2 -12 +**.**.**.**.* +*.**.**.**.** +#P 17 -12 +*..* +**** +. +**** +*..* +#P 11 -8 +** +* +.* +..* +...* +....* +.*** +* +.* +..* +...* +....* +.*** +.* +#P 18 -5 +.....** +.**.*..* +*.*.**** +*.* +.**...** +......*.* +.****.*.* +.*..*.** +..** +#P 23 -13 +..* +.*.* +*.*.* +*.*.* +.*.* +..* +#P 9 15 +....* +...*.* +.***.*** +*.......* +**.....** +#P 17 7 +...* +*.*.*.* +**.*.** +...* +...* +**.*.** +*.*.*.* +...* +#P 23 15 +...* +.***** +*.....* +*.*.*.* +.**.** +#P -19 -20 +....**....** +**.*..*..*..*.** +*.**..*..*..**.* +.......** +#P 0 -22 +.**...*...*...*...*...** +*..*.*.*.*.*.*.*.*.*.*..* +**.*.*.*.*.*.*.*.*.*.*.** +..*.*.*.*.*.*.*.*.*.*.* +..*.*.*.*.*.*.*.*.*.*.* +**.*.*.*.*.*.*.*.*.*.*.** +*..*.*.*.*.*.*.*.*.*.*..* +.**...*...*...*...*...** +#P -33 -18 +.....* +....*.* +...*..* +..*...** +..** +....* +..*** +.* +.**** +....* +...* +...** +.....* +...*** +..* +...* +....* +.*** +.* +..**** +......* +....*** +...* +...** +.....* +.**** +* +.** +...* +.** +.* +..* +.** +...**.* +...*.** +.......* +.......* +#P -25 -17 +** +*.* +...* +....* +.....* +..**** +..* +...* +..** +..* +...* +*** +* +.**** +.....* +.***.* +.*..* +..* +...**** +......* +.....* +....* +....** +......* +....** +....* +.....* +..*** +.* +.** +...* +.** +.* +..* +** diff --git a/programs/demos/life2/lif/STRETCH.lif b/programs/demos/life2/lif/STRETCH.lif new file mode 100644 index 000000000..e187b491f --- /dev/null +++ b/programs/demos/life2/lif/STRETCH.lif @@ -0,0 +1,60 @@ +#Life 1.05 +#D Wick stretcher +#D A c/4 spaceship pulls a wick (line of ants) which is attached +#D to a stabilizing end. Both halves were found by computer search +#D by Dean Hickerson, 1992. See also EFENCE, TIRETRAX, AQUA25. +#N +#P -20 -9 +*.**..** +*....**..* +*.**....** +......* +.....* +.....* +......* +*.**....** +*....**..* +*.**..** +#P -9 -12 +......** +..**....* +.***.* +*...****.*.* +.......*.*** +**....* +...* +....*.*....*** +....*.*....*** +...* +**....* +.......*.*** +*...****.*.* +.***.* +..**....* +......** +#P 6 -9 +.** +.*....** +...*...* +..** +..*....* +**.*..** +..**.* +..* +.....* +....*.* +.....* +#P 15 -9 +.** +*..*.**.* +*.**.*.** +*..*.*...** +.*.*.***...* +*.*...*..**.* +**....**....* +..**.*.*.**.** +*...**.*..*.* +.**....*..*.* +..*.***....* +..*.* +...* diff --git a/programs/demos/life2/lif/SWITCHEN.lif b/programs/demos/life2/lif/SWITCHEN.lif new file mode 100644 index 000000000..3af218501 --- /dev/null +++ b/programs/demos/life2/lif/SWITCHEN.lif @@ -0,0 +1,14 @@ +#Life 1.05 +#D Switch Engine +#D by Charles Corderman. +#D The smallest forever-growing +#D pattern in the Game of Life. +#N +#P -13 -3 +.*.* +* +.*..* +...*** +#P 13 2 +** +* diff --git a/programs/demos/life2/lif/SWITCPUF.lif b/programs/demos/life2/lif/SWITCPUF.lif new file mode 100644 index 000000000..21cc1dce9 --- /dev/null +++ b/programs/demos/life2/lif/SWITCPUF.lif @@ -0,0 +1,260 @@ +#Life 1.05 +#D Puffer train that creates switch engines. +#D +#D This is another type of pattern which +#D grows quadratically. Half of a quadrant +#D of the space is filled with blocks. +#D Every 80 generations a new switch +#D engine is created. See also SWITCHEN, +#D BREEDER, MAX. +#D +#D by Helmut Postl, 1997. +#N +#P -29 -70 +............**.....**** +..........**.**...*...* +..........****........* +...........**.....*..* +. +......**.........* +....*****........*** +....**....*.....*...* +....**.....*****....* +......**....****.*.** +.........***.**...* +...............*.* +. +. +...................**** +..................*...* +.****.................* +*...*.............*..* +....* +*..*.........** +.........****.** +.........****** +..........****.....**** +..................*...* +......................* +.........*.*.........* +..................** +........** +........**......**...** +........*.......*.***.** +........**.......****** +..................**** +. +. +........****** +.......*.....* +.............* +.......*....* +.........** +#P -36 -27 +...................** +..........****....**** +.........*...*....**.** +.............*......** +.........*..* +. +. +.................** +.................*.* +.................*.** +..................** +..................* +. +. +...................** +..................**** +.**...............**.** +****................** +**.** +..** +.........****** +........*.....* +..............*....** +........*....*....**** +..........**......**.** +....................** +. +.............* +............****** +...........*...******** +............**........* +.............***......* +..............**.....* +..................** +........**** +.......****** +.......****.** +...........** +#P -13 21 +........**** +.......****** +.......****.** +...........** +. +. +. +.................****** +.............****.....* +.*.*.........**.*.....* +.**..........**..*...* +..*................* +...................** +..................**** +..................**.** +....................** +.........****** +........*.....* +.**...........* +****....*....* +**.**.....**.......** +..**..............**** +..................**.** +....................** +. +. +. +.................** +...........***...*.* +........***......*.** +........*.........** +........***.......* +. +. +...................** +..........****....**** +.........*...*....**.** +.............*......** +.........*..* +#P -37 55 +..........**** +.........****** +.........****.** +.............** +. +. +...............* +.............*...*.****** +............***...*.....* +............*.....*.....* +*.*.........*.**...*...* +**...........***.....* +.*...................** +....................**** +....................**.** +......................** +...........****** +..........*.....* +...**...........* +..****....*....* +..**.**.....**.......** +....**..............**** +....................**.** +......................** +. +. +..........** +.........*..* +....***.............** +...*..*........*.....** +...**.**...*...*....** +...........*....*...* +.............* +. +.....................** +............****....**** +...........*...*....**.** +...............*......** +...........*..* +#P -18 44 +..** +.** +. +** +#P -36 -57 +..* +** +.** +#P -34 -46 +** +*.* +* +#P -46 -50 +** +*.* +* +#P -51 -52 +..* +** +.** +#P -53 -58 +..** +**.** +**** +.** +#P -57 -54 +* +.** +#P -68 -53 +....** +****.** +****** +.**** +#P -66 -47 +..* +** +.** +#P -71 -33 +..* +*.* +.** +#P -61 -14 +.**** +*...* +....* +*..* +#P -59 -1 +.** +**** +**.** +..** +#P -51 15 +..** +**.** +**** +.** +#P -49 25 +.* +.** +*.* +#P -38 44 +.**** +*...* +....* +*..* +#P -49 69 +*.* +** +.* +#P -44 76 +** +*.* +* +#P -60 78 +.**** +*...* +....* +*..* +#P -75 73 +.****** +*.....* +......* +*....* +..** +#P -68 62 +.* +.** +*.* diff --git a/programs/demos/life2/lif/THICKGU2.lif b/programs/demos/life2/lif/THICKGU2.lif new file mode 100644 index 000000000..8e0c49010 --- /dev/null +++ b/programs/demos/life2/lif/THICKGU2.lif @@ -0,0 +1,103 @@ +#Life 1.05 +#D Minimal area pseudo p23 glider gun +#D The construction uses Peter Rott's p46 glider gun variant with a +#D hole in the center. It was improved by David Bell's double blocks. +#D Dieter Leithner, constructed 2 Oct 1993, improved 14 Oct 1996 +#N +#P -34 -16 +.** +.** +. +. +** +** +#P -34 -5 +** +** +. +. +.** +.** +#P -24 -13 +*** +...* +....* +...* +.** +. +.** +...* +....* +...* +*** +#P -4 -17 +...* +..** +.*** +** +.** +..* +. +..* +.** +** +.*** +..** +...* +#P 11 -15 +** +** +#P 7 -3 +** +** +#P 24 -4 +* +** +.** +** +. +. +. +** +.** +** +* +#P 31 -7 +** +** +. +. +.** +.** +#P 31 4 +.** +.** +. +. +** +** +#P -27 6 +** +** +. +. +. +. +. +** +** +#P -18 5 +.** +*.* +* +*** +. +. +. +*** +* +*.* +.** +#P 0 13 +** +** diff --git a/programs/demos/life2/lif/THICKGUN.lif b/programs/demos/life2/lif/THICKGUN.lif new file mode 100644 index 000000000..fd79f96d9 --- /dev/null +++ b/programs/demos/life2/lif/THICKGUN.lif @@ -0,0 +1,196 @@ +#Life 1.05 +#D Pseudo p15 gun +#D +#D A p30 LWSS-based mechanism inserts +#D extra gliders into a regular p30 +#D stream. +#D +#D By Dieter Leithner, 20 Sep 1995. +#N +#P -48 -28 +** +** +#P -41 -31 +....** +....** +.** +*** +.** +....** +....** +#P -33 -30 +..* +** +*..** +.***** +..* +#P -26 -33 +** +..* +...* +...* +...* +..* +** +#P -14 -30 +** +** +#P -28 -46 +** +** +#P -24 -49 +....* +..**** +.*.*.** +*..*.*** +.*.*.** +..**** +....* +#P -13 -47 +* +..**.* +.****.* +.**..** +#P -4 -51 +*.* +*...* +....* +*....* +....* +*...* +*.* +#P 6 -48 +** +** +#P -12 -41 +* +*** +...* +..** +#P -10 -34 +...* +..*** +..*** +. +**...** +**...** +#P -8 -16 +**...** +. +.*...* +..*** +..*** +#P -3 -9 +** +* +.*** +...* +#P 10 -51 +** +** +#P 8 -45 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P 10 -28 +**.*.** +*.....* +.*...* +..*** +#P 12 -17 +** +** +#P -49 -24 +*** +*** +#P -51 -19 +**...** +.***** +..*** +...* +#P -53 -2 +**...** +..*** +.*...* +..*.* +...* +#P -50 6 +** +** +#P -47 -9 +* +.** +** +#P -43 -12 +** +.* +.*.* +..** +#P -37 -10 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -17 -8 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P -11 -3 +** +*.* +..* +..** +#P -53 10 +** +** +#P -47 8 +...*.* +.*...* +.* +*....* +.* +.*...* +...*.* +#P -30 10 +** +*..* +....* +....* +....* +*..* +** +#P -19 12 +** +** +#P 9 1 +..* +.** +*** +.** +..* +#P 18 1 +* +** +*** +** +* +#P -2 10 +....* +****.* +***.*.* +.....*.* +......* +.....** +.....** +.....** diff --git a/programs/demos/life2/lif/THINGUN.lif b/programs/demos/life2/lif/THINGUN.lif new file mode 100644 index 000000000..d0777641a --- /dev/null +++ b/programs/demos/life2/lif/THINGUN.lif @@ -0,0 +1,482 @@ +#Life 1.05 +#D 4-bit binary counter +#D A p736 (= 46 * 2^4) gun based on 4 boat-bits which form a binary +#D counter. (A boat-bit is a memory device in which a bit of +#D information is represented as the presence or absence of a boat +#D adjacent to a snake (or eater or beacon or ...). Hitting the +#D boat-bit with a glider changes its state. The transition from +#D 1 to 0 can be detected by another glider.) +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 2/9/90 +#N +#P -55 -72 +** +** +#P -45 -72 +.** +** +.***** +..**** +. +..**** +.***** +** +.** +#P -22 -75 +...*** +.*...* +*....* +*...* +. +*...* +*....* +.*...* +...*** +#P -8 -75 +** +** +. +. +. +. +. +** +** +#P -29 -67 +..* +*.* +.** +#P -17 -56 +.* +..* +*** +#P -6 -44 +..* +*.* +.** +#P 10 -75 +** +** +. +. +. +...** +.*...** +.*....* +.*...** +...** +#P 22 -77 +.** +...* +**..* +.*..* +..*.* +..** +. +..** +..*.* +.*..* +**..* +...* +.** +#P 42 -74 +...* +..** +.***.* +** +.** +..* +. +..* +.** +** +.***.* +..** +...* +#P 57 -72 +** +** +#P 52 -67 +...* +.**.* +**.*** +.*..* +..** +#P 25 -62 +*.* +** +.* +#P 13 -51 +..* +** +.** +#P 2 -39 +*.* +** +.* +#P -55 -37 +** +** +#P -57 -33 +...** +..*** +*** +*** +*** +..*** +...** +#P -49 -33 +** +*** +..*** +..*** +..*** +*** +** +#P -40 -38 +**...* +***.*.** +***....* +...*...* +....*** +. +....*** +...*...* +***....* +***.*.** +**...* +#P -30 -41 +..**..*.* +.***.*...* +**......* +.*.***** +..*** +. +..*** +.*.***** +**......* +.***.*...* +..**..*.* +#P -8 -40 +** +** +. +. +. +. +. +** +** +#P -21 -24 +..* +*.* +.** +#P -9 -13 +.* +..* +*** +#P 2 -1 +..* +*.* +.** +#P -4 -30 +** +* +.* +** +#P 10 -40 +** +** +#P 17 -41 +..**** +.**..* +**..* +.*..* +..** +. +..** +.*..* +**..* +.**..* +..**** +#P 46 -38 +.** +**.** +.*..* +.*..* +..** +. +..** +.*..* +.*..* +**.** +.** +#P 57 -37 +** +** +#P 28 -31 +..* +** +.** +#P 5 -8 +..* +** +.** +#P -55 -4 +.*..* +....* +* +** +......* +...** +#P -53 3 +.** +*...* +*..* +*..* +.** +#P -45 -3 +..*** +*....* +*.....* +.....* +...** +. +...** +.....* +*.....* +*....* +..*** +#P -23 -7 +...* +..** +.***.* +** +.** +..* +. +..* +.** +** +.***.* +..** +...* +#P -8 -5 +** +** +. +. +. +. +. +** +** +#P -24 7 +.* +..* +*** +#P -13 19 +..* +*.* +.** +#P -1 30 +.* +..* +*** +#P 10 42 +..* +*.* +.** +#P -4 5 +** +* +.* +** +#P 10 -5 +** +** +#P 24 -5 +**** +*.** +* +.** +. +.** +* +*.** +**** +#P 32 -5 +.*** +..** +.* +. +. +. +* +**** +** +. +..* +#P 40 -2 +*..** +.**.* +...* +.*** +. +.*** +...* +.**.* +*..** +#P 57 -2 +** +** +#P 20 12 +..* +** +.** +#P -55 33 +** +** +#P -47 32 +..** +.*.* +**.* +.** +..* +. +..* +.** +**.* +.*.* +..** +#P -19 29 +.** +**.** +.*..* +.*..* +..** +. +..** +.*..* +.*..* +**.** +.** +#P -8 30 +** +** +. +. +. +. +. +** +** +#P -28 39 +..* +*.* +.** +#P -16 50 +.* +..* +*** +#P -5 62 +..* +*.* +.** +#P 7 73 +.* +..* +*** +#P -4 40 +** +* +.* +** +#P 10 30 +** +** +#P 11 35 +..*** +**.*.** +**.....* +**.*.** +..*** +#P 23 30 +...*** +.*...* +*....* +*...* +. +*...* +*....* +.*...* +...*** +#P 40 33 +.** +** +.***** +..**** +. +..**** +.***** +** +.** +#P 57 33 +** +** +#P 51 38 +...** +**.*.* +**...** +**.*.* +...** +#P 24 44 +*.* +** +.* +#P 12 55 +..* +** +.** +#P 10 65 +** +** +#P 15 64 +..**..*.* +.***.*...* +**......* +.*.***** +..*** +. +..*** +.*.***** +**......* +.***.*...* +..**..*.* +#P 45 67 +**...* +***.*.** +***....* +...*...* +....*** +. +....*** +...*...* +***....* +***.*.** +**...* +#P 57 68 +** +** +#P 27 75 +..* +** +.** +#P -4 71 +.* +*.* +** +. +** +* +.* +** diff --git a/programs/demos/life2/lif/THINGUN2.lif b/programs/demos/life2/lif/THINGUN2.lif new file mode 100644 index 000000000..2fb0dd250 --- /dev/null +++ b/programs/demos/life2/lif/THINGUN2.lif @@ -0,0 +1,71 @@ +#Life 1.05 +#D p120 thin gun +#N +#P -17 -7 +** +** +#P -7 -10 +..** +.* +* +* +* +.* +..** +#P -3 -9 +.* +..* +*.** +..* +.* +#P 3 -12 +....* +..*.* +** +** +** +..*.* +....* +#P 15 -14 +..** +..* +*.* +** +#P 14 -7 +..** +..** +. +...* +..*.* +.*..* +*..* +. +*..* +..** +#P -20 6 +** +** +#P -16 8 +.** +* +#P -11 4 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P 3 6 +..** +.*.* +* +*..* +* +.*.* +..** +#P 12 11 +** +*.* +..* +..** diff --git a/programs/demos/life2/lif/THINGUN3.lif b/programs/demos/life2/lif/THINGUN3.lif new file mode 100644 index 000000000..77dff72eb --- /dev/null +++ b/programs/demos/life2/lif/THINGUN3.lif @@ -0,0 +1,56 @@ +#Life 1.05 +#D p92 glider gun +#D Smallest known p92 gun; it uses 2 overlapping p46 guns whose +#D streams cross in an eater-assisted ternary reaction. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 1/8/91 +#N +#P -35 -6 +** +* +#P -19 -6 +*** +..* +..* +.* +. +.* +..* +..* +*** +#P -6 -10 +..* +.** +** +.** +. +. +. +.** +** +.** +..* +#P 10 -13 +..** +..* +*.* +** +#P 10 8 +** +*.* +..* +..** +#P 22 -6 +** +*.* +..* +*** +. +. +. +*** +..* +*.* +** +#P 32 -5 +** +.* diff --git a/programs/demos/life2/lif/THINGUN4.lif b/programs/demos/life2/lif/THINGUN4.lif new file mode 100644 index 000000000..2f55b239c --- /dev/null +++ b/programs/demos/life2/lif/THINGUN4.lif @@ -0,0 +1,235 @@ +#Life 1.05 +#D 4-digit Base-4 counter +#D +#D 0=nothing, 1=boat, +#D 2=blinker, 3=block. +#D +#D This also serves as a +#D p30720 gun. +#N +#P -17 -44 +** +** +#P -19 -38 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P -4 -30 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P 4 -28 +** +** +#P 7 -24 +...* +.*** +* +** +#P 2 -13 +..*** +.*...* +*.....* +.*...* +..*** +..*** +#P 5 -4 +** +** +#P 11 -16 +** +** +#P 13 -11 +** +#P 9 -6 +**...** +.***** +.**.** +.**.** +..*** +#P 17 -2 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P 32 0 +** +** +#P 30 8 +...*** +..*.* +.*...* +.***** +**...** +.***** +..*** +...* +#P 35 4 +...* +.*** +* +** +#P 33 24 +** +** +#P 36 29 +....** +**..**..** +*.*..*..** +.*** +..** +#P 49 29 +...* +.*** +* +** +#P 44 38 +**...** +**...** +. +..*** +..*** +...* +#P 42 49 +..*** +..*** +.*...* +. +**...** +#P 44 63 +** +** +#P 39 39 +** +** +#P 31 66 +** +** +#P 30 61 +.* +*.* +*.* +.* +#P 28 55 +..*** +.*...* +*.....* +**.*.** +#P 26 37 +...* +..*** +.*...* +*.***.* +.***** +#P 24 32 +* +*** +...* +..** +#P 32 46 +*** +..* +.* +#P 17 38 +.* +*.* +..** +..** +.*** +*.* +** +#P 15 30 +...* +..*** +..*** +. +**...** +**...** +#P 10 20 +* +** +.** +.*** +.** +** +* +#P 1 22 +**..** +**..** +....** +#P 13 16 +** +** +#P 2 13 +** +*** +..**.* +..*..* +..**.* +*** +** +#P -7 18 +..** +.*.* +.* +** +#P -11 15 +** +** +#P -13 4 +**...** +*.....* +. +.*...* +..*** +#P -11 -6 +* +** +** +** +.* +*.* +*.* +.* +#P -13 -7 +.* +. +* +#P -17 -8 +..** +.* +* +* +* +.* +..** +#P -27 -6 +** +** +#P -20 -14 +..*** +.***** +*...*.* +.*...** +#P -28 -15 +....** +....** +.** +*** +.** +....** +....** +#P -35 -12 +** +** diff --git a/programs/demos/life2/lif/THINRAKE.lif b/programs/demos/life2/lif/THINRAKE.lif new file mode 100644 index 000000000..faee7562e --- /dev/null +++ b/programs/demos/life2/lif/THINRAKE.lif @@ -0,0 +1,1130 @@ +#Life 1.05 +#D Thin rake +#D +#D By Dean Hickerson and Paul Callahan. +#D +#D This example of a thin rake starts with a period-120 block puffer +#D (Callahan's design using p24 and p20 rakes) and uses three halving +#D stages, resulting in the rather large period of 960. +#D +#D See also RAKE, RAKE2, MWSSRAKE, MWSSRAK2. +#N +#P 21 -17 +*..* +....* +*...* +.**** +. +. +. +. +*** +..* +*.* +** +. +. +*..* +....* +*...* +.**** +#P 13 -17 +.** +**** +**.** +..** +#P 12 -10 +.** +** +.*..* +..* +....** +#P 3 -1 +*..* +....* +*...* +.**** +#P -1 -5 +** +.* +.*** +#P 25 10 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P 19 14 +.*.* +*..** +.*.* +#P 10 5 +..** +*....* +......* +*.....* +.****** +#P 11 12 +....* +.*..* +*..** +* +*..** +....* +....* +..* +#P 11 22 +....** +****.** +****** +.**** +#P 0 11 +** +*.* +* +#P -14 1 +*.* +** +.* +#P -18 5 +** +*.* +* +#P -24 -5 +...** +***.** +***** +.*** +#P -29 6 +*.* +** +.* +#P -31 12 +.***** +*....* +.....* +*...* +..* +#P -36 -1 +** +*.* +* +#P -49 -11 +...** +***.** +***** +.*** +#P -60 -19 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P -64 -16 +* +.* +.** +.* +* +#P -68 -16 +.* +.* +* +.* +.* +#P -72 -16 +.* +** +** +#P -76 -15 +* +.* +* +#P -74 -24 +.**** +****** +****.** +....** +#P -75 -8 +.****** +*.....* +......* +*....* +..** +#P -74 -1 +** +** +#P -88 -11 +* +*.* +** +#P -106 -5 +* +*.* +** +#P -67 10 +*..* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +*..* +#P -73 14 +..*** +**.** +..*** +#P -78 13 +.** +** +. +** +.** +* +#P -82 14 +.** +*** +#P -81 7 +....** +****.** +****** +.**** +#P -81 22 +.****** +*.....* +......* +*....* +..** +#P -93 11 +.** +** +..* +#P -111 5 +.** +** +..* +#P -125 0 +.** +*.* +..* +#P -129 -1 +..* +** +#P -147 -7 +.** +** +..* +#P -137 -12 +.** +*.* +..* +#P -143 -18 +.** +*.* +..* +#P -88 -53 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P -94 -51 +..* +**.* +*...* +**.* +..* +#P -102 -58 +....** +****.** +****** +.**** +#P -104 -52 +.....* +......* +.*..*** +*.* +*.***** +....*** +#P -103 -45 +..** +*....* +......* +*.....* +.****** +#P -115 -47 +.* +* +*** +#P -133 -41 +.* +* +*** +#P -151 -35 +.* +* +*** +#P -169 -29 +.* +* +*** +#P -187 -23 +.* +* +*** +#P -205 -17 +.* +* +*** +#P -223 -11 +.* +* +*** +#P -106 -31 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P -112 -27 +.*.* +*..** +.*.* +#P -120 -36 +.**** +****** +****.** +....** +#P -120 -30 +..* +....* +....* +*..** +* +*..** +.*..* +....* +#P -121 -20 +.****** +*.....* +......* +*....* +..** +#P -131 -24 +* +*.* +** +#P -185 -6 +* +*.* +** +#P -206 -6 +* +.** +** +#P -173 33 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P -178 35 +.* +..* +*..* +..* +.* +#P -186 26 +*..* +....* +*...* +.**** +#P -185 34 +...* +.*.* +*..* +* +*..* +.*.* +...* +#P -184 42 +..** +*....* +......* +*.....* +.****** +#P -192 48 +.**** +*...* +....* +*..* +#P -196 44 +** +**.* +..* +#P -196 37 +.**** +*...* +.* +#P -191 31 +*** +*** +.*.* +#P -197 25 +** +.** +* +#P -203 19 +** +.** +* +#P -209 13 +** +.** +* +#P -215 7 +** +.** +* +#P -221 1 +** +.** +* +#P -227 -5 +** +.** +* +#P -233 -11 +** +.* +* +#P -232 -18 +..* +*...* +.....* +*....* +.***** +#P -257 7 +.** +. +*....* +......* +*.....* +.****** +#P -259 1 +.* +* +*** +#P -265 7 +..* +*...* +.....* +*....* +.***** +#P -265 -10 +.* +*.* +*.* +.* +#P -274 2 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P -281 4 +..** +.**** +*...** +.**** +..** +#P -288 -3 +.**** +****** +****.** +....** +#P -288 11 +..** +*....* +......* +*.....* +.****** +#P -292 4 +.* +** +*.* +#P -310 -2 +.* +** +*.* +#P -328 -8 +.* +** +*.* +#P -280 -28 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P -286 -24 +.*.* +*..** +.*.* +#P -294 -33 +.**** +****** +****.** +....** +#P -295 -17 +.****** +*.....* +......* +*....* +..** +#P -296 -24 +* +*.* +** +#P -314 -18 +* +*.* +** +#P -332 -12 +* +*.* +** +#P -302 36 +*..* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +*..* +#P -308 40 +..*** +**.** +..*** +#P -316 33 +....** +****.** +****** +.**** +#P -316 48 +.****** +*.....* +......* +*....* +..** +#P -319 40 +.** +** +..* +#P -337 34 +.** +** +..* +#P -355 28 +.** +** +..* +#P -373 22 +.** +** +..* +#P -391 16 +.** +** +..* +#P -409 10 +.** +** +..* +#P -320 14 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P -324 17 +** +*** +** +#P -334 9 +.**** +****** +****.** +....** +#P -334 23 +..** +*....* +......* +*.....* +.****** +#P -335 17 +.* +** +*.* +#P -353 11 +.* +** +*.* +#P -341 -7 +*.* +.** +.* +#P -347 -1 +*.* +.** +.* +#P -353 5 +*.* +.** +.* +#P -359 11 +*.* +.** +.* +#P -371 5 +.* +** +*.* +#P -411 5 +.** +*.* +..* +#P -387 -50 +*..* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +*..* +#P -391 -47 +* +.** +*** +.** +* +#P -397 -54 +....** +****.** +****** +.**** +#P -399 -37 +..** +**.** +**** +.** +#P -401 -48 +...* +.**.** +.**.** +.*..* +...*.* +....** +**** +** +#P -406 -48 +..* +.**** +*...* +.* +#P -405 -59 +.** +**** +**.** +..** +#P -408 -38 +..* +*.* +.** +#P -414 -32 +..* +*.* +.** +#P -420 -26 +..* +*.* +.** +#P -426 -20 +..* +*.* +.** +#P -432 -14 +..* +*.* +.** +#P -438 -8 +..* +*.* +.** +#P -445 6 +...** +***.** +***** +.*** +#P -470 -20 +....** +****.** +****** +.**** +#P -478 -19 +...** +***.** +***** +.*** +#P -487 -18 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P -493 -16 +..* +**.* +*...* +**.* +..* +#P -501 -23 +....** +****.** +****** +.**** +#P -503 -17 +.....* +......* +.*..*** +*.* +*.***** +....*** +#P -502 -10 +..** +*....* +......* +*.....* +.****** +#P -514 -12 +.* +* +*** +#P -532 -6 +.* +* +*** +#P -494 11 +.**** +*...* +....* +*..* +. +*..* +....* +*...* +.**** +#P -498 14 +** +*** +** +#P -508 6 +.**** +****** +****.** +....** +#P -507 12 +.*.* +....** +.*** +*** +.*** +....** +...* +#P -508 20 +..** +*....* +......* +*.....* +.****** +#P -518 11 +.* +** +*.* +#P -536 5 +.* +** +*.* +#P -520 -1 +.* +*.* +*.* +.* +#P -554 -1 +.** +*** +*..*** +.*...* +#P -557 -5 +*** +..* +.* +#P -563 -11 +*** +..* +.* +#P -569 -17 +*** +..* +.* +#P -515 -54 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P -521 -50 +.*.* +*..** +.*.* +#P -529 -59 +.**** +****** +****.** +....** +#P -529 -53 +..* +....* +....* +*..** +* +*..** +.*..* +....* +#P -530 -43 +.****** +*.....* +......* +*....* +..** +#P -540 -47 +* +*.* +** +#P -558 -41 +* +*.* +** +#P -576 -35 +* +*.* +** +#P -594 -29 +* +*.* +** +#P -612 -23 +* +*.* +** +#P -630 -17 +* +*.* +** +#P -648 -11 +* +*.* +** +#P -533 -30 +..** +**.** +**** +.** +. +.** +**** +**.** +..** +#P -538 -28 +.* +..* +*..* +..* +.* +#P -547 -35 +....** +****.** +****** +.**** +#P -545 -29 +...* +.*.* +*..* +* +*..* +.*.* +...* +#P -548 -22 +..** +*....* +......* +*.....* +.****** +#P -557 -25 +.* +* +*** +#P -600 32 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P -605 35 +** +..* +..** +..* +** +#P -611 35 +..*** +.** +* +.** +..*** +#P -613 27 +.**** +*...* +....* +*..* +#P -611 44 +.****** +*.....* +......* +*....* +..** +#P -619 47 +*..* +....* +*...* +.**** +#P -624 37 +..**..*..* +..**** +.......* +*....*.* +....* +. +.*...* +..* +...*** +#P -616 30 +* +* +** +.* +*.* +#P -624 25 +.* +.** +*.* +#P -630 19 +.* +.** +*.* +#P -636 13 +.* +.** +*.* +#P -642 7 +.* +.** +*.* +#P -648 1 +.* +.** +*.* +#P -654 -5 +.* +.** +*.* +#P -659 -16 +.***** +*....* +.....* +*...* +..* +#P -684 10 +.****** +*.....* +......* +*....* +..** +#P -692 9 +.***** +*....* +.....* +*...* +..* +#P -697 -28 +*..* +....* +*...* +.**** +. +. +. +.**** +*...* +....* +*..* +#P -703 -24 +..*** +**.** +..*** +#P -711 -34 +..** +*....* +......* +*.....* +.****** +#P -711 -18 +.**** +****** +****.** +....** +#P -714 -24 +..* +** +.** +#P -732 -18 +..* +** +.** +#P -750 -12 +..* +** +.** +#P -700 1 +.** +**** +**.** +..** +. +. +. +..** +**.** +**** +.** +#P -704 4 +* +.* +.** +.* +* +#P -708 4 +.* +.* +* +.* +.* +#P -712 6 +** +** +.* +#P -716 5 +* +.* +* +#P -715 -4 +..** +*....* +......* +*.....* +.****** +#P -714 13 +....** +****.** +****** +.**** +#P -728 1 +** +*.* +* +#P -746 -5 +** +*.* +* +#P -782 -17 +** +*.* +* diff --git a/programs/demos/life2/lif/THUE.lif b/programs/demos/life2/lif/THUE.lif new file mode 100644 index 000000000..90478221c --- /dev/null +++ b/programs/demos/life2/lif/THUE.lif @@ -0,0 +1,104 @@ +#Life 1.05 +#D Thue generator +#D +#D Four puffers produce gliders, whose collisions produce four +#D lines of blinkers representing the transcendental number +#D .110110111110110111110110110..., where the n'th bit is 1 if n +#D is not divisible by 3 and is the complement of the (n/3)'th bit +#D if n is divisible by 3. +#D Built by Bill Gosper, in or before 1987 +#N +#P -26 -18 +.** +**.** +.**** +..** +. +. +....* +...** +..** +...** +. +. +. +. +.** +**.** +.**** +..** +#P -17 -19 +.* +* +*...* +**** +#P 0 -26 +..*.............* +.***...........*** +**.*.....*....**.* +***.....***...*** +.**.....*.**...** +#P 15 -17 +*** +*..* +* +* +.* +#P 21 0 +.** +**** +**.** +..** +. +. +. +. +** +.** +** +* +. +. +.** +**** +**.** +..** +#P 12 15 +.**** +*...* +....* +...* +#P -18 21 +.**...**.*.....** +.***...***.....*** +*.**....*.....*.** +***...........*** +.*.............* +#P -19 12 +..* +...* +...* +*..* +.*** +#P -8 -2 +.** +**.** +.**** +..** +#P -2 -8 +..* +.*** +**.* +*** +.** +#P 3 -2 +.** +**** +**.** +..** +#P -2 3 +.** +.*** +*.** +*** +.* diff --git a/programs/demos/life2/lif/TIRETRAK.lif b/programs/demos/life2/lif/TIRETRAK.lif new file mode 100644 index 000000000..7be3369ec --- /dev/null +++ b/programs/demos/life2/lif/TIRETRAK.lif @@ -0,0 +1,18 @@ +#Life 1.05 +#D Boat stretcher +#D Diagonal c/4 spaceship found by Tim Coe 2/20/96. +#D Noam Elkies noticed that it can stretch a boat. +#N +#P -13 -13 +**.*.......*** +*...*......* +*....*.......*.......** +..**.......*.*....**.* +....*.*....***.*..** +..........*...**..** +......**.****.** +.......******* +#P -2 -2 +.* +*.* +.* diff --git a/programs/demos/life2/lif/TIRETRAX.lif b/programs/demos/life2/lif/TIRETRAX.lif new file mode 100644 index 000000000..c9b777f9e --- /dev/null +++ b/programs/demos/life2/lif/TIRETRAX.lif @@ -0,0 +1,54 @@ +#Life 1.05 +#D Boat stretcher +#D By Hartmut Holzwart, 1993. +#D A speed c/4 diagonal spaceship +#D stretches these potential fuses. +#D In this example, a c/4 eater +#D found by Tim Coe (April 1996) +#D burns one of the wicks. +#D See also AQUA25B, STRETCH, +#D TIRETRAK. +#N +#P -5 -5 +..........* +.........** +.........*.*...* +.............** +..............*..* +............**.*..* +........***.**....* +.......*..*....* +......*....*....** +.**...*.....*.*.** +**....**.........* +..*.....*.........* +.....**..*......*** +...*.**...........*.* +...**....*.........* +..*..*.*............* +........**..* +....*...***.* +.....**....*** +..............* +.............** +#P 16 9 +* +.* +*.* +.*.* +..*.* +...*.* +....*.* +.....*.* +......* +.......* +#P 25 12 +......**.....*.*** +......*.*.**.*....** +......*.*.*..******* +.......***.......* +*.**..*...***....*** +..**..*...**.......* +.....***.........* +**....*.*........* +**.....*.*........** diff --git a/programs/demos/life2/lif/TRACK.lif b/programs/demos/life2/lif/TRACK.lif new file mode 100644 index 000000000..d0abd9821 --- /dev/null +++ b/programs/demos/life2/lif/TRACK.lif @@ -0,0 +1,1611 @@ +#Life 1.05 +#D p155 oscillator via B track +#D 20 B heptominoes travel around a track of length 3100 gens, +#D consisting of 20 64 gen turns and 28 65 gen turns. The turns use +#D the p5 oscillators "toaster" and "middleweight volcano". Four of +#D the toasters are 2-slicers rather than the usual 4-slicers, to +#D avoid destroying nearby eaters. Any period of the form 150+5n +#D (n>=0) can be obtained by using these components. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 4/20/92 +#N +#P -118 -95 +*..**..**..* +****.**.**** +. +..***..*** +.*..*..*..* +.**......** +....*..* +.****..**** +*..........* +.***.**.*** +...**..** +#P -121 -82 +** +.* +.*.* +..** +#P -116 -76 +** +** +#P -109 -80 +..** +.*..* +.*..* +**.** +.** +#P -105 -85 +** +** +#P -85 -95 +...* +.*** +* +** +#P -82 -91 +..** +..* +*.* +** +#P -79 -87 +..*..** +.*.*..* +.*.*.* +**.*.** +*..*...* +.*..***.* +*..**...* +.*..**** +*..* +**.*.***** +.*.*..*..* +.*..* +..** +#P -67 -82 +** +.* +.*.* +..** +#P -81 -68 +** +** +#P -99 -73 +** +** +#P -72 -63 +** +** +#P -75 -59 +...* +..****** +.*..**.** +**.*...** +.*.**** +....** +#P -78 -51 +** +** +#P -91 -50 +...****** +.***.**.*** +*....**....* +.****..**** +....*..* +.***....*** +.*..*..*..* +..***..*** +.....** +****.**.**** +*..******..* +#P -84 -58 +** +** +#P -89 -60 +** +** +#P -94 -56 +..** +.*.* +.* +** +#P -64 -96 +....**** +*..*....*..* +****....**** +. +..***..*** +.*..*..*..* +.****..**** +....*..* +.****..**** +*..........* +.***....*** +...*....* +....**** +#P -51 -85 +** +** +#P -44 -87 +..* +* +** +#P -40 -83 +*** +..* +**..* +#P -35 -84 +* +.** +..* +..* +.* +* +#P -62 -76 +** +** +#P -57 -78 +** +** +#P -49 -77 +* +*.* +** +#P -45 -73 +** +** +#P -54 -68 +** +** +#P -58 -43 +** +* +.*** +...* +#P -55 -47 +** +*.* +..* +..** +#P -52 -60 +..** +.*..* +.*.*..*..* +**.*.***** +*..* +***..*** +****....* +***..**.* +*..*...* +**.*.** +.*.*.* +.*.*..* +..*..** +#P -40 -56 +..** +.*.* +.* +** +#P -35 -60 +** +** +#P -30 -58 +** +** +#P -29 -63 +**.** +.*.* +..* +#P -37 -52 +.....** +....**** +...*.**.* +.***....*** +*...*..*...* +.****..**** +.....** +.**.****.** +.*...**...* +..***..*** +....*..* +****....**** +*..*.**.*..* +....**** +.....** +#P -24 -51 +** +** +#P -18 -63 +** +** +#P -31 -95 +...* +.*** +* +** +#P -28 -91 +..** +..* +*.* +** +#P -26 -87 +...*..** +..*.*..* +..*.*.* +.**.*.** +*...*...* +*....*.*.* +*...**...* +*....*.** +*...* +.**.*.***** +..*.*..*..* +..*..* +...** +#P -13 -82 +** +.* +.*.* +..** +#P -10 -97 +....*..* +. +*..*....*..* +****.**.**** +....*..* +..***..*** +.*........* +.**.*..*.** +. +.****..**** +*...*..*...* +.***.**.*** +...*....* +. +....*..* +#P 3 -85 +** +** +#P -4 -72 +.* +* +* +#P -9 -67 +..* +.*** +.*** +. +.**** +***** +**.* +#P -17 -50 +***** +**** +...** +.....** +#P -11 -55 +...* +.*** +** +** +...* +..* +..* +#P -7 -47 +** +** +#P -4 -43 +** +* +.*** +...* +#P -4 -51 +** +** +#P -1 -47 +** +*.* +..* +..** +#P 0 -60 +....** +...*..* +...*.*..*..* +..**.*.***** +.*..** +***...**.* +***..**.*.* +***...**..* +.*..**...* +..**.*.** +...*.*.* +...*.*..* +....*..** +#P 14 -56 +..** +.*.* +.* +** +#P 9 -73 +** +** +#P 11 -88 +.**...*** +*.......** +. +**.......* +..**.....* +.**.*...* +*....*** +.** +#P 23 -95 +...* +.*** +* +** +#P 26 -91 +..** +..* +*.* +** +#P 26 -87 +.....*..** +....*.*..* +....*.*.* +...**.*.** +.*...**...* +....**..**.* +*...*.*..*.* +....**..*** +.*...** +...**.*.***** +....*.*..*..* +....*..* +.....** +#P 20 -70 +*** +* +.* +#P 22 -66 +...** +***.* +*..** +.*** +..* +#P 17 -50 +...**..** +.***.**.*** +*..........* +.****..**** +....*..* +.**......** +.*..*..*..* +..***..*** +. +****.**.**** +*..**..**..* +#P 30 -51 +** +** +#P 36 -54 +.** +** +* +#P 36 -63 +** +** +#P 41 -60 +* +*.* +** +#P 41 -82 +** +.* +.*.* +..** +#P 44 -95 +*..******..* +****.**.**** +.....** +..***..*** +.*..*..*..* +.***....*** +....*..* +.****..**** +*....**....* +.***.**.*** +...****** +#P 53 -80 +..** +.*..* +.*..** +*..** +**** +#P 46 -76 +** +** +#P 57 -85 +** +** +#P 54 -68 +** +** +#P 53 -47 +** +*.* +..* +..** +#P 50 -43 +** +* +.*** +...* +#P 56 -60 +..** +.*..* +.*.*..*..* +**.*.***** +*..* +.*..**** +*..**...* +.*..***.* +*..*...* +**.*.** +.*.*.* +.*.*..* +..*..** +#P 68 -56 +..** +.*.* +.* +** +#P 63 -73 +** +** +#P 77 -95 +...* +.*** +* +** +#P 80 -91 +..** +..* +*.* +** +#P 83 -87 +..*..** +.*.*..* +.*.*.* +**.*.** +*..*...* +***..**.* +****....* +***..*** +*..* +**.*.***** +.*.*..*..* +.*..* +..** +#P 81 -68 +** +** +#P 73 -60 +** +** +#P 78 -58 +** +** +#P 71 -51 +....**** +...*....* +.***....*** +*..........* +.****..**** +....*..* +.****..**** +.*..*..*..* +..***..*** +. +****....**** +*..*....*..* +....**** +#P 90 -63 +** +** +#P 87 -59 +..**.** +..*....** +** +**.*....* +**.*..** +...*..* +#P 103 -63 +...* +.*** +* +** +#P 108 -60 +...*......** +..*.*.**..* +..*.*.*.*.* +.**.*.*.*.** +*...*****...* +*...........* +*...........* +*...*****...* +.**.*.*.*.** +..*.*.*.*.* +..*.*.**..* +...*......** +#P 108 -47 +** +** +#P 96 -41 +** +** +#P 109 -40 +** +** +#P 101 -32 +** +** +#P 106 -30 +** +** +#P 114 -32 +** +*.* +* +#P 118 -35 +** +** +#P 131 -35 +...* +.*** +* +** +#P 96 -28 +..** +.*.* +.* +** +#P 98 -23 +.....**** +....*....* +..***....*** +.*..........* +..****..**** +.....*..* +..****..**** +..*..*..*..* +...*.****.* +.*.**....**.* +*.*...**...*.* +.*..**..**..* +..**.*..*.** +#P 119 -22 +** +* +..* +#P 123 -26 +**..* +..* +*** +#P 128 -28 +* +.* +..* +..* +.** +* +#P 136 -32 +...*......** +..*.*.**..* +..*.*.*.*.* +.**.*.*.*.** +*...*****...* +*...........* +*...........* +*...*****...* +.**.*.*.*.** +..*.*.*.*.* +..*.*.**..* +...*......** +#P 136 -19 +** +** +#P 134 -13 +** +#P 124 -13 +** +** +#P 105 -8 +* +*** +...* +..** +#P 90 -5 +..**......* +...*..**.*.* +...*.*.*.*.* +..**.*...*.** +.*..**.*.**..* +***...***...*** +***...***...*** +.*..**.*.**..* +..**.*...*.** +...*.*.*.*.* +...*..**.*.* +..**......* +#P 111 -3 +** +** +#P 109 2 +** +** +#P 102 8 +** +** +#P 106 9 +....* +.***** +* +. +.*...* +..*** +#P 119 5 +** +** +#P 114 14 +** +** +#P 144 1 +** +*.* +..* +..** +#P 140 4 +** +* +.*** +...* +#P 127 6 +....***** +...*.....* +.***.....*** +*...........* +*.***.*.**** +.*...*** +...*.....**.* +..**.*.*.*.** +...*.*..* +...*..** +..** +#P 131 19 +...* +.*** +* +** +#P 135 22 +....*......** +...*.*.**..* +...*.*.*.*.* +..**.*...*.** +*...**.*.**...* +...*.......* +...*.......* +*...**.*.**...* +..**.*...*.** +...*.*.*.*.* +...*.*.**..* +....*......** +#P 127 24 +** +** +#P 129 29 +** +** +#P 136 35 +** +** +#P 119 32 +** +** +#P 124 41 +** +** +#P 130 40 +.** +** +..* +#P 132 44 +...** +**..* +*..* +.*** +#P 144 55 +** +*.* +..* +..** +#P 140 58 +** +* +.*** +...* +#P 127 58 +......* +....*...* +. +...*.....* +.***.***.*** +*...**.**...* +*.***.*.**** +.* +...*.*.*.**.* +..**.***.*.** +...*.*..* +...*..** +..** +#P 119 59 +** +** +#P 113 60 +.* +.** +*.* +#P 114 68 +** +** +#P 112 81 +** +*.* +..* +..** +#P 111 51 +** +** +#P 92 28 +..** +.*.* +.* +** +#P 96 31 +..** +...* +*** +* +#P 100 32 +.....*** +....***** +...*.***.* +.***.....*** +*...*...*...* +.****.*.***.* +.....***...* +*.**.*.*.* +**.*..*..** +....*..*.* +.....**..* +.........** +#P 105 46 +* +*** +...* +..** +#P 109 56 +** +** +#P 109 77 +** +** +#P 99 78 +..** +**.** +*..* +*..* +.** +#P 98 86 +** +** +#P 101 87 +...**..** +.***.**.*** +*..........* +.****..**** +....*..* +.**......** +.*..*..*..* +..***..*** +. +****.**.**** +*..**..**..* +#P 101 69 +** +** +#P 92 74 +** +** +#P 91 48 +..* +.*.*.....* +*.*..**.*.* +*..**.*.*.* +.*.*....*.** +**..**.**..* +..*.*.....* +..*.*.....* +**..**.**..* +.*.*....*.** +*..**.*.*.* +*.*..**.*.* +.*.*.....* +..* +#P 85 55 +..** +..* +*.* +** +#P 82 61 +** +** +#P 77 59 +** +** +#P 74 42 +*..******..* +****.**.**** +.....** +..***..*** +.*..*..*..* +.***....*** +....*..* +.****..**** +*....**....* +.***.**.*** +...****** +#P 74 69 +** +** +#P 76 94 +..** +...* +*** +* +#P 73 90 +..** +.*.* +.* +** +#P 64 77 +......** +.....*..* +*..*..*.* +*****.*.** +......*..* +..****..* +.*...**..* +.*.***..* +..*...*..* +...**.*.** +....*.*.* +...*..*.* +...**..* +#P 71 52 +** +** +#P 61 56 +...** +..****.* +**...*.** +**.**..* +.****** +.....* +#P 65 64 +** +** +#P 58 81 +** +*.* +..* +..** +#P 55 77 +** +** +#P 50 79 +** +** +#P 47 69 +** +** +#P 49 42 +* +*** +...* +..** +#P 46 46 +** +.* +.*.* +..** +#P 41 77 +.** +*.* +..* +#P 38 74 +** +** +#P 44 86 +** +** +#P 47 86 +....**** +...*....* +.***....*** +*..........* +.****..**** +....*..* +.****..**** +.*..*..*..* +..***..*** +. +****....**** +*..*....*..* +....**** +#P 37 50 +...**..* +...*..*.* +....*.*.* +...**.*.** +..*...*..* +.*.**..*** +.*....**** +..***..*** +......*..* +*****.*.** +*..*..*.* +.....*..* +......** +#P 36 87 +.** +..* +* +#P 32 83 +.** +* +*** +#P 27 81 +..* +.* +*..* +* +** +..* +#P 31 55 +..** +..* +*.* +** +#P 28 61 +** +** +#P 20 40 +.....** +....**** +*..*.**.*..* +****....**** +....*..* +..***..*** +.*...**...* +.**.****.** +.....** +.****..**** +*...*..*...* +.***....*** +...*.**.* +....**** +.....** +#P 23 59 +** +** +#P 19 63 +..* +.*.* +**.** +#P 22 94 +..** +...* +*** +* +#P 19 90 +..** +.*.* +.* +** +#P 10 77 +......** +.....*..* +*..*..*.* +*****.*.** +......*...* +..**.*....* +.*...**...* +.*.*.*....* +..*...*...* +...**.*.** +....*.*.* +...*..*.* +...**..* +#P 17 52 +** +** +#P 11 64 +** +** +#P 7 50 +** +.**** +***** +#P 2 49 +...** +. +.* +.* +* +..** +..** +*** +* +#P -1 63 +.*.** +***** +**** +. +.*** +.*** +..* +#P -3 72 +.* +.* +* +#P 4 81 +** +*.* +..* +..** +#P 0 48 +** +** +#P -5 42 +* +*** +...* +..** +#P -8 46 +** +.* +.*.* +..** +#P -3 52 +** +** +#P -7 85 +....*..* +. +...*....* +.***.**.*** +*...*..*...* +.****..**** +. +.**.*..*.** +.*........* +..***..*** +....*..* +****.**.**** +*..*....*..* +. +....*..* +#P -10 86 +** +** +#P -17 50 +...**..* +...*..*.* +....*.*.* +...**.*.** +..*...**..* +.*..**...*** +.*.*.**..*** +..*.**...*** +......**..* +*****.*.** +*..*..*.* +.....*..* +......** +#P -16 74 +** +** +#P -26 83 +.......** +..***....* +.*...*.** +*.....** +*.......** +. +**.......* +.***...** +#P -23 55 +..** +..* +*.* +** +#P -32 64 +..* +.*** +**..* +*.*** +** +#P -28 70 +.* +..* +*** +#P -32 94 +..** +...* +*** +* +#P -35 90 +..** +.*.* +.* +** +#P -44 77 +......** +.....*..* +*..*..*.* +*****.*.** +......**...* +..***..** +.*.*..*.*...* +.*.**..** +..*...**...* +...**.*.** +....*.*.* +...*..*.* +...**..* +#P -34 42 +*..**..**..* +****.**.**** +. +..***..*** +.*..*..*..* +.**......** +....*..* +.****..**** +*..........* +.***.**.*** +...**..** +#P -37 52 +** +** +#P -44 54 +..* +.** +** +#P -43 64 +** +** +#P -49 60 +.** +*.* +..* +#P -50 81 +** +*.* +..* +..** +#P -53 77 +** +** +#P -64 78 +..**** +.**..* +**..* +.*..* +..** +#P -61 87 +...****** +.***.**.*** +*....**....* +.****..**** +....*..* +.***....*** +.*..*..*..* +..***..*** +.....** +****.**.**** +*..******..* +#P -64 86 +** +** +#P -61 69 +** +** +#P -59 42 +* +*** +...* +..** +#P -62 46 +** +.* +.*.* +..** +#P -71 50 +...**..* +...*..*.* +....*.*.* +...**.*.** +..*...*..* +.*.***..* +.*...**..* +..****..* +......*..* +*****.*.** +*..*..*.* +.....*..* +......** +#P -70 74 +** +** +#P -77 55 +..** +..* +*.* +** +#P -80 61 +** +** +#P -85 59 +** +** +#P -86 94 +..** +...* +*** +* +#P -89 90 +..** +.*.* +.* +** +#P -98 77 +......** +.....*..* +*..*..*.* +*****.*.** +......*..* +..***..*** +.*....**** +.*.**..*** +..*...*..* +...**.*.** +....*.*.* +...*..*.* +...**..* +#P -88 69 +** +** +#P -88 41 +....**** +*..*....*..* +****....**** +. +..***..*** +.*..*..*..* +.****..**** +....*..* +.****..**** +*..........* +.***....*** +...*....* +....**** +#P -101 56 +..*..* +.**..*.** +*....*.** +.......** +**....* +..**.** +#P -97 64 +** +** +#P -112 62 +..** +...* +*** +* +#P -126 51 +.**......* +..*..**.*.* +..*.*.*.*.* +.**.*.*.*.** +*...*****...* +*...........* +*...........* +*...*****...* +.**.*.*.*.** +..*.*.*.*.* +..*..**.*.* +.**......* +#P -115 48 +** +** +#P -103 42 +** +** +#P -116 41 +** +** +#P -125 36 +** +** +#P -122 32 +..* +*.* +.** +#P -140 34 +..** +...* +*** +* +#P -154 23 +.**......* +..*..**.*.* +..*.*.*.*.* +.**.*.*.*.** +*...*****...* +*...........* +*...........* +*...*****...* +.**.*.*.*.** +..*.*.*.*.* +..*..**.*.* +.**......* +#P -136 25 +..* +** +* +*..* +.* +..* +#P -131 26 +*** +* +.** +#P -127 22 +* +..* +.** +#P -113 31 +** +** +#P -108 33 +** +** +#P -105 27 +..** +..* +*.* +** +#P -117 13 +..**.*..*.** +.*..**..**..* +*.*...**...*.* +.*.**....**.* +...*.****.* +..*..*..*..* +..****..**** +.....*..* +..****..**** +.*..........* +..***....*** +....*....* +.....**** +#P -141 15 +** +#P -143 20 +** +** +#P -131 14 +** +** +#P -114 7 +** +* +.*** +...* +#P -110 -4 +....*......** +...*.*.**..* +...*.*.*.*.* +..**.*...*.** +.*..**.*.**..* +***...***...*** +***...***...*** +.*..**.*.**..* +..**.*...*.** +...*.*.*.*.* +...*.*.**..* +....*......** +#P -118 4 +** +** +#P -116 -1 +** +** +#P -126 -4 +** +** +#P -153 -2 +** +.* +.*.* +..** +#P -149 -5 +* +*** +...* +..** +#P -145 -14 +.........** +.....**..* +....*..*.* +**.*.*.*.** +*.**.....* +.....***...* +.****.*.***.* +*...........* +.***.....*** +...*.....* +....***** +#P -117 -12 +.*** +*...* +. +.....* +***** +.* +#P -109 -7 +** +** +#P -121 -13 +** +** +#P -140 -20 +..** +...* +*** +* +#P -155 -31 +..**......* +...*..**.*.* +...*.*.*.*.* +..**.*...*.** +*...**.*.**...* +...*.......* +...*.......* +*...**.*.**...* +..**.*...*.** +...*.*.*.*.* +...*..**.*.* +..**......* +#P -136 -28 +** +** +#P -134 -23 +** +** +#P -143 -34 +** +** +#P -126 -31 +** +** +#P -101 -29 +..** +..* +*.* +** +#P -105 -32 +...* +.*** +* +** +#P -118 -41 +..** +...*..** +...*.*..* +..**..*..*.** +...*.*.*.**.* +.*...*** +*.***.*.**** +*...*...*...* +.***.....*** +...*.***.* +....***** +.....*** +#P -131 -40 +** +** +#P -138 -40 +* +.** +** +#P -142 -45 +.*** +.*..* +*..** +** +#P -114 -47 +** +* +.*** +...* +#P -118 -50 +** +** +#P -153 -56 +** +.* +.*.* +..** +#P -149 -59 +* +*** +...* +..** +#P -145 -68 +.........** +.....**..* +....*..*.* +**.*.***.** +*.**.*.*.* +...........* +.****.*.***.* +*...**.**...* +.***.***.*** +...*.....* +. +....*...* +......* +#P -126 -58 +** +** +#P -121 -60 +*.* +** +.* +#P -116 -55 +** +** +#P -121 -67 +** +** +#P -108 -59 +.........* +..*.....*.* +.*.*.**..*.* +.*.*.*.**..* +**.*....*.* +*..**.**..** +.*.....*.* +.*.....*.* +*..**.**..** +**.*....*.* +.*.*.*.**..* +.*.*.**..*.* +..*.....*.* +.........* +#P -108 -68 +** +** diff --git a/programs/demos/life2/lif/TUBTRAX.lif b/programs/demos/life2/lif/TUBTRAX.lif new file mode 100644 index 000000000..0e7484fd9 --- /dev/null +++ b/programs/demos/life2/lif/TUBTRAX.lif @@ -0,0 +1,136 @@ +#Life 1.05 +#D Superstring on tub tracks +#D by Tony Smithurst +#N +#P -2 -37 +.** +*..* +....* +*..* +.*** +..** +..** +...* +...* +...* +...* +...* +...* +...* +..** +..** +...* +...* +...* +...* +...* +...* +...* +..** +..** +...* +...* +...* +...* +...* +...* +...* +..** +..** +...* +...* +...* +...* +...* +...* +...* +..** +..** +...* +...* +...* +...* +...* +...* +...* +..** +..** +...* +...* +...* +...* +...* +...* +...* +..** +..** +...* +...* +...* +...* +...* +...* +...* +..** +..** +.*** +*..* +....* +*..* +.** +#P 4 -36 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +#P 84 -36 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +#P 164 -36 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +#P 244 -36 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +#P 324 -36 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +#P 404 -36 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +#P 484 -36 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +#P 4 34 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +#P 84 34 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +#P 164 34 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +#P 244 34 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +#P 324 34 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +#P 404 34 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +#P 484 34 +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* +*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.* +.*...*...*...*...*...*...*...*...*...*...*...*...*...*...*...* diff --git a/programs/demos/life2/lif/TWINDOTS.lif b/programs/demos/life2/lif/TWINDOTS.lif new file mode 100644 index 000000000..6534fdbe2 --- /dev/null +++ b/programs/demos/life2/lif/TWINDOTS.lif @@ -0,0 +1,82 @@ +#Life 1.05 +#D Twin Dot Agars +#D The one on left by Don Woods; +#D Dean Hickerson stabilized the +#D border, making it finite, and +#D introduced the second one. +#D See also LONEDOTS. +#N +#P -37 -18 +........*..**...*..**...*..** +........*.*.*...*.*.*...*.*.* +........*.......*.......* +..........*.......*.......* +........*.......*.......* +...........**......**......** +.......**......**......** +**...*....*..*....*..*....*..* +*....*....*..*....*..*....*..*.*.*** +.*.*...**......**......** +...........**......**......**...*.* +***.*.*..*....*..*....*..*....*....* +......*..*....*..*....*..*....*...** +...........**......**......** +.......**......**......** +**...*....*..*....*..*....*..* +*....*....*..*....*..*....*..*.*.*** +.*.*...**......**......** +...........**......**......**...*.* +***.*.*..*....*..*....*..*....*....* +......*..*....*..*....*..*....*...** +...........**......**......** +.......**......**......** +**...*....*..*....*..*....*..* +*....*....*..*....*..*....*..*.*.*** +.*.*...**......**......** +...........**......**......**...*.* +***.*.*..*....*..*....*..*....*....* +......*..*....*..*....*..*....*...** +...........**......**......** +.......**......**......** +...........*.......*.......* +.........*.......*.......* +...........*.......*.......* +.......*.*.*...*.*.*...*.*.* +.......**..*...**..*...**..* +#P 3 -18 +.........*.......*.......* +.........*.*.....*.*.....*.* +.......*.......*.......* +........*****...*****...***** +.......*.......*.......* +.........*.*.....*.*.....*.* +.......*...*...*...*...*...* +...*.....*...*...*...*...*...*.*.* +.*.*.**...*...*...*...*...*.....* +...*....*...*...*...*...*...*.*.*.** +**.*.*.*...*...*...*...*...*....* +...*.....*...*...*...*...*...**.*.* +..*.*.*...*...*...*...*...*.....* +........*...*...*...*...*...* +.......*...*...*...*...*...* +...*.....*...*...*...*...*...*.*.* +.*.*.**...*...*...*...*...*.....* +...*....*...*...*...*...*...*.*.*.** +**.*.*.*...*...*...*...*...*....* +...*.....*...*...*...*...*...**.*.* +..*.*.*...*...*...*...*...*.....* +........*...*...*...*...*...* +.......*...*...*...*...*...* +...*.....*...*...*...*...*...*.*.* +.*.*.**...*...*...*...*...*.....* +...*....*...*...*...*...*...*.*.*.** +**.*.*.*...*...*...*...*...*....* +...*.....*...*...*...*...*...**.*.* +..*.*.*...*...*...*...*...*.....* +........*...*...*...*...*...* +........*.*.....*.*.....*.* +............*.......*.......* +.......*****...*****...***** +............*.......*.......* +........*.*.....*.*.....*.* +..........*.......*.......* diff --git a/programs/demos/life2/lif/UNITCELL.lif b/programs/demos/life2/lif/UNITCELL.lif new file mode 100644 index 000000000..96bbd3875 --- /dev/null +++ b/programs/demos/life2/lif/UNITCELL.lif @@ -0,0 +1,2761 @@ +#Life 1.05 +#D p5760 Unit Life Cell in 500x500 +#D +#D A Unit Life Cell is an object which plays the Game of Life on a larger +#D scale. This entire pattern emulates the behavior of one Life cell. If +#D multiple copies of this pattern are placed on a grid, 500 units apart +#D in each direction, then one can play a meta-game of life. The existence +#D of one Unit Cell implies the existence of an infinite number of Unit +#D Cells, of period 5760^n and size 500^n x 500^n (here, n=1, of course). +#D +#D In practice, this cell is terribly slow, and would still be a just an +#D interesting curiosity even if it were fast. +#D +#D The state is determined by the presence or absence of a glider at every +#D multiple of 5760 generations, in a space in the upper left quadrant. +#D Two long boats point at this space. Long boats are also pointing at the +#D corners of the pattern, to aid alignment with other Unit Cells (if you +#D are running a powerful enough machine to view more than one of these). +#D +#D by David Bell, January 1996. +#N +#P -129 -130 +*** +..* +.* +#P -124 -126 +** +*.* +.*.* +..*.* +...* +#P -135 -137 +.* +*.* +.*.* +..*.* +...** +#P -249 -249 +** +*.* +.*.* +..* +#P 246 -249 +..** +.*.* +*.* +.* +#P -249 246 +..* +.*.* +*.* +** +#P 246 246 +.* +*.* +.*.* +..** +#P -116 -234 +...* +.*** +* +** +#P -121 -228 +...* +..*.* +.*...* +..*** +**...** +#P -118 -213 +** +** +#P -79 -233 +** +** +#P -74 -236 +...* +..*.* +**...* +**...* +**...* +..*.* +...* +#P -60 -238 +..** +..* +*.* +** +#P 25 -231 +** +** +#P 35 -234 +...* +..**** +.**.*.* +***.*..* +.**.*.* +..**** +...* +#P 44 -236 +..** +..* +*.* +** +#P -219 -181 +* +*** +...* +..** +#P -217 -175 +..*** +..*** +.*...* +*.....* +.*...* +..*** +#P -219 -162 +..** +...* +*** +* +#P -207 -153 +* +*** +...* +..** +#P -205 -143 +**...** +...* +*.....* +.**.** +..*.* +...* +...* +#P -203 -132 +** +** +#P -111 -157 +** +.* +.*.* +..** +#P -101 -155 +...* +..** +.** +*** +.** +..** +...* +#P -94 -153 +** +**..** +**..** +#P -26 -178 +** +** +#P -20 -180 +....* +..*.* +** +** +** +..*.* +....* +#P -7 -175 +** +*.* +..* +..** +#P -45 -167 +** +** +#P -37 -170 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P -30 -172 +.......* +......*.* +....**...* +..**.*...* +.***.*...* +*..**.*.* +.**....* +#P -13 -167 +** +*.* +..* +..** +#P -48 -154 +** +** +#P -37 -156 +* +*.* +...** +...** +...** +*.* +* +#P -27 -154 +....** +....** +.** +*** +.** +....** +....** +#P -16 -149 +** +*.* +..* +..** +#P -27 -158 +.** +*.* +..* +#P -48 -140 +** +** +#P -44 -143 +....** +..*...* +.*.....* +**.*...* +.*.....* +..*...* +....** +#P -23 -145 +* +*.* +...** +...** +...** +*.* +* +#P -16 -140 +** +*.* +..* +..** +#P -51 -127 +** +** +#P -45 -129 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -36 -128 +.** +***.** +*...* +*.* +** +#P -28 -127 +** +*.* +...* +*..* +...* +*.* +** +#P -19 -122 +** +*.* +..* +..** +#P -27 -134 +.** +*.* +..* +#P -51 -113 +** +** +#P -39 -116 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P -31 -118 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -19 -113 +** +*.* +..* +..** +#P -27 -108 +** +** +#P -54 -104 +** +.* +.*.* +..** +#P -45 -102 +** +*..* +....* +....* +....* +*..* +** +#P -22 -102 +..* +*.* +.** +#P -30 -100 +...* +..**** +.**.*.* +***.*..* +.**.*.** +..****.*** +...*....*.* +..........* +..........** +#P -34 -102 +*** +..* +.* +#P -29 -140 +.* +..* +*** +#P -22 -132 +..* +*.* +.** +#P -7 -117 +..* +*.* +.** +#P 8 -102 +..* +*.* +.** +#P -22 -162 +..* +*.* +.** +#P -7 -147 +..* +*.* +.** +#P 8 -132 +..* +*.* +.** +#P 23 -117 +..* +*.* +.** +#P 38 -102 +..* +*.* +.** +#P 13 -176 +** +** +#P 10 -165 +**...** +. +.*...* +..*** +..*** +#P 8 -155 +...* +..*** +..*** +. +**...** +**...** +#P 13 -144 +** +* +.*** +...* +#P 18 -152 +** +** +#P 22 -179 +* +*** +...* +..** +#P 24 -170 +**.*.** +*.....* +.*...* +..*** +#P 26 -153 +.***** +*.***.* +.*...* +..*** +...* +#P 31 -147 +** +* +.*** +...* +#P 24 -160 +.* +* +*** +#P 23 -147 +..* +*.* +.** +#P 38 -132 +..* +*.* +.** +#P 53 -117 +..* +*.* +.** +#P 68 -102 +..* +*.* +.** +#P 53 -179 +* +*** +...* +..** +#P 55 -173 +..*** +..*** +.*...* +. +**...** +#P 60 -160 +** +* +.*** +...* +#P 117 -209 +** +** +#P 115 -203 +..*** +..*** +.*...* +. +**...** +#P 120 -190 +** +* +.*** +...* +#P 134 -225 +** +** +#P 131 -215 +..*** +.*...* +*.....* +*.....* +...* +.*...* +..*** +...* +#P 129 -206 +..** +...* +*** +* +#P 129 -193 +..** +.*.* +.* +** +#P 137 -198 +...** +.*..* +* +* +* +.*..* +...** +#P 144 -199 +.*** +*..*.* +** +..* +.....** +...* +...** +.*.* +.*** +#P 153 -200 +*.* +*...* +....* +*....* +....* +*...* +*.* +#P 163 -197 +** +** +#P 138 -179 +..** +.*.* +.* +** +#P 144 -184 +....* +..*.* +** +** +** +..*.* +....* +#P 162 -186 +..** +.*...* +*.....* +*...*.** +*.....* +.*...* +..** +#P 172 -184 +** +** +#P 152 -185 +*** +* +.* +#P 221 -213 +** +** +#P 219 -201 +.***** +*.***.* +.*...* +..*** +...* +#P 221 -193 +...* +...* +..*.* +.**.** +*.....* +...* +**...** +#P 217 -191 +* +*.* +** +#P 224 -177 +...* +..*** +.***** +*.*.*.* +**...** +#P 223 -170 +.** +.** +* +*** +....* +***** +..** +#P 222 -161 +**...** +.***** +.**.** +.**.** +..*** +#P 224 -151 +** +** +#P 214 -177 +....* +...** +.*...* +*.** +*.* +#P 215 -170 +** +** +#P 205 -173 +..** +.*.* +.* +** +#P 203 -167 +** +** +#P 200 -159 +...* +..*** +.***** +*.*.*.* +**...** +#P 205 -149 +** +* +.*** +...* +#P 194 -169 +.* +* +*** +#P 192 -164 +*** +#P 187 -186 +** +** +#P 185 -176 +**.*.** +. +*.....* +. +.**.** +...* +#P 180 -168 +** +** +...** +...*** +...** +** +** +#P 171 -167 +..*** +.***** +*.*...* +**...* +#P 163 -163 +** +.* +.*.* +..** +#P 174 -161 +* +*.* +...** +...** +...** +*.* +* +#P 183 -159 +** +** +#P 202 -143 +** +** +#P 191 -146 +* +** +.** +.*** +.** +** +* +#P 186 -144 +** +** +** +#P 180 -149 +.** +*.* +.* +#P 179 -142 +...* +..*** +.*...* +*.***.* +.***** +#P 181 -127 +** +** +#P 174 -139 +.** +.** +. +.* +*.* +*.* +.* +#P 172 -130 +**.*.** +*.....* +.*...* +..*** +#P 177 -121 +** +* +.*** +...* +#P 159 -158 +** +** +#P 157 -151 +..*** +.**.** +.**.** +.***** +**...** +#P 161 -143 +* +* +.* +. +* +* +#P 164 -137 +.** +*.* +.* +#P 151 -140 +...** +.*..* +* +* +* +.*..* +...** +#P 143 -137 +** +** +#P 171 -102 +** +.* +.*.* +..** +#P 177 -100 +....* +..*.* +** +** +** +..*.* +....* +#P 195 -98 +..** +.*...* +*.....* +*...*.** +*.....* +.*...* +..** +#P 205 -95 +** +** +#P 185 -95 +.* +* +*** +#P 202 -82 +** +** +#P 189 -84 +....* +.**** +**** +*..* +**** +.**** +....* +#P 177 -82 +** +*.* +.*** +..*** +.*** +*.* +** +#P 168 -80 +***.** +****..* +....** +#P 178 -87 +** +** +#P 144 -95 +..** +...* +*** +* +#P 146 -104 +**...** +**...** +.***** +..*.* +. +..*** +#P 134 -112 +....* +..*.* +** +** +** +..*.* +....* +#P 128 -107 +..** +.*.* +.* +** +#P 130 -120 +..*....* +**.****.** +..*....* +#P 152 -88 +.**** +*...* +....* +*..* +#P 122 -88 +.**** +*...* +....* +*..* +#P 92 -88 +.**** +*...* +....* +*..* +#P 62 -88 +.**** +*...* +....* +*..* +#P 32 -88 +.**** +*...* +....* +*..* +#P 2 -88 +.**** +*...* +....* +*..* +#P -28 -88 +.**** +*...* +....* +*..* +#P -58 -88 +.**** +*...* +....* +*..* +#P -88 -88 +.**** +*...* +....* +*..* +#P 86 -111 +** +.* +.*.* +..** +#P 92 -109 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 107 -106 +** +** +#P -225 -96 +.** +*..* +*..* +*..* +.** +#P -217 -96 +.** +*..* +*..* +*..* +.** +#P -214 -81 +..** +...* +*** +* +#P -125 -100 +** +** +#P -121 -103 +....* +..**** +.*.*.** +*..*.*** +.*.*.** +..**** +....* +#P -110 -101 +* +..**.* +.****.* +.**..** +#P -101 -105 +*.* +*...* +....* +*....* +....* +*...* +*.* +#P -90 -108 +....** +....** +.** +*** +.** +....** +....** +#P -82 -103 +** +*..** +.**** +..* +#P -77 -106 +* +* +* +#P -72 -106 +* +*.* +...** +...** +...** +*.* +* +#P -65 -101 +** +*.* +..* +..** +#P -81 -97 +.**.........** +*..*..***..*..* +***..*****..*** +...********* +..*.........* +..**.......** +#P -89 -96 +*.* +** +.* +#P -99 -92 +*.* +.** +.* +#P -113 -86 +** +.* +.*.* +..** +#P -108 -84 +...* +..*.* +**...* +**...* +**...* +..*.* +...* +#P -98 -84 +..*..* +.....* +.**...* +*.*.** +. +** +#P -89 -82 +* +**** +.**** +.*..* +.**** +**** +* +#P -79 -80 +** +** +#P -65 -75 +** +** +#P -60 -78 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -51 -77 +*** +. +..*..** +..*...* +..*..* +....** +#P -42 -80 +** +*** +..**.* +..*..* +..**.* +*** +** +#P -33 -82 +..** +..* +*.* +** +#P -27 -79 +*** +..* +.* +#P -62 -63 +.* +*...** +*.....* +.***** +#P -53 -64 +** +*..* +....* +....* +....* +*..* +** +#P -38 -64 +..........** +..........* +...*....*.* +..****.*** +.**.*.** +***.*..* +.**.*.* +..**** +...* +#P -42 -64 +*** +..* +.* +#P -62 -48 +** +** +#P -52 -51 +...* +..**** +.**.*.* +***.*..* +.**.*.* +..**** +...* +#P -42 -53 +...*.* +.*...* +.* +*....* +.* +.*...* +...*.* +#P -30 -55 +..** +..* +*.* +** +#P -40 -44 +..* +*.* +.** +#P -59 -39 +** +.* +.*.* +..** +#P -53 -37 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -44 -36 +.** +***.** +*...* +*.* +** +#P -36 -35 +** +*.* +...* +*..* +...* +*.* +** +#P -27 -37 +..** +..* +*.* +** +#P -35 -40 +** +** +#P -27 -49 +*** +..* +.* +#P -12 -64 +*** +..* +.* +#P 3 -79 +*** +..* +.* +#P -59 -26 +** +.* +.*.* +..** +#P -50 -24 +** +*.* +...* +*..* +...* +*.* +** +#P -33 -26 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P -27 -28 +..** +..* +*.* +** +#P -40 -20 +..* +*.* +.** +#P -56 -8 +** +** +#P -45 -10 +* +*.* +...** +...** +...** +*.* +* +#P -35 -8 +....** +....** +.** +*** +.** +....** +....** +#P -24 -10 +..** +..* +*.* +** +#P -32 -13 +** +** +#P -27 -19 +*** +..* +.* +#P -12 -34 +*** +..* +.* +#P 3 -49 +*** +..* +.* +#P 18 -64 +*** +..* +.* +#P 33 -79 +*** +..* +.* +#P -7 -31 +** +.* +.*.* +..** +#P -1 -29 +...*.* +.*...* +.* +*....* +.* +.*...* +...*.* +#P 7 -28 +...*** +.*.*..* +.....** +. +*** +#P 16 -27 +** +*..* +....* +....* +....* +*..* +** +#P 26 -24 +...* +..*.* +**...* +**...* +**...* +..*.* +...* +#P 43 -26 +...** +..*.* +.*** +*** +.*** +..*.* +...** +#P 53 -21 +** +*.* +..* +..** +#P 34 -26 +.** +** +..* +#P 26 -34 +*** +*.** +**** +#P 24 -37 +** +*** +#P 18 -34 +*** +..* +.* +#P 33 -49 +*** +..* +.* +#P 48 -64 +*** +..* +.* +#P 63 -79 +*** +..* +.* +#P 210 -22 +** +** +#P 219 -24 +..** +.*.* +* +*..* +* +.*.* +..** +#P 225 -26 +......** +......* +....*.* +...*** +.*** +*..* +.** +#P 218 12 +** +.* +.*.* +..** +#P 228 14 +* +**** +.**** +.*..* +.**** +**** +* +#P 237 12 +..** +..* +*.* +** +#P 182 4 +...* +.*** +* +** +#P 177 11 +...* +.**.** +. +*.....* +. +**.*.** +#P 175 23 +..** +...* +*** +* +#P 156 8 +...* +.*** +* +** +#P 151 19 +**...** +.***** +.**.** +.**.** +..*** +#P 149 27 +..** +...* +*** +* +#P 86 -13 +* +*** +...* +..** +#P 88 -4 +**...** +...* +*.....* +.**.** +..*.* +...* +...* +#P 97 1 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P 109 6 +** +*.* +..* +..** +#P 100 10 +...* +.*** +* +** +#P 95 15 +...* +..*.* +.*...* +.***** +**...** +.***** +..*** +...* +#P 93 29 +..** +...* +*** +* +#P 17 34 +..** +..* +*.* +** +#P 7 36 +** +*..* +....* +....* +....* +*..* +** +#P -3 34 +** +.* +.*.* +..** +#P -28 9 +..** +..* +*.* +** +#P -39 11 +...** +.*..* +* +* +* +.*..* +...** +#P -47 9 +** +.* +.*.* +..** +#P -163 -76 +** +** +#P -159 -79 +....** +..*...* +.*.....* +**.*...* +.*.....* +..*...* +....** +#P -142 -77 +....** +....** +.** +*** +.** +....** +....** +#P -131 -72 +** +*.* +..* +..** +#P -150 -72 +*.* +** +.* +#P -160 -56 +..** +.*.* +.* +** +#P -154 -61 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -145 -63 +.** +**** +*..*** +** +....* +.....* +.....* +#P -134 -63 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P -126 -60 +** +** +#P -165 -57 +*.* +** +.* +#P -180 -42 +*.* +** +.* +#P -187 -57 +.....* +***.**..** +****....** +....** +#P -230 -44 +....* +**..**.*** +**....**** +....** +#P -236 -40 +** +** +#P -239 -33 +..*** +.**.** +.**.** +.***** +**...** +#P -236 -26 +...* +..*.** +..* +. +..**.* +*..* +*.* +#P -237 -15 +..*** +.*...* +*.....* +.*...* +..*** +..*** +#P -234 -6 +** +** +#P -229 -30 +** +. +*..* +....* +..* +#P -219 -40 +*** +..* +.* +#P -216 -37 +...* +.*** +* +** +#P -222 -27 +...*** +..*...* +.*.....* +.*.....* +. +.* +.** +.** +**..* +.*.* +..** +#P -223 -14 +**...** +**...** +. +..*** +..*** +...* +#P -221 -3 +** +** +#P -210 -29 +*..*.**.*..* +****.**.**** +*..*.**.*..* +#P -194 -42 +* +*** +...* +..** +#P -183 -32 +* +*** +...* +..** +#P -181 -22 +..*** +.*...* +*.....* +*.....* +#P -178 -17 +...* +..** +..** +*..** +.*.* +.** +#P -179 -9 +**...** +**...** +. +..*** +..*** +...* +#P -181 0 +..** +...* +*** +* +#P -186 8 +** +** +#P -174 6 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P -166 8 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -154 6 +..** +..* +*.* +** +#P -164 4 +*** +..* +.* +#P -157 -4 +.** +*.* +..* +#P -149 -11 +*** +..* +.* +#P -142 -19 +.** +*.* +..* +#P -133 -28 +..** +..* +*.* +** +#P -165 -35 +* +*** +...* +..** +#P -163 -28 +..*** +.**.** +.**.** +.***** +**...** +#P -165 -21 +..* +**.* +...* +. +*.** +..*..* +...*.* +#P -165 -10 +..*** +.*...* +*.....* +.*...* +..*** +..*** +#P -167 -3 +..** +...* +*** +* +#P -171 -23 +.** +*.* +..* +#P -171 -28 +** +*.* +* +#P -186 -43 +** +*.* +* +#P -13 87 +** +** +#P -16 92 +...* +..*** +.*...* +*.***.* +.***** +#P -18 110 +..*** +.*...* +*.....* +**.*.** +#P -20 119 +..** +...* +*** +* +#P -18 101 +*** +* +.* +#P -25 93 +** +*.* +* +#P -33 86 +*** +* +.* +#P -40 78 +** +*.* +* +#P -46 68 +.* +** +** +#P -38 92 +** +** +#P -34 75 +* +*** +...* +..** +#P -32 68 +.***** +*.....* +.**...* +.....* +#P -39 66 +...** +.*..* +* +* +* +.*..* +...** +#P -51 97 +** +* +.*** +...* +#P -56 85 +..*** +.**.** +.**.** +.***** +**...** +#P -58 78 +* +*** +...* +..** +#P -61 68 +........* +......**** +.....*.*.** +....*..*.*** +....**.*.** +..***.**** +.*.*....* +.* +** +#P -71 62 +....*** +...*...* +..*.....* +..*.....* +.....* +...*...* +......* +..*..* +..* +...* +*** +* +#P -34 52 +..** +..* +*.* +** +#P -46 54 +....*.* +...*..* +..** +**...* +..** +...*..* +....*.* +#P -53 48 +**...** +.***** +.**.** +.**.** +..*** +#P -48 38 +...* +.*** +* +** +#P -87 90 +..** +...* +*** +* +#P -85 80 +**...** +.***** +..*** +...* +#P -87 71 +* +*** +...* +..** +#P -85 51 +........* +......**** +.....*.*.** +....*..*.*** +....**.*.** +..***.**** +.*.*....* +.* +** +#P -63 31 +..........** +..........* +...*....*.* +..****.*** +.**.*.** +***.*..* +.**.*.* +..**** +...* +#P -90 39 +..*** +.*...* +. +*.....* +**...** +#P -92 49 +..** +...* +*** +* +#P -74 17 +........* +......*** +.....* +......* +...*..* +..* +.*...* +...* +*.....* +*.....* +.*...* +..*** +#P -97 30 +** +*.* +.*** +..*** +.*** +*.* +** +#P -106 35 +..** +.*.* +.* +** +#P -82 12 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P -76 10 +..** +..* +*.* +** +#P -111 22 +.***** +*.***.* +.*...* +..*** +...* +#P -113 28 +..** +...* +*** +* +#P -95 1 +..*** +..*** +.*...* +*.....* +.*...* +..*** +#P -90 -4 +...* +.*** +* +** +#P -122 9 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P -127 14 +..** +.*.* +.* +** +#P -106 -9 +** +*.* +...* +*..* +...* +*.* +** +#P -97 -11 +..** +..* +*.* +** +#P -132 -2 +**...** +...* +*.....* +.**.** +..*.* +...* +...* +#P -134 7 +..** +...* +*** +* +#P -133 -9 +*** +.*.** +.*.** +..*.* +#P -141 -12 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P -148 -7 +..** +.*.* +.* +** +#P -114 -10 +.* +*.** +* +.*..* +.....* +...** +#P -116 -17 +...* +..*** +.***** +*.*.*.* +**...** +#P -111 -25 +...* +.*** +* +** +#P -92 -48 +...* +.*** +* +** +#P -97 -35 +.***** +*.***.* +.*...* +..*** +...* +#P -95 -27 +** +** +#P -63 -35 +...* +.*** +* +** +#P -68 -26 +..*** +.*...* +. +*.....* +**...** +#P -67 -19 +..* +.*.* +.*.* +...* +...* +*..* +.** +#P -79 4 +** +** +#P -69 1 +*.* +*...* +....* +*....* +....* +*...* +*.* +#P -60 -1 +..** +..* +*.* +** +#P -149 55 +** +** +#P -144 52 +...* +..*.* +.*.** +**.** +.*.** +..*.* +...* +#P -133 52 +..** +.**** +*.*.* +.**.** +.**.* +..** +*** +..* +* +.** +#P -126 54 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -117 59 +** +*.* +..* +..** +#P -158 68 +***.** +****..* +....** +#P -149 66 +** +*.* +.*** +..*** +.*** +*.* +** +#P -133 68 +..* +.*.* +*...** +*...** +*...** +.*.* +..* +#P -126 73 +** +*.* +..* +..** +#P -138 66 +** +.** +* +#P -229 83 +* +*** +...* +..** +#P -227 92 +**...** +*.....* +. +.*...* +..*** +#P -225 103 +...* +.**.** +. +*.....* +. +**.*.** +#P -222 117 +** +** +#P -219 95 +** +.** +* +#P -215 74 +* +*** +...* +..** +#P -213 79 +..*** +..*** +.*...* +*.....* +.*...* +..*** +#P -211 96 +...* +..*** +.***** +*.*.*.* +**...** +#P -209 103 +.* +*.* +*.* +.* +** +** +** +#P -209 89 +**.* +.** +#P -199 117 +** +.* +.*.* +..** +#P -189 119 +..** +.*.* +* +*..* +* +.*.* +..** +#P -183 121 +.** +*..*.** +.**..** +#P -180 146 +..** +.*.* +.* +** +#P -170 141 +** +*** +..**.* +..*..* +..**.* +*** +** +#P -159 143 +** +** +#P -183 164 +** +** +#P -186 174 +..*** +.*...* +*.....* +*.....* +...* +.*...* +..*** +...* +#P -188 184 +..*** +..*** +.*...* +. +**...** +#P -179 187 +*.* +.** +.* +#P -183 196 +** +* +.*** +...* +#P -170 161 +** +** +#P -172 170 +**...** +...* +*.....* +.**.** +..*.* +...* +...* +#P -170 184 +..*** +.*...* +*.....* +**.*.** +#P -165 193 +** +* +.*** +...* +#P -173 182 +*.* +** +.* +#P -177 202 +.*..** +*...**..** +*.......** +.**** +#P -166 207 +..** +.*.* +.* +** +#P -156 202 +*.* +*..* +...** +.*...** +...** +*..* +*.* +#P -147 207 +** +*.* +..* +..** +#P -163 170 +* +*** +...* +..** +#P -161 179 +..*** +.*...* +*.....* +**.*.** +#P -159 185 +.* +*.* +*.* +.* +. +** +** +#P -158 166 +** +** +#P -154 164 +....** +..*...* +.*.....* +**.*...* +.*.....* +..*...* +....** +#P -142 150 +* +*** +...* +..** +#P -140 155 +...* +..*.* +.*...* +..*** +**...** +#P -136 172 +** +** +#P -121 184 +** +*.* +..* +..** +#P -129 179 +*.* +*...* +....* +*....* +....* +*...* +*.* +#P -127 188 +** +** +#P -139 182 +** +** +#P -138 186 +** +*..* +....* +....* +....* +*..* +** +#P -148 187 +.** +*** +.*.** +. +....* +#P -146 199 +**...** +.***** +.**.** +.**.** +..*** +#P -141 207 +** +* +.*** +...* +#P -51 221 +** +** +#P -41 218 +* +**** +.**** +.*..* +.**** +**** +* +#P -32 223 +** +*.* +..* +..** +#P 16 102 +** +** +#P 22 99 +...*.* +.*...* +.* +*....* +.* +.*...* +...*.* +#P 35 104 +** +*.* +..* +..** +#P 2 115 +..** +.*.* +.* +** +#P 13 110 +..* +.*.* +*...** +*...** +*...** +.*.* +..* +#P 21 108 +..** +..* +*.* +** +#P 17 131 +** +** +#P 27 128 +* +**** +.**** +.*..* +.**** +**** +* +#P 36 133 +** +*.* +..* +..** +#P 64 128 +** +** +#P 74 125 +* +**** +.**** +.*..* +.**** +**** +* +#P 83 130 +** +*.* +..* +..** +#P 43 192 +...* +.*** +* +** +#P 38 199 +..*** +.**.** +.**.** +.***** +**...** +#P 36 205 +..** +...** +**.** +. +.......** +*........* +..**.*.* +#P 36 217 +..*** +.*...* +*.....* +.*...* +..*** +..*** +#P 41 224 +** +* +.*** +...* +#P 52 201 +........* +......*** +.....* +.....** +...*** +..*.* +.*...* +.***** +**...** +.***** +..*** +...* +#P 50 223 +..*** +.*...* +. +*.....* +**...** +#P 51 230 +..* +.*.* +.*.* +...* +...* +*..* +.** +#P 50 214 +** +*.* +* +#P 135 132 +** +** +#P 133 141 +**...** +...* +*.....* +.**.** +..*.* +...* +...* +#P 141 146 +....* +..*.* +.*.* +*..* +.*.* +..*.* +....* +#P 156 148 +** +** +#P 117 166 +..** +.*.* +.* +** +#P 126 161 +** +** +...** +...*** +...** +** +** +#P 137 164 +** +** +#P 154 157 +..*** +..*** +.*...* +*.....* +.*...* +..*** +#P 159 152 +...* +.*** +* +** +#P 129 168 +....** +..*...* +.*.....* +**.*...* +.*.....* +..*...* +....** +#P 125 170 +** +** +#P 157 172 +** +** +#P 161 167 +..*** +.**.** +.**.** +.***** +**...** +#P 163 160 +** +** +#P 139 179 +..*** +.*...* +. +*.....* +**...** +#P 140 186 +..* +.*.* +.*.* +...* +...* +*..* +.** +#P 176 174 +.* +*.* +**.* +**.** +**.* +*.* +.* +#P 184 176 +** +** +#P 145 194 +..** +.*.* +.* +** +#P 152 189 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P 160 189 +...* +.*...* +.* +*.....* +.....** +#P 169 186 +** +*.* +* +#P 169 194 +* +*** +...* +..** +#P 149 213 +** +** +#P 161 211 +* +*.* +.*.* +.*..* +.*.* +*.* +* +#P 170 213 +....** +...*** +*.** +*..* +*.** +...*** +....** +#P 178 215 +.** +*..* +.** +#P 183 210 +....* +..*.* +** +** +** +..*.* +....* +#P 201 208 +..** +.*...* +*.....* +*...*.** +*.....* +.*...* +..** +#P 211 210 +** +** +#P 168 203 +....** +**..** +** +#P 171 209 +** +.** +* +#P 191 209 +*** +* +.* +#P 162 181 +.* +*.* +.** +#P 146 169 +.* +*.* +.** +#P 134 153 +.* +*.* +.** +#P 157 -185 +* +#P -32 -138 +* +#P 190 -93 +* +#P 198 -80 +* +* +#P -108 12 +* +.* +.* +#P -93 14 +** +#P -32 14 +* +.** +#P 2 39 +..* +** +#P -81 76 +* +* +#P -168 165 +.* +* +* +#P -145 193 +* +.* +.* +#P -46 219 +* +* +#P 22 129 +* +* +#P 69 126 +* +* +#P 137 136 +.* +* +* +#P 196 209 +* diff --git a/programs/demos/life2/lif/VENETIA2.lif b/programs/demos/life2/lif/VENETIA2.lif new file mode 100644 index 000000000..8531685e8 --- /dev/null +++ b/programs/demos/life2/lif/VENETIA2.lif @@ -0,0 +1,85 @@ +#Life 1.05 +#D Venetian blinds based on emulators +#D +#D See VENETIAN, OSCSP4X. +#N +#P -4 -20 +**..**..** +**..**..** +#P -12 -17 +..**.* +..* +...** +***..*************** +*..* +..* +*.** +**...*************** +...** +*** +*..*.* +..* +*.**.* +** +...** +***..*************** +*..* +..* +*.** +**...*************** +...** +*** +*..*.* +..* +*.**.* +** +...** +***..*************** +*..* +..* +*.** +**...*************** +...** +*** +*..*.* +.** +#P 8 -17 +*.** +...* +.** +*..*** +..*..* +...* +..**.* +*...** +.** +...*** +*.*..* +...* +*.**.* +....** +.** +*..*** +..*..* +...* +..**.* +*...** +.** +...*** +*.*..* +...* +*.**.* +....** +.** +*..*** +..*..* +...* +..**.* +*...** +.** +...*** +*.*..* +...** +#P -4 19 +**..**..** +**..**..** diff --git a/programs/demos/life2/lif/VENETIA3.lif b/programs/demos/life2/lif/VENETIA3.lif new file mode 100644 index 000000000..a098377d6 --- /dev/null +++ b/programs/demos/life2/lif/VENETIA3.lif @@ -0,0 +1,38 @@ +#Life 1.05 +#D Vertical venetian blinds +#D Dean Hickerson (dean@ucdmath.ucdavis.edu) +#D See VENETIAN. +#N +#P -26 -16 +......**......**....................**..**..**.** +.......*.....*..*......*.......*...*.*..*..*.*.*.*.** +.....*......*..*..*.*.*.*.*.*.*.*.*...**..**..*..**.* +....*.****..*.**.**.**.*.**.**.*.**.**..**...**.* +..***.....*.*..*...*...*...*...*...*..**..**.*.*..** +.*...**..**..**..**..**..**..**..**..**..**....*.**.* +.*.*.*....**..**..**..**..**..**..**..**..**..**....* +..**.*.*.**..**..**..**..**..**..**..**..**..*...*** +....*.**..**..**..**..**..**..**..**..**..**..*** +..**..*..**..**..**..**..**..**..**..**..**..**...** +...*.***..**..**..**..**..**..**..**..**..**...*...* +.*...*...**..**..**..**..**..**..**..**..**..***.* +.**...**..**..**..**..**..**..**..**..**..**..*..** +....***..**..**..**..**..**..**..**..**..**..**.* +.***...*..**..**..**..**..**..**..**..**..**.*.*.*.* +*....**..**..**..**..**..**..**..**..**..**....*.**.* +*.**.*....**..**..**..**..**..**..**..**..**..**....* +.*.*.*.*.**..**..**..**..**..**..**..**..**..*...*** +....*.**..**..**..**..**..**..**..**..**..**..*** +..**..*..**..**..**..**..**..**..**..**..**..**...** +...*.***..**..**..**..**..**..**..**..**..**...*...* +.*...*...**..**..**..**..**..**..**..**..**..***.* +.**...**..**..**..**..**..**..**..**..**..**..*..** +....***..**..**..**..**..**..**..**..**..**..**.* +.***...*..**..**..**..**..**..**..**..**..**.*.*.** +*....**..**..**..**..**..**..**..**..**..**....*.*.* +*.**.*....**..**..**..**..**..**..**..**..**..**...* +.**..*.*.**..**..*...*...*...*...*...*..*.*.....*** +....*.**...**..**.**.*.**.**.*.**.**.**.*..****.* +*.**..*..**..**...*.*.*.*.*.*.*.*.*..*..*......* +**.*.*.*.*..*..*.*...*.......*......*..*.....* +....**.**..**..**....................**......** diff --git a/programs/demos/life2/lif/VENETIAN.lif b/programs/demos/life2/lif/VENETIAN.lif new file mode 100644 index 000000000..c908b754a --- /dev/null +++ b/programs/demos/life2/lif/VENETIAN.lif @@ -0,0 +1,89 @@ +#Life 1.05 +#D Venetian blinds +#D This is a finite version of the infinite p2 oscillator in which +#D rows alternate full, full, empty, empty, full, full, ... Two types +#D of edges are shown, one perpendicular to the rows and one at a 45 +#D degree angle. (It's easy to prove that there's no p2 edge parallel +#D to the rows.) Also shown are 3 type of corners where the edges +#D meet. This partly answers a question of John Conway's: What's the +#D maximum average density of an infinite p2 pattern, and can it be +#D obtained as a limit of finite p2 patterns? This shows that 1/2 is +#D a lower bound. Hartmut Holzwart showed that 8/13 is an upper bound. +#D Dean Hickerson, dean@ucdmath.ucdavis.edu 9/13/92 +#N +#P -31 -36 +..................*.**.**......*......**.**.* +..................**.*.*...**.*.*.**...*.*.** +.....................*...*..*.*.*.*..*...* +.....................*..***...*.*...***..* +....................**.*.....*.*.*.....*.** +.......................*..**.*...*.**..* +....................**..***..**.**..***..** +................**.*.**...**.*****.**...**.*.** +**.**...**......**.**....*...........*....**.** +.*.*...*.*.........*..**.*.*.......*.*.**..* +.*..*..*........**..***..**.*******.**..***..** +..*.*.*..*..**.*.**...**.*************.**...**.*.** +...*.**.**..**.**....*...................*....**.** +.....**........*..**.*.*...............*.*.**..* +....*.......**..***..**.***************.**..***..** +..***.*.**.*.**...**.*********************.**...**.*.** +.*...***.*.**....*...........................*....**.** +.***...*...*..**.*.*.......................*.*.**..* +....**...*..***..**.***********************.**..***..** +...*..*.***...**.*****************************.**...**.*.**..** +...*.**.*....*...................................*....**.**...*..* +....**.**.**.*.*...............................*.*.**..*......*.*.* +.........**..**.*******************************.**..***..**..**.*..* +....**..*.**.*************************************.**...**.*....**.* +....*..*.*...........................................*....**.**...**.** +......**.*.*.......................................*.*.**..*.*.**...*.* +..........*.***************************************.**..***..*.*.**.* +.........**.******************************************.**...****..*.* +....*.**.*.*.............................................*.......*..** +....**.*.*.............................................*.*.**....*.*..* +...........********************************************.**..*****..*.* +.........*...*********************************************.***..***.* +.............................................................*..*.* +........*.*.*..............................................*.*..*.*.* +....**.*...*.**********************************************.**.*...** +....*.**.*.*************************************************** +........*.* +#P -31 1 +........*.* +....*.**.*.*************************************************** +....**.*...*.**********************************************.**.*...** +........*.*.*..............................................*.*..*.*.* +.............................................................*..*.* +.........*...*********************************************.***..***.* +...........********************************************.**..*****..*.* +....**.*.*.............................................*.*.**....*.*..* +....*.**.*.*.............................................*.......*..** +.........**.******************************************.**...****..*.* +..........*.***************************************.**..***..*.*.**.* +......**.*.*.......................................*.*.**..*.*.**...*.* +....*..*.*...........................................*....**.**...**.** +....**..*.**.*************************************.**...**.*....**.* +.........**..**.*******************************.**..***..**..**.*..* +....**.**.**.*.*...............................*.*.**..*......*.*.* +...*.**.*....*...................................*....**.**...*..* +...*..*.***...**.*****************************.**...**.*.**..** +....**...*..***..**.***********************.**..***..** +.***...*...*..**.*.*.......................*.*.**..* +.*...***.*.**....*...........................*....**.** +..***.*.**.*.**...**.*********************.**...**.*.** +....*.......**..***..**.***************.**..***..** +.....**........*..**.*.*...............*.*.**..* +...*.**.**..**.**....*...................*....**.** +..*.*.*..*..**.*.**...**.*************.**...**.*.** +.*..*..*........**..***..**.*******.**..***..** +.*.*...*.*.........*..**.*.*.......*.*.**..* +**.**...**......**.**....*...........*....**.** +................**.*.**...**.*****.**...**.*.** +....................**..***..**.**..***..** +.......................*..**.*...*.**..* +....................**.*.....*.*.*.....*.** +.....................*..***...*.*...***..* +.....................*...*..*.*.*.*..*...* +..................**.*.*...**.*.*.**...*.*.** +..................*.**.**......*......**.**.* diff --git a/programs/demos/life2/lif/WING.lif b/programs/demos/life2/lif/WING.lif new file mode 100644 index 000000000..f47ba4402 --- /dev/null +++ b/programs/demos/life2/lif/WING.lif @@ -0,0 +1,159 @@ +#Life 1.05 +#D Diagonal c/4 grammar +#D By Hartmut Holzwart, 1993. +#D This is the first extensible c/4 spaceship. +#D See AQUA25B. +#N +#P 27 -9 +* +*** +.** +...**.* +....*.* +....*..* +. +...** +.....* +#P 15 -13 +.** +** +..* +#P 12 -10 +.* +** +*.* +#P 7 -5 +.** +** +..* +#P 4 -2 +.* +** +*.* +#P -1 3 +.** +** +..* +#P -4 6 +.* +** +*.* +#P -9 11 +.** +** +..* +#P -12 14 +.* +** +*.* +#P 18 -10 +..* +** +#P 15 -7 +.* +.* +* +#P 10 -2 +..* +** +#P 7 1 +.* +.* +* +#P 2 6 +..* +** +#P -1 9 +.* +.* +* +#P -6 14 +..* +** +#P -9 17 +.* +.* +* +#P 21 -8 +.* +** +#P 17 -4 +.* +** +#P 13 0 +.* +** +#P 9 4 +.* +** +#P 5 8 +.* +** +#P 1 12 +.* +** +#P -3 16 +.* +** +#P -7 20 +.* +** +#P 22 -8 +....* +...* +..** +.*.** +*** +..* +#P 18 -3 +...* +..** +.*.** +*** +..* +#P 14 1 +...* +..** +.*.** +*** +..* +#P 10 5 +...* +..** +.*.** +*** +..* +#P 6 9 +...* +..** +.*.** +*** +..* +#P 2 13 +...* +..** +.*.** +*** +..* +#P -2 17 +...* +..** +.*.** +*** +..* +#P -6 21 +...* +..** +.*.** +*** +..* +#P -8 25 +.* +** +.** +.** +...*...* +...***.* +........* +...** +.....* diff --git a/programs/demos/life2/lif/ZIP2.lif b/programs/demos/life2/lif/ZIP2.lif new file mode 100644 index 000000000..c531a7dd1 --- /dev/null +++ b/programs/demos/life2/lif/ZIP2.lif @@ -0,0 +1,26 @@ +#Life 1.05 +#D Lightspeed wire with p5 sink and source +#D +#D See ZIPS. Any period above 5 is possible +#D but requires more search power to find +#D the stabilizing ends. +#D +#D Dean Hickerson, Jan 1995 +#N +#P -23 0 +.........**........**..................** +.........**......*..*..................* +......*..........***....................*** +......*******.........*..*..*..*..*..*....* +............*..**************************.*.* +....*******.*.*..........................*.*.* +**.*........**.**.*..***..***..***..***....*.* +.*.*.*.......**...**...**...**...**...**..**.** +*..*.......**...***..***..***..***..***....*.* +**..******....*..........................*.*.* +..........***...*************************.*.* +....**.*....*.*.*..*..*..*..*..*..*..*....* +.....*.****..*.*........................*** +....*.....**.*.........................* +.....***.....*.........................** +.......*.....** diff --git a/programs/demos/life2/lif/ZIPS.lif b/programs/demos/life2/lif/ZIPS.lif new file mode 100644 index 000000000..fcf45d4f9 --- /dev/null +++ b/programs/demos/life2/lif/ZIPS.lif @@ -0,0 +1,36 @@ +#Life 1.05 +#D Lightspeed wire and some simple signals +#D +#D Well known. +#D +#D No corners or branches have been found yet. +#D See also ZIP2, MAX. +#N +#P -38 -6 +....*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..* +..****************************************************** +.* +.******************************************************* +........................................*........* +.******.**.*..******..*****************....******....*** +*......*...**......**........*........*.........* +.********..*..******..******....*******....******....*** +............................*..........*.........* +.******************************************************* +.* +..****************************************************** +....*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..* +#P 18 -6 +..*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..* +****************************************************** +. +****************************************************** +....*.................................................* +****...************************************************ +.....* +****...************************************************ +....*.................................................* +****************************************************** +. +****************************************************** +..*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..*..* diff --git a/programs/demos/life2/life2.cpp b/programs/demos/life2/life2.cpp new file mode 100644 index 000000000..3de54e847 --- /dev/null +++ b/programs/demos/life2/life2.cpp @@ -0,0 +1,1984 @@ +#include +#include +#include +#include "lifegen.h" +#include "life_bmp.h" +#include "me_cdlg.h" + +using namespace Menuet; + +/*** +#define StrLen LibbStrLen +#define StrCopy LibbStrCopy +#define MemCopy LibbMemCopy +#define MemSet LibbMemSet +#define Floor LibbFloor + +unsigned int (*StrLen)(const char *str) = 0; +char *(*StrCopy)(char *dest, const char *src) = 0; +void *(*MemCopy)(void *dest, const void *src, unsigned int n) = 0; +void *(*MemSet)(void *s, char c, unsigned int n) = 0; +double (*Floor)(double x) = 0; + +#include +void LibbInit() +{ + HINSTANCE hLib = LoadLibrary("Libb.dll"); + if (!hLib) + { + DebugPutString("Can't load the library.\n"); + Menuet::Abort(); + } + StrLen = (unsigned int(*)(const char *str))GetProcAddress(hLib, "StrLen"); + StrCopy = (char *(*)(char *dest, const char *src))GetProcAddress(hLib, "StrCopy"); + MemCopy = (void *(*)(void *dest, const void *src, unsigned int n))GetProcAddress(hLib, "MemCopy"); + MemSet = (void *(*)(void *s, char c, unsigned int n))GetProcAddress(hLib, "MemSet"); + Floor = (double (*)(double x))GetProcAddress(hLib, "Floor"); +} + +#pragma startup LibbInit +/**/ + +void __stdcall OneGeneration(int w, int h, void *dest, const void *src, int flag); + +struct GenerateParam +{ + unsigned int gps; + unsigned int paint_time, time, count; + bool stop; + int paint; + double speed; +}; + +struct AxisParam +{ + unsigned int win; + int p; + double shift; +}; + +struct MouseParam +{ + int hit_x, hit_y, last_x, last_y; + int button, hit_type; + + enum {HitNull = 0, HitLine, HitCircle, HitScroll}; +}; + +struct MenuButtonParam +{ + int left, size, border; + bool check; + const unsigned char *bitmap; + + int Left() const {return left;} + int Right() const {return left + size;} +}; + +const int MenuDig = 10; + +struct MenuParam +{ + enum {Size = 20, NButton = 14}; + + bool draw; + int pressed, current, edit; + int edit_index, edit_num[2], edit_num_max; + MenuButtonParam button[NButton]; + const unsigned char *digit[MenuDig]; +}; + +struct TimeGeneration +{ + unsigned int t, g; +}; + +enum MenuItem {MenuIHide, MenuIClear, MenuIOpen, MenuIAbout, MenuIExit, + MenuIGenerate, MenuIRandom, MenuIVCircle, MenuIHCircle, + MenuILine, MenuIScroll, MenuIWinSize, MenuISize, MenuISpeed}; + +enum {PaintWNull = 0, PaintWPole = 1, PaintWMenuBorder = 2, PaintWMenu = 6, + PaintWSpeed = 8, PaintWAll = 15, PaintWFast = 64, PaintWNow = 128}; + +enum {TimeGenLength = 500}; + +unsigned char *life_data = 0, *picture = 0; +GenerateParam generate = {0, 0, 0, 0, false, PaintWNull, 0}; +AxisParam xpar = {0, 0, 0}; +AxisParam ypar = {0, 0, 0}; +MouseParam mpar = {0, 0, 0, 0, 0, MouseParam::HitNull}; +MenuParam menu; +TOpenFileStruct open_file_str = MENUET_OPEN_FILE_INIT; +TimeGeneration timegen[TimeGenLength]; +int timegenpos = 0; + +#ifdef __MENUET__ + +inline int abs(int i) {return (i >= 0) ? i : (-i);} + +unsigned int rand_data[4]; + +void randomize() +{ + rand_data[0] = (unsigned int)Clock(); + rand_data[1] = (unsigned int)GetPackedTime(); + rand_data[2] = (unsigned int)GetPackedDate(); + rand_data[3] = (unsigned int)0xA3901BD2 ^ GetPid(); +} + +unsigned int rand() +{ + rand_data[0] ^= _HashDword(rand_data[3] + 0x2835C013U); + rand_data[1] += _HashDword(rand_data[0]); + rand_data[2] -= _HashDword(rand_data[1]); + rand_data[3] ^= _HashDword(rand_data[2]); + return rand_data[3]; +} + +#define random(k) (rand() % (k)) + +#else + +#include + +#endif + +/*void DebugPutNumber(int x) +{ + char word[12], *w = word, *s, c; + int i; + if (x < 0) {*(w++) = '-'; x = -x;} + s = w; + do + { + *(s++) = char('0' + (unsigned int)x % 10U); + (unsigned int&)x /= 10U; + } while(x); + for (i = 0; w + i < s - 1 - i; i++) + { + c = w[i]; w[i] = s[-1 - i]; s[-1 - i] = c; + } + *s = 0; + DebugPutString(word); +}*/ + +bool SetPictureSize(int w = -1, int h = -1) +{ + if (w > 32767) w = 32767; + if (h > 32767) h = 32767; + if (w > 0) xpar.win = (unsigned short)w; + if (h > 0) ypar.win = (unsigned short)h; + if (picture) {Free(picture); picture = 0;} + if (w == 0 || h == 0 || xpar.win == 0 || ypar.win == 0) return true; + picture = (unsigned char*)Alloc(3 * xpar.win * ypar.win); + return picture != 0; + +} + +bool SetPoleSize(int w = -1, int h = -1) +{ + int s; + if (w > 32767) w = 32767; + if (h > 32767) h = 32767; + if (w > 0) xpar.p = (unsigned short)w; + if (h > 0) ypar.p = (unsigned short)h; + if (xpar.p < 4) xpar.p = 4; + if (ypar.p < 4) ypar.p = 4; + if (life_data) {Free(life_data); life_data = 0;} + if (w == 0 || h == 0) return true; + s = GetDataSize(xpar.p, ypar.p); + life_data = (unsigned char*)Alloc(2*s + DataMemAdd); + if (!life_data) return false; + MemSet(GetDataAddress(life_data), 0, s); + return true; +} + +int GetMenuHeight(); + +void GetPaintSize(int &w, int &h, int &xx, int &yy) +{ + int t = GetMenuHeight(); + w = xpar.win; h = ypar.win - t; + xx = 0; yy = t; +} + +double GetAxisRatio(const AxisParam &par, int s) +{ + int t = par.p - s; + if (s <= 0 || t <= 0) return 0; + return double(t) / 2; +} + +void GetAxisShift(const AxisParam &par, int &s, int &k, int &kk) +{ + int t = par.p - s; + if (t < 0) {kk += (-t) / 2; t = 0; s = par.p;} + if (s <= 0 || t <= 0) k = 0; + else + { + double r = double(t) / 2; + k = (int)Floor(r * (1 + par.shift)); + if (k < 0) k = 0; + else if (k > t) k = t; + } +} + +void GetPaintOrigin(int &w, int &h, int &x, int &y, int &xx, int &yy) +{ + GetPaintSize(w, h, xx, yy); + GetAxisShift(xpar, w, x, xx); + GetAxisShift(ypar, h, y, yy); +} + +void ApplyScroll(unsigned char *data1 = life_data, unsigned char *data0 = 0) +{ + if (!data0) data0 = data1; + data0 = (unsigned char*)GetDataAddress(data0); + data1 = (unsigned char*)GetDataAddress(data1); + const double min_ratio = 1e-2; + double r; + int w, h, xx, yy; + GetPaintSize(w, h, xx, yy); + xx = 0; yy = 0; + r = GetAxisRatio(xpar, w); + if (menu.button[MenuIHCircle].check) + { + xx = mpar.hit_x - mpar.last_x + (int)Floor(xpar.shift * r + 0.5); + xx %= xpar.p - 2; + if (xx < 0) xx += xpar.p - 2; + xpar.shift = 0; + } + else if (r < min_ratio) xpar.shift = 0; + else + { + xpar.shift -= double(mpar.last_x - mpar.hit_x) / r; + if (xpar.shift < -1) xpar.shift = -1; + else if (xpar.shift > 1) xpar.shift = 1; + } + r = GetAxisRatio(ypar, h); + if (menu.button[MenuIVCircle].check) + { + yy = mpar.hit_y - mpar.last_y + (int)Floor(ypar.shift * r + 0.5); + yy %= ypar.p - 2; + if (yy < 0) yy += ypar.p - 2; + ypar.shift = 0; + } + else if (r < min_ratio) ypar.shift = 0; + else + { + ypar.shift -= double(mpar.last_y - mpar.hit_y) / r; + if (ypar.shift < -1) ypar.shift = -1; + else if (ypar.shift > 1) ypar.shift = 1; + } + if (xx == 0 && yy == 0) + { + if (data0 != data1) MemCopy(data0, data1, GetDataSize(xpar.p, ypar.p)); + } + else + { + int i, j; + i = GetDataSize(xpar.p, ypar.p); + if (data0 == data1) + { + data1 += i; + MemCopy(data1, data0, i); + } + MemSet(data0, 0, i); + APosPixel pixel0(xpar.p, ypar.p, data0); + APosPixel pixel1(xpar.p, ypar.p, data1); + for (i = 0; i < xpar.p; i++) + { + pixel0.SetTo(i, 0); + pixel1.SetTo(xx, yy); + j = ypar.p - yy; + for (;;) + { + if (pixel1.GetPixel()) pixel0.Set1Pixel(); + if (--j == 0) break; + pixel0.AddY1(); pixel1.AddY1(); + } + if (yy) + { + pixel0.AddY1(); + pixel1.SetTo(xx, 2); + j = yy; + for (;;) + { + if (pixel1.GetPixel()) pixel0.Set1Pixel(); + if (--j == 0) break; + pixel0.AddY1(); pixel1.AddY1(); + } + } + xx++; + if (xx >= xpar.p) xx = 2; + } + } +} + +void DrawLine(int x0, int y0, int x1, int y1, bool c, unsigned char *data0 = life_data) +{ + int i; + if (y0 == y1) + { + if (x0 > x1) {i = x0; x0 = x1; x1 = i;} + if (x1 < 0 || x0 >= xpar.p || y1 < 0 || y0 >= ypar.p) return; + if (x0 < 0) x0 = 0; + if (x1 >= xpar.p) x1 = xpar.p - 1; + APosPixel pixel(xpar.p, ypar.p, data0, x0, y0); + for (i = x1 - x0; i >= 0; pixel.AddX1(), i--) pixel.SetPixel(c); + } + else if (x0 == x1) + { + if (y0 > y1) {i = y0; y0 = y1; y1 = i;} + if (x1 < 0 || x0 >= xpar.p || y1 < 0 || y0 >= ypar.p) return; + if (y0 < 0) y0 = 0; + if (y1 >= ypar.p) y1 = ypar.p - 1; + APosPixel pixel(xpar.p, ypar.p, data0, x0, y0); + for (i = y1 - y0; i >= 0; pixel.AddY1(), i--) pixel.SetPixel(c); + } + else + { + long dx = x1 - x0, dy = y1 - y0; + int i; + if (abs(dx) >= abs(dy)) + { + if (dx < 0) + { + i = x0; x0 = x1; x1 = i; dx = -dx; + y0 = y1; dy = -dy; + } + long vy = 0, b_x = dx / 2; + APosPixel pixel(xpar.p, ypar.p, data0, x0, y0); + for (i = x0;; i++, pixel.AddX1()) + { + pixel.SetPixel(c); + if (i >= x1) break; + vy += dy; + if (vy > b_x) + { + vy -= dx; + pixel.AddY1(); + } + else if (vy < -b_x) + { + vy += dx; + pixel.SubY1(); + } + } + } + else + { + if (dy < 0) + { + i = y0; y0 = y1; y1 = i; dy = -dy; + x0 = x1; dx = -dx; + } + long vx = 0, b_y = dy / 2; + APosPixel pixel(xpar.p, ypar.p, data0, x0, y0); + for (i = y0;; i++, pixel.AddY1()) + { + pixel.SetPixel(c); + if (i >= y1) break; + vx += dx; + if (vx > b_y) + { + vx -= dy; + pixel.AddX1(); + } + else if (vx < -b_y) + { + vx += dy; + pixel.SubX1(); + } + } + } + } +} + +void FillCircle(int x0, int y0, int r, bool c, unsigned char *data0 = life_data) +{ + int x = 0, y = r, v = 0; + while (x <= y) + { + DrawLine(x0 - x, y0 + y, x0 + x, y0 + y, c, data0); + if (y) DrawLine(x0 - x, y0 - y, x0 + x, y0 - y, c, data0); + if (x < y) + { + DrawLine(x0 - y, y0 + x, x0 + y, y0 + x, c, data0); + DrawLine(x0 - y, y0 - x, x0 + y, y0 - x, c, data0); + } + v += 2 * (x++) + 1; + if (v >= y) v -= 2 * (y--) - 1; + } +} + +void RandomDraw(unsigned char *data0 = life_data) +{ + if (!data0 || random(300) >= 1) return; + int d = xpar.p; + if (d > ypar.p) d = ypar.p; + data0 = (unsigned char*)GetDataAddress(data0); + d = random((d * 3) / 4); + int x = random(xpar.p - d), y = random(ypar.p - d); + if (random(10) < 1) + { + int NBusy, NTest = 4096; + NBusy = 5 * xpar.p * ypar.p; + if (NTest > NBusy) NTest = NBusy; + NBusy = 0; + for (int k = 0; k < NTest; k++) + { + if (GetDataBit(GetDataWidth(xpar.p), GetDataHeight(ypar.p), data0, random(xpar.p), random(ypar.p))) NBusy++; + } + if (NBusy * 100 < NTest) + { + if (random(3) == 0) + { + DrawLine(x, y, x + d, y + d, true, data0); + DrawLine(x, y + d, x + d, y, true, data0); + } + else + { + DrawLine(x + d/2, y, x + d/2, y + d, true, data0); + DrawLine(x, y + d/2, x + d, y + d/2, true, data0); + } + return; + } + } + if (2*d < xpar.p && 2*d < ypar.p && random(10) < 3) + { + FillCircle(x + d/2, y + d/2, d/2, false, data0); + } + else if (random(2)) DrawLine(x, y, x + d, y + d, true, data0); + else DrawLine(x, y + d, x + d, y, true, data0); +} + +void LineInScreen(int ax, int ay, int bx, int by, bool c, unsigned char *data0 = life_data) +{ + int mul = 1, sbeg, send, t0, t1; + if (ax != bx) mul *= abs(ax - bx); + if (ay != by) mul *= abs(ay - by); + sbeg = 0; send = mul; + if (ax != bx) + { + t0 = ax * (mul / (ax - bx)); + t1 = (ax - xpar.p + 1) * (mul / (ax - bx)); + if (t0 < t1) + { + if (sbeg < t0) sbeg = t0; + if (send > t1) send = t1; + } + else + { + if (sbeg < t1) sbeg = t1; + if (send > t0) send = t0; + } + } + else if (ax < 0 || ax >= xpar.p) return; + if (ay != by) + { + t0 = ay * (mul / (ay - by)); + t1 = (ay - ypar.p + 1) * (mul / (ay - by)); + if (t0 < t1) + { + if (sbeg < t0) sbeg = t0; + if (send > t1) send = t1; + } + else + { + if (sbeg < t1) sbeg = t1; + if (send > t0) send = t0; + } + } + else if (ay < 0 || ay > ypar.p) return; + if (send < sbeg) return; + DrawLine(ax + (bx - ax) * sbeg / mul, ay + (by - ay) * sbeg / mul, + ax + (bx - ax) * send / mul, ay + (by - ay) * send / mul, c, data0); +} + +int GetRadius(int ax, int ay, int bx, int by) +{ + int s, t0, t1, t, tt; + bx -= ax; by -= ay; + s = bx*bx + by*by; + t0 = 0; t1 = s; + while (t0 + 1 < t1) + { + t = (t0 + t1) / 2; + tt = t*t; + if (tt / t == t && s > tt + t) t0 = t; else t1 = t; + } + return t1; +} + +int ReadNumberFromString(const unsigned char *&str) +{ + int x = 0, s = 1; + while (*str == ' ' || *str == '\t' || *str == '\r') str++; + if (*str == '-') {s = -1; str++;} + else if (*str == '+') str++; + while (*str >= '0' && *str <= '9') + { + x = 10*x + (*str - '0'); + str++; + } + return x*s; +} + +const unsigned char *StringPrefSpace(const unsigned char *pict, int size, const unsigned char *pref) +{ + const unsigned char *pict_end = pict + size; + for (;;) + { + if (!*pref) return pict; + else if (*pref == ' ') + { + if (pict >= pict_end || !(*pict == ' ' || *pict == '\t' || *pict == '\r')) return 0; + while (pict < pict_end && (*pict == ' ' || *pict == '\t' || *pict == '\r')) pict++; + pref++; + } + else if (*pref == '\n') + { + while (pict < pict_end && (*pict == ' ' || *pict == '\t' || *pict == '\r')) pict++; + if (pict >= pict_end || *pict != '\n') return 0; + pict++; pref++; + } + else if (pict >= pict_end || *pict != *pref) return 0; + else {pict++; pref++;} + } +} + +int LifeGetPictureType(const unsigned char *&pict, int size) +{ + const unsigned char *p; + p = StringPrefSpace(pict, size, (const unsigned char*)"#LifeBin 2.0\n"); + if (p && p + 4 <= pict + size) {pict = p; return 1;} + p = StringPrefSpace(pict, size, (const unsigned char*)"#Life 1.05\n"); + if (p) {pict = p; return 2;} + if (size >= 54 && pict[0] == 'B' && pict[1] == 'M' && *(int*)(pict+6) == 0 && + *(int*)(pict+14) == 0x28 && *(short*)(pict+26) == 1 && *(int*)(pict+30) == 0 && + *(short*)(pict+28) > 0 && *(short*)(pict+28) <= 32 && + *(int*)(pict+18) >= 0 && *(int*)(pict+22) >= 0 && + *(int*)(pict+10) >= 54 && *(int*)(pict+10) <= *(int*)(pict+2) && + *(int*)(pict+2) <= size && *(int*)(pict+34) >= 0 && + *(int*)(pict+34) <= *(int*)(pict+2) - *(int*)(pict+10) && + *(int*)(pict+46) <= 256 && *(int*)(pict+50) <= *(int*)(pict+46) && + (*(short*)(pict+28) >= 8 || *(int*)(pict+46) <= (1 << *(short*)(pict+28)))) + { + if (*(int*)(pict+18) == 0 || *(int*)(pict+22) == 0) return 3; + int s = *(int*)(pict+34); + if (s == 0) + { + s = ((*(int*)(pict+18) * *(short*)(pict+28) - 1) / 32 + 1) * *(int*)(pict+22) * 4; + } + if (s > 0 && s <= *(int*)(pict+2) - *(int*)(pict+10)) + { + s /= *(int*)(pict+22); + if (s < (1 << 28) && (s * 8) / *(short*)(pict+28) >= *(int*)(pict+18)) return 3; + } + } + return 0; +} + +void LifeGetPictureSize(int &w, int &h, const unsigned char *pict, int size) +{ + const unsigned char *pict_end = pict + size; + int type = LifeGetPictureType(pict, size); + w = 0; h = 0; + if (type == 1) + { + w = (int)pict[0] + ((int)pict[1] << 8); + h = (int)pict[2] + ((int)pict[3] << 8); + } + else if (type == 2) + { + int x = 0, y = 0, xb = x; + int x0 = 0, y0 = 0, x1 = -1, y1 = -1; + while (pict < pict_end && *pict) + { + while (pict < pict_end && *pict == '\n') pict++; + if (pict < pict_end && *pict == '#') + { + pict++; + if (pict < pict_end && (*pict == 'p' || *pict == 'P')) + { + pict++; + x = ReadNumberFromString(pict); + y = ReadNumberFromString(pict); + xb = x; + } + while (pict < pict_end && *pict) + { + if (*pict == '\n') {pict++; break;} + pict++; + } + continue; + } + for (; pict < pict_end && *pict; pict++) + { + if (*pict == '\n') + { + x = xb; y++; + if (pict + 1 < pict_end && pict[1] == '#') break; + continue; + } + else if (*pict == '\r') continue; + if (*pict == '*') + { + if (x0 > x) x0 = x; + if (x1 < x) x1 = x; + if (y0 > y) y0 = y; + if (y1 < y) y1 = y; + } + x++; + } + } + x0 = -2*x0; x1 = 2*x1 + 1; + y0 = -2*y0; y1 = 2*y1 + 1; + w = (x0 < x1) ? x1 : x0; + h = (y0 < y1) ? y1 : y0; + } + else if (type == 3) + { + w = *(int*)(pict+18); + h = *(int*)(pict+22); + if (w == 0) h = 0; + else if (h == 0) w = 0; + } +} + +void LifePutPicture(int x0, int y0, const unsigned char *pict, int size, unsigned char *data0 = life_data) +{ + const unsigned char *pict_end = pict + size; + int type = LifeGetPictureType(pict, size); + if (type == 1) + { + int w = (int)pict[0] + ((int)pict[1] << 8); + int h = (int)pict[2] + ((int)pict[3] << 8); + if (w && h) + { + int i, j, x, y; + pict += 4; + x0 -= w / 2; y0 -= h / 2; + x = x0 + w; y = y0 - 1; + APosPixel pixel(xpar.p, ypar.p, data0); + while (pict < pict_end) + { + if (x >= x0 + w) + { + i = (x - x0) / w; + x -= i * w; y += i; + if (y >= y0 + h) break; + j = 0; + if (x >= 0 && x < xpar.p) j |= 1; + if (y >= 0 && y < ypar.p) j |= 2; + if (j == 3) pixel.SetTo(x, y); + } + i = *(pict++); + if (i == 0) + { + if (j == 3) pixel.Set1Pixel(); + i = 1; + } + x += i; + if ((j & 2) && x < x0 + w) + { + if (x >= 0 && x < xpar.p) + { + if ((j & 1) && i < 5) + { + while (i--) pixel.AddX1(); + } + else + { + j |= 1; + pixel.SetTo(x, y); + } + } + else j &= ~1; + } + } + } + } + else if (type == 2) + { + int x = x0, y = y0, xb = x; + while (pict < pict_end && *pict) + { + while (pict < pict_end && *pict == '\n') pict++; + if (pict < pict_end && *pict == '#') + { + pict++; + if (pict < pict_end && (*pict == 'p' || *pict == 'P')) + { + pict++; + x = x0 + ReadNumberFromString(pict); + y = y0 + ReadNumberFromString(pict); + xb = x; + } + while (pict < pict_end && *pict) + { + if (*pict == '\n') {pict++; break;} + pict++; + } + continue; + } + if (y >= ypar.p || x >= xpar.p) + { + for (; pict < pict_end && *pict; pict++) if (*pict == '\n') + { + y++; + if (pict + 1 < pict_end && pict[1] == '#') break; + } + continue; + } + if (y < 0) + { + for (; pict < pict_end && *pict; pict++) if (*pict == '\n') + { + y++; + if (y >= 0 || (pict + 1 < pict_end && pict[1] == '#')) break; + } + if (pict + 1 < pict_end && *pict == '\n' && pict[1] == '#') continue; + } + APosPixel pixel(xpar.p, ypar.p, data0); + if (x >= 0) pixel.SetTo(x, y); + for (; pict < pict_end && *pict; pict++) + { + if (*pict == '\n') + { + x = xb; y++; + if (y >= ypar.p) break; + if (x >= 0) pixel.SetTo(x, y); + if (pict + 1 < pict_end && pict[1] == '#') break; + continue; + } + else if (*pict == '\r') continue; + if (*pict == '*') pixel.Set1Pixel(); + x++; + if (x < 0) continue; + if (x >= xpar.p) + { + while (pict < pict_end && *pict && *pict != '\n') pict++; + if (pict < pict_end && *pict == '\n') pict--; + continue; + } + if (x == 0) pixel.SetTo(0, y); + else pixel.AddX1(); + } + } + } + else if (type == 3) + { + int w = *(int*)(pict+18), h = *(int*)(pict+22); + if (w && h) + { + int n, i, j; + unsigned char ch; + const unsigned char *p = pict + *(int*)(pict+10); + short bp = *(short*)(pict+28); + int s = *(int*)(pict+34); + x0 -= w / 2; y0 -= h / 2; + if (x0 < xpar.p && y0 < ypar.p && x0 + w > 0 && y0 + h > 0) + { + if (s) s /= *(int*)(pict+22); + else s = ((*(int*)(pict+18) * *(short*)(pict+28) - 1) / 32 + 1) * 4; + n = (*(int*)(pict+10) - 54) / 4; + APosPixel pixel(xpar.p, ypar.p, data0); + if (y0 + h <= ypar.p) i = h - 1; + else + { + i = ypar.p - y0 - 1; + p += (ypar.p - y0) * s; + } + for (; i >= 0; i--) + { + int tj = 0, tl = 0; + if (y0 + i < 0) break; + if (x0 > 0) pixel.SetTo(x0, y0 + i); + for (j = 0; j < 8*s; j += 8) + { + if (tj >= w || x0 + tj >= xpar.p) {p += (s - j/8); break;} + ch = *(p++); + while (tj < w && x0 + tj < xpar.p && j + 8 >= (tj+1) * bp) + { + union + { + long za; + unsigned char z[4]; + }; + + tl |= (unsigned long)(ch) >> ((int)j + 8 - (tj+1) * bp); + if (n) + { + if (tl >= n) za = 0; + else + { + const unsigned char *zp = pict + 54 + 4*tl; + z[0] = zp[3]; + z[1] = zp[2]; + z[2] = zp[1]; + z[3] = zp[0]; + } + } + else if (bp == 8) + { + z[0] = 0; + z[1] = z[2] = z[3] = (char)tl; + } + else if (bp == 32) za = tl; + else za = tl << (32 - bp); + + if (x0 + tj >= 0) + { + if (x0 + tj == 0) pixel.SetTo(0, y0 + i); + else pixel.AddX1(); + if ((int)z[1] + (int)z[2] + (int)z[3] >= 384) + { + pixel.Set1Pixel(); + } + } + + tl = 0; + ch &= (unsigned char)((1 << ((int)j + 8 - (tj+1) * bp)) - 1); + tj++; + } + tl |= (int)ch << ((tj+1) * bp - (j + 8)); + } + } + } + } + } +} + +void ApplyHit(unsigned char *data1 = life_data, unsigned char *data0 = 0) +{ + if (!data0) data0 = data1; + if (!data0) return; + data0 = (unsigned char*)GetDataAddress(data0); + data1 = (unsigned char*)GetDataAddress(data1); + if (data0 != data1 && mpar.hit_type != MouseParam::HitScroll) + { + MemCopy(data0, data1, GetDataSize(xpar.p, ypar.p)); + } + switch (mpar.hit_type) + { + case MouseParam::HitLine: + LineInScreen(mpar.hit_x, mpar.hit_y, mpar.last_x, mpar.last_y, true, data0); + break; + case MouseParam::HitCircle: + FillCircle(mpar.hit_x, mpar.hit_y, + GetRadius(mpar.hit_x, mpar.hit_y, mpar.last_x, mpar.last_y), false, data0); + break; + case MouseParam::HitScroll: + ApplyScroll(data1, data0); + break; + } +} + +void MoveGenerateTime(unsigned int t) +{ + static const unsigned int COUNT_MAX = 1 << 24; + + if (generate.stop) + { + if (generate.count > COUNT_MAX) generate.count = COUNT_MAX; + } + else if (!generate.gps) generate.count = COUNT_MAX; + else if (t > 100 || generate.count >= generate.gps) + { + generate.count = generate.gps; + } + else if (t) + { + generate.count += (generate.gps * t - + (((generate.time + t) % 100U) * generate.gps) % 100 + + ((generate.time % 100U) * generate.gps) % 100) / 100; + if (generate.count > generate.gps) generate.count = generate.gps; + } + generate.time += t; + if (timegen[timegenpos].t > (~t)) timegen[timegenpos].t = -1; + else timegen[timegenpos].t += t; +} + +void ResetGenerate() +{ + generate.time = Clock(); + generate.paint_time = generate.time - 100; + generate.count = 0; + if (generate.stop) + { + generate.stop = false; + menu.button[MenuIGenerate].check = false; + } +} + +void InitGenerate() +{ + int i; + for (i = 0; i < TimeGenLength; i++) + { + timegen[timegenpos].t = -1; + timegen[timegenpos].g = 0; + } + ResetGenerate(); +} + +bool AddGenerateCount(int c) +{ + if (c < 0) return false; + if (!menu.button[MenuIGenerate].check) + { + ResetGenerate(); + menu.button[MenuIGenerate].check = true; + generate.paint |= PaintWMenuBorder | PaintWSpeed; + generate.stop = true; + generate.count += c; + } + else if (generate.stop) generate.count += c; + else return false; + return true; +} + +void InitMenuButton() +{ + int i; + const unsigned char *p = menu_picture, *p_end = menu_picture + sizeof(menu_picture); + const unsigned int separator = 5; + for (i = 0; i < MenuParam::NButton; i++) + { + menu.button[i].left = 0; + menu.button[i].size = MenuParam::Size - 2; + menu.button[i].border = 2; + menu.button[i].check = false; + menu.button[i].bitmap = p; + if (p && !p[0]) + { + menu.button[i].bitmap = 0; + if (p[1]) p = 0; + } + if (p) + { + p += 2 + 3 * (int)p[0] * (int)p[1]; + if (p > p_end) menu.button[i].bitmap = 0; + if (p >= p_end) p = 0; + } + } + p = digits_picture; p_end = digits_picture + sizeof(digits_picture); + for (i = 0; i < MenuDig; i++) + { + menu.digit[i] = p; + if (p && !p[0]) + { + menu.digit[i] = 0; + if (p[1]) p = 0; + } + if (p) + { + p += 2 + ((int)p[0] * (int)p[1] + 7) / 8; + if (p > p_end) menu.digit[i] = 0; + if (p >= p_end) p = 0; + } + } + menu.draw = false; + menu.pressed = -1; + menu.current = MenuILine; + menu.edit = -1; + menu.button[menu.current].check = true; + menu.button[MenuIHide].size /= 2; + menu.button[MenuIGenerate].left += separator; + menu.button[MenuIGenerate].check = true; + menu.button[MenuIRandom].check = true; + menu.button[MenuILine].left += separator; + menu.button[MenuIWinSize].left += separator; + menu.button[MenuISize].size += 80; + menu.button[MenuISpeed].left += separator; + menu.button[MenuISpeed].size += 60; + menu.button[0].left = 1; + for (i = 1; i < MenuParam::NButton; i++) + { + menu.button[i].left += menu.button[i-1].left + menu.button[i-1].size; + } +} + +int GetMenuYPos() +{ + return 0; +} + +int GetMenuHeight() +{ + if (!menu.draw) return 0; + return (ypar.win <= MenuParam::Size) ? 0 : MenuParam::Size; +} + +int GetMenuNumber(int k, int i) +{ + if (k == menu.edit) return menu.edit_num[i]; + switch (k) + { + case MenuISize: + return i ? ypar.p : xpar.p; + case MenuISpeed: + return menu.button[MenuIGenerate].check ? (int)Floor(generate.speed + 0.5) : 0; + default: + return 0; + } +} + +void WinDrawRect(int x, int y, int w, int h, const unsigned char *const *color) +{ + unsigned char *p = picture + 3 * (y * xpar.win + x); + int j; + w--; h--; + for (j = w; j > 0; j--) + { + p[0] = color[0][0]; p[1] = color[0][1]; p[2] = color[0][2]; + p += 3; + } + for (j = h; j > 0; j--) + { + p[0] = color[1][0]; p[1] = color[1][1]; p[2] = color[1][2]; + p += 3 * xpar.win; + } + for (j = w; j > 0; j--) + { + p[0] = color[2][0]; p[1] = color[2][1]; p[2] = color[2][2]; + p -= 3; + } + for (j = h; j > 0; j--) + { + p[0] = color[3][0]; p[1] = color[3][1]; p[2] = color[3][2]; + p -= 3 * xpar.win; + } +} + +void WinFillRect(int x, int y, int w, int h, const unsigned char *color) +{ + if (x >= xpar.win || y >= ypar.win || w <= 0 || h <= 0) return; + if (w > xpar.win - x) w = xpar.win - x; + if (h > ypar.win - y) h = ypar.win - y; + unsigned char *p, *pp = picture + 3 * (y * xpar.win + x); + int i, j; + for (i = h; i > 0; i--) + { + p = pp; + for (j = w; j > 0; j--) + { + *(p++) = color[0]; *(p++) = color[1]; *(p++) = color[2]; + } + pp += 3 * xpar.win; + } +} + +void WinBitmapRect(int x, int y, const unsigned char *bmp) +{ + if (!bmp || !bmp[0] || !bmp[1]) return; + int w = bmp[0], h = bmp[1], strl = 3 * (int)bmp[0]; + bmp += 2; + x -= w/2; y -= h/2; + if (x >= xpar.win || y >= ypar.win) return; + if (w > xpar.win - x) w = xpar.win - x; + if (h > ypar.win - y) h = ypar.win - y; + unsigned char *p, *pp = picture + 3 * (y * xpar.win + x); + const unsigned char *b; + int i, j; + for (i = h; i > 0; i--) + { + p = pp; b = bmp; + for (j = w; j > 0; j--) + { + *(p++) = *(b++); *(p++) = *(b++); *(p++) = *(b++); + } + pp += 3 * xpar.win; bmp += strl; + } +} + +void WinBitSetRect(int x, int y, const unsigned char *set, const unsigned char *color) +{ + if (!set || !set[0] || !set[1]) return; + int w = set[0], h = set[1], strr = (int)set[0]; + set += 2; + x -= w/2; y -= h/2; + if (x >= xpar.win || y >= ypar.win) return; + if (w > xpar.win - x) w = xpar.win - x; + if (h > ypar.win - y) h = ypar.win - y; + strr -= w; + unsigned char *p, *pp = picture + 3 * (y * xpar.win + x); + int i, j, m = 1; + for (i = h; i > 0; i--) + { + p = pp; + for (j = w; j > 0; j--) + { + if (*set & m) {p[0] = color[0]; p[1] = color[1]; p[2] = color[2];} + p += 3; + m <<= 1; + if (!(m & 255)) {m = 1; set++;} + } + pp += 3 * xpar.win; + m <<= strr % 8; set += strr / 8; + if (!(m & 255)) {m >>= 8; set++;} + } +} + +void WinNumberRect(int x, int y, unsigned int n, const unsigned char *color) +{ + int w, m, i; + w = 0; m = n; + do + { + i = m % MenuDig; m /= MenuDig; + if (menu.digit[i]) w += 2 + menu.digit[i][0]; + } while(m); + if (w <= 2) return; + x += w - (w-2) / 2; + m = n; + do + { + i = m % MenuDig; m /= MenuDig; + if (menu.digit[i]) + { + x -= 2 + menu.digit[i][0]; + WinBitSetRect(x + menu.digit[i][0] / 2, y, menu.digit[i], color); + } + } while(m); +} + +void WinNumberEditRect(int x, int y, int w, int h, unsigned int n, + const unsigned char *color, const unsigned char *bg_color) +{ + if (bg_color) WinFillRect(x, y, w, h, bg_color); + WinNumberRect(x + w/2, y + h/2, n, color); +} + +void MenuPaint(int what) +{ + static const unsigned char color_light0[3] = {255, 255, 255}; + static const unsigned char color_light[3] = {208, 208, 208}; + static const unsigned char color_face[3] = {192, 192, 192}; + static const unsigned char color_shadow[3] = {128, 128, 128}; + static const unsigned char color_shadow0[3] = {64, 64, 64}; + static const unsigned char color_black[3] = {0, 0, 0}; + static const unsigned char (&color_white)[3] = color_light0; + + if (GetMenuHeight() < MenuParam::Size) return; + const unsigned char *color[4]; + int menuy = GetMenuYPos(), i, k, x, xx, y, yy; + if ((what & PaintWSpeed) && !(what & (PaintWMenu & ~PaintWMenuBorder)) && + menu.button[MenuISpeed].Right() < xpar.win) + { + k = MenuISpeed; + i = menu.button[k].border + 1; + xx = menu.button[k].Left() + i; + yy = menuy + 1 + i; + x = menu.button[k].size - 2*i; + y = MenuParam::Size - 2 - 2*i; + i = 0; + if (menu.button[k].bitmap) i += menu.button[k].bitmap[0] + 2; + WinNumberEditRect(xx + i, yy, x - i, y, GetMenuNumber(k, 0), color_black, + (menu.edit == k && menu.edit_index == 0) ? color_white : color_face); + } + if (!(what & PaintWMenu)) return; + if (what & (PaintWMenu & ~PaintWMenuBorder)) + { + x = menu.button[MenuParam::NButton - 1].Right(); + WinFillRect(0, menuy, x, 1, color_face); + WinFillRect(0, menuy + MenuParam::Size - 1, x, 1, color_face); + WinFillRect(x, menuy, xpar.win - x, MenuParam::Size, color_face); + } + for (k = 0; k < MenuParam::NButton; k++) + { + xx = menu.button[k].Left(); + yy = menuy + 1; + x = menu.button[k].size; + y = MenuParam::Size - 2; + if (xx + x >= xpar.win) + { + if (what & (PaintWMenu & ~PaintWMenuBorder)) + { + i = (k >= 1) ? menu.button[k-1].Right() : 0; + WinFillRect(i, yy, xpar.win - i, y, color_face); + } + break; + } + if (what & (PaintWMenu & ~PaintWMenuBorder)) + { + i = (k >= 1) ? menu.button[k-1].Right() : 0; + WinFillRect(i, yy, xx - i, y, color_face); + } + for (i = 0; i < menu.button[k].border; i++) + { + if (i <= 1) + { + if (menu.button[k].check) + { + color[0] = color[3] = i ? color_shadow : color_shadow0; + color[1] = color[2] = i ? color_light : color_light0; + } + else + { + color[0] = color[3] = i ? color_light : color_light0; + color[1] = color[2] = i ? color_shadow : color_shadow0; + } + } + WinDrawRect(xx, yy, x, y, color); + xx++; yy++; x -= 2; y -= 2; + } + if (what & (PaintWMenu & ~PaintWMenuBorder)) + { + WinFillRect(xx, yy, x, y, color_face); + if (menu.button[k].bitmap) + { + i = (k == MenuISpeed) ? (1 + menu.button[k].bitmap[0] / 2) : (x / 2); + WinBitmapRect(xx + i, yy + y/2, menu.button[k].bitmap); + } + if (k == MenuISize) + { + xx++; yy++; x -= 2; y -= 2; + i = x - 4; + if (menu.button[k].bitmap) i -= menu.button[k].bitmap[0]; + i /= 2; + WinNumberEditRect(xx, yy, i, y, GetMenuNumber(k, 0), color_black, + (menu.edit == k && menu.edit_index == 0) ? color_white : 0); + WinNumberEditRect(xx + x - i, yy, i, y, GetMenuNumber(k, 1), color_black, + (menu.edit == k && menu.edit_index == 1) ? color_white : 0); + } + else if (k == MenuISpeed) + { + xx++; yy++; x -= 2; y -= 2; + i = 0; + if (menu.button[k].bitmap) i += menu.button[k].bitmap[0] + 2; + WinNumberEditRect(xx + i, yy, x - i, y, GetMenuNumber(k, 0), color_black, + (menu.edit == k && menu.edit_index == 0) ? color_white : 0); + } + } + } +} + +void Paint(int what, TThreadData th); + +void SetMenuDraw(bool draw, TThreadData th) +{ + if (draw == menu.draw) return; + if (menu.pressed >= 0) menu.button[menu.pressed].check = false; + menu.pressed = -1; + menu.draw = draw; + Paint(PaintWAll | PaintWFast, th); +} + +void SetMenuPressed(int k, TThreadData th) +{ + if (menu.pressed == k) return; + if (menu.pressed >= 0) menu.button[menu.pressed].check = false; + if (k >= 0) menu.button[k].check = true; + menu.pressed = k; + Paint(PaintWMenuBorder | PaintWFast, th); +} + +void SetMenuCurrent(int k, TThreadData th) +{ + if (menu.current == k) return; + if (menu.current >= 0) menu.button[menu.current].check = false; + if (k >= 0) menu.button[k].check = true; + menu.current = k; + Paint(PaintWMenuBorder | PaintWFast, th); +} + +void SetMenuEdit(int k, int i, TThreadData th) +{ + if (menu.edit != k) + { + if (menu.edit >= 0) menu.button[menu.edit].check = false; + if (k >= 0) menu.button[k].check = true; + if (k == MenuISize) {menu.edit_num[0] = xpar.p; menu.edit_num[1] = ypar.p;} + else if (k == MenuISpeed) menu.edit_num[0] = generate.gps; + } + else if (menu.edit_index == i) return; + if (k == MenuISize) menu.edit_num_max = 32767; + else if (k == MenuISpeed) menu.edit_num_max = 9999999; + menu.edit = k; menu.edit_index = i; + Paint(PaintWMenu | PaintWFast, th); +} + +void ApplyMenuEdit(TThreadData th) +{ + if (menu.edit < 0) return; + if (menu.edit == MenuISize) + { + int w = menu.edit_num[0], h = menu.edit_num[1]; + ResetGenerate(); + if (xpar.p != w || ypar.p != h) + { + if (w <= 0) w = 1; + if (h <= 0) h = 1; + SetPoleSize(w, h); + generate.paint |= PaintWPole | PaintWMenu | PaintWFast; + } + } + else if (menu.edit == MenuISpeed) + { + generate.gps = menu.edit_num[0]; + } + SetMenuEdit(-1, -1, th); +} + +int GetMenuEditIndex(int k, int x) +{ + if (k == MenuISize) return x >= menu.button[k].left + menu.button[k].size / 2; + else return 0; +} + +void LifeScreenPutPicture(const unsigned char *pict, int size, TThreadData th) +{ + int w, h; + ResetGenerate(); + LifeGetPictureSize(w, h, pict, size); + w += 10; h += 10; + if (!life_data || xpar.p < w || ypar.p < h) + { + if (xpar.p >= w) w = xpar.p; + if (ypar.p >= h) h = ypar.p; + SetPoleSize(w, h); + if (!life_data) + { + Paint(PaintWMenu | PaintWFast, th); + return; + } + } + MemSet(GetDataAddress(life_data), 0, GetDataSize(xpar.p, ypar.p)); + LifePutPicture(xpar.p / 2, ypar.p / 2, pict, size, life_data); + menu.button[MenuIRandom].check = false; + xpar.shift = 0; ypar.shift = 0; + generate.paint |= PaintWPole | PaintWMenu | PaintWFast; +// SetMenuCurrent(MenuIScroll, th); + Paint(PaintWNull, th); +} + +void MenuOpenDialogEnd(TThreadData th) +{ + int state = OpenFileGetState(open_file_str); + if (state <= 0) return; + OpenFileSetState(open_file_str, 0); + if (state != 2) return; + char *name = OpenFileGetName(open_file_str); + if (!name) return; + TFileData file = FileOpen(name); + if (!file) return; + int k = FileGetLength(file); + unsigned char *pict = 0; + if (k > 0 && k < (1 << 24)) + { + pict = (unsigned char*)Alloc(k+1); + if (pict) + { + if (FileRead(file, pict, k) == k) pict[k] = 0; + else {Free(pict); pict = 0;} + } + } + FileClose(file); + if (!pict) return; + LifeScreenPutPicture(pict, k, th); + Free(pict); +} + +void MenuWinSizeClick(TThreadData th) +{ + int w = xpar.win, h = ypar.win - GetMenuHeight(); + ResetGenerate(); + if (w > 0 && h > 0 && (xpar.p != w || ypar.p != h)) + { + SetPoleSize(w, h); + Paint(PaintWPole | PaintWMenu | PaintWFast, th); + } +} + +void MenuGenerateClick(TThreadData th) +{ + generate.stop = false; + ResetGenerate(); + menu.button[MenuIGenerate].check = !menu.button[MenuIGenerate].check; + Paint(PaintWMenuBorder | PaintWSpeed | PaintWFast, th); +} + +void MenuClearClick(TThreadData th) +{ + ResetGenerate(); + if (life_data) MemSet(GetDataAddress(life_data), 0, GetDataSize(xpar.p, ypar.p)); + Paint(PaintWPole | PaintWFast, th); +} + +void MenuAboutClick(TThreadData th) +{ + generate.stop = false; + menu.button[MenuIGenerate].check = true; + generate.paint |= PaintWSpeed; + LifeScreenPutPicture(about_picture, sizeof(about_picture), th); +} + +void MenuMouseClick(int x, int y, int m, TThreadData th) +{ + int k, i, j = GetMenuYPos(); + if (menu.edit >= 0) + { + k = menu.edit; + j = GetMenuYPos(); + if (GetMenuHeight() < MenuParam::Size || y < j + 1 || y >= j + MenuParam::Size - 1 || + x < menu.button[k].Left() || x >= menu.button[k].Right()) + { + if (m == 1) ApplyMenuEdit(th); + else SetMenuEdit(-1, -1, th); + } + else SetMenuEdit(k, GetMenuEditIndex(k, x), th); + return; + } + if (GetMenuHeight() < MenuParam::Size || y < j + 1 || y >= j + MenuParam::Size - 1) + { + if (m < 0) x = -1; + else return; + } + if (m < 0) + { + if (menu.pressed < 0) return; + k = menu.pressed; + if (x < menu.button[k].Left() || x >= menu.button[k].Right()) + { + if (menu.button[k].check) + { + menu.button[k].check = false; + Paint(PaintWMenuBorder | PaintWFast, th); + } + } + else if (!menu.button[k].check) + { + menu.button[k].check = true; + Paint(PaintWMenuBorder | PaintWFast, th); + } + return; + } + if (m == 0) + { + if (menu.pressed < 0 || !menu.button[menu.pressed].check) return; + switch (menu.pressed) + { + case MenuIHide: + SetMenuDraw(false, th); + break; + case MenuIClear: + MenuClearClick(th); + break; + case MenuIOpen: + if (OpenFileGetState(open_file_str) < 0) break; + OpenFileDialog(open_file_str); + break; + case MenuIAbout: + MenuAboutClick(th); + break; + case MenuIExit: + CloseWindow(th); + break; + case MenuIWinSize: + MenuWinSizeClick(th); + break; + } + return; + } + k = -1; i = MenuParam::NButton; + while (k + 1 < i) + { + j = (k + i) / 2; + if (x < menu.button[j].Left()) i = j; + else k = j; + } + i = menu.button[k].Right(); + if (k < 0 || x >= i || i >= xpar.win) return; + switch (k) + { + case MenuIHide: + case MenuIClear: + case MenuIOpen: + case MenuIAbout: + case MenuIExit: + case MenuIWinSize: + SetMenuPressed(k, th); + break; + case MenuIGenerate: + MenuGenerateClick(th); + break; + case MenuIRandom: + case MenuIVCircle: + case MenuIHCircle: + menu.button[k].check = !menu.button[k].check; + Paint(PaintWMenuBorder | PaintWFast, th); + break; + case MenuILine: + case MenuIScroll: + SetMenuCurrent(k, th); + break; + case MenuISize: + case MenuISpeed: + SetMenuEdit(k, GetMenuEditIndex(k, x), th); + break; + } +} + +void PoleMouseClick(int m, TThreadData th) +{ + if (m != 1 && m != 2) return; + mpar.hit_type = MouseParam::HitNull; + switch (menu.current) + { + case MenuILine: + if (menu.draw) + { + menu.button[MenuIRandom].check = false; + generate.paint |= PaintWMenuBorder | PaintWFast; + if (m == 1) mpar.hit_type = MouseParam::HitLine; + else mpar.hit_type = MouseParam::HitCircle; + } + break; + case MenuIScroll: + if (m == 1) mpar.hit_type = MouseParam::HitScroll; + break; + } + if (mpar.hit_type) Paint(PaintWPole | PaintWFast, th); + else if (!menu.draw) SetMenuDraw(true, th); +} + +void MenuEditPressKey(int ch, TThreadData th) +{ + if (menu.edit < 0) return; + int &num = menu.edit_num[menu.edit_index]; + if (ch == 27) SetMenuEdit(-1, -1, th); + else if (ch == '\r') ApplyMenuEdit(th); + else if (ch == 8) {num /= 10; Paint(PaintWMenu | PaintWFast, th);} + else if (ch >= '0' && ch <= '9') + { + num = 10 * num + (ch - '0'); + if (num >= menu.edit_num_max) num = menu.edit_num_max; + Paint(PaintWMenu | PaintWFast, th); + } + else if (menu.edit == MenuISize) + { + if (ch == '\t') SetMenuEdit(MenuISize, !menu.edit_index, th); + else if (ch == 'x' || ch == 'X') SetMenuEdit(MenuISize, 0, th); + else if (ch == 'y' || ch == 'Y') SetMenuEdit(MenuISize, 1, th); + } +} + +void CalculateSpeed() +{ + double t = 0, g = 0, dn, n = 0, st = 0, sg = 0, ss = 0, sp = 0; + int i = timegenpos; + do + { + if (t >= 500) break; + g += timegen[i].g; + dn = timegen[i].g; + n += dn * (500 - t); + st += dn * t; + sg += dn * g; + ss += dn * t * t; + sp += dn * g * t; + if (--i < 0) i = TimeGenLength; + t += timegen[i].t; + } while(i != timegenpos); + ss = n * ss - st * st; + sp = n * sp - sg * st; + if (st < 1e-4 || ss < 1e-4 * st * st) g = 0; + else g = sp / ss; + generate.speed = 100 * g; +} + +void Paint(int what, TThreadData th) +{ + what |= generate.paint; + if (!(what & PaintWAll) || !life_data || xpar.win <= 0 || ypar.win <= 0) return; + + const unsigned int FAST_PAINT_TIME = 2, WAIT_PAINT_TIME = 8; + unsigned int t = Clock() - generate.paint_time; + unsigned int wt = (what & PaintWFast) ? FAST_PAINT_TIME : WAIT_PAINT_TIME; + if (!(what & PaintWNow) && t >= (unsigned int)(-WAIT_PAINT_TIME)) + { + if ((unsigned int)(-t) > wt) generate.paint_time += t + wt; + generate.paint = what; + return; + } + generate.paint_time += t + wt; + generate.paint = PaintWNull; + + if (!picture) + { + SetPictureSize(); + if (!picture) return; + } + if (what & PaintWPole) + { + const unsigned char bgcolor[3] = {128, 128, 0}; + int w, h, x, y, xx, yy, i, j; + int menu0 = GetMenuYPos(), menu1 = menu0 + GetMenuHeight(); + unsigned char *p = picture; + unsigned char *data0 = (unsigned char*)GetDataAddress(life_data); + int size = GetDataSize(xpar.p, ypar.p); + if (xpar.win <= 0 || ypar.win <= 0) return; + if (mpar.hit_type > 0) + { + double shift_x = xpar.shift, shift_y = ypar.shift; + ApplyHit(data0, data0 + size); + data0 += size; + GetPaintOrigin(w, h, x, y, xx, yy); + xpar.shift = shift_x; ypar.shift = shift_y; + } + else GetPaintOrigin(w, h, x, y, xx, yy); + APosPixel pixel(xpar.p, ypar.p, data0); + j = menu0; + if (j < 0) j = 0; + else if (j > yy) j = yy; + for (i = j * xpar.win; i > 0; i--) + { + *(p++) = bgcolor[0]; *(p++) = bgcolor[1]; *(p++) = bgcolor[2]; + } + i = menu1; + if (i < 0) i = 0; + else if (i > yy) i = yy; + p += 3 * xpar.win * (i - j); + for (i = (yy - i) * xpar.win; i > 0; i--) + { + *(p++) = bgcolor[0]; *(p++) = bgcolor[1]; *(p++) = bgcolor[2]; + } + for (i = 0; i < h; i++) + { + for (j = xx; j > 0; j--) + { + *(p++) = bgcolor[0]; *(p++) = bgcolor[1]; *(p++) = bgcolor[2]; + } + pixel.SetTo(x, (y + i) % ypar.p); + j = xpar.p - x; + if (j > w) j = w; + for (;;) + { + if (pixel.GetPixel()) {*(p++) = 255; *(p++) = 255; *(p++) = 255;} + else {*(p++) = 0; *(p++) = 0; *(p++) = 0;} + if (--j <= 0) break; + pixel.AddX1(); + } + j = w - (xpar.p - x); + if (j > 0) + { + pixel.SetTo(0, (y + i) % ypar.p); + for (;;) + { + if (pixel.GetPixel()) {*(p++) = 255; *(p++) = 255; *(p++) = 255;} + else {*(p++) = 0; *(p++) = 0; *(p++) = 0;} + if (--j <= 0) break; + pixel.AddX1(); + } + } + for (j = xpar.win - xx - w; j > 0; j--) + { + *(p++) = bgcolor[0]; *(p++) = bgcolor[1]; *(p++) = bgcolor[2]; + } + } + j = menu0; + if (j < yy + h) j = yy + h; + else if (j > ypar.win) j = ypar.win; + for (i = (j - yy - h) * xpar.win; i > 0; i--) + { + *(p++) = bgcolor[0]; *(p++) = bgcolor[1]; *(p++) = bgcolor[2]; + } + i = menu1; + if (i < yy + h) i = yy + h; + else if (i > ypar.win) i = ypar.win; + p += 3 * xpar.win * (i - j); + for (i = (ypar.win - i) * xpar.win; i > 0; i--) + { + *(p++) = bgcolor[0]; *(p++) = bgcolor[1]; *(p++) = bgcolor[2]; + } + } + if (what & PaintWSpeed) CalculateSpeed(); + MenuPaint(what); + SetPicture(picture, (unsigned short)xpar.win, (unsigned short)ypar.win, th); +} + +bool MenuetOnStart(TStartData &me_start, TThreadData th) +{ + randomize(); + me_start.WinData.Title = "Black and white Life"; + me_start.Width = 500; me_start.Height = 400; + InitGenerate(); + InitMenuButton(); + if (CommandLine[0]) + { + open_file_str.state = 2; + OpenFileSetName(open_file_str, CommandLine); + } + return true; +} + +bool MenuetOnClose(TThreadData) +{ + SetPictureSize(0, 0); + SetPoleSize(0, 0); + return true; +} + +int MenuetOnIdle(TThreadData th) +{ + static const unsigned int WAIT_TIME = 2, GEN_TIME = 1; + int res = -1; + if (OpenFileGetState(open_file_str) > 0) + { + MenuOpenDialogEnd(th); + res = 0; + } + else + { + if (life_data && menu.button[MenuIGenerate].check) + { + unsigned int t = Clock() - generate.time; + if (t >= (unsigned int)(-WAIT_TIME)) res = -t; + else + { + MoveGenerateTime(t); + if (generate.count > 0) + { + unsigned char *data0 = (unsigned char*)GetDataAddress(life_data); + int size = GetDataSize(xpar.p, ypar.p); + int flag = (menu.button[MenuIHCircle].check ? 4 : 1) + + (menu.button[MenuIVCircle].check ? 8 : 2); + if (++timegenpos >= TimeGenLength) timegenpos = 0; + timegen[timegenpos].t = 0; + timegen[timegenpos].g = 0; + for (;;) + { + OneGeneration(xpar.p, ypar.p, data0 + size, data0, flag); + if (menu.button[MenuIRandom].check) RandomDraw(data0 + size); + timegen[timegenpos].g++; + if (--generate.count == 0 || (unsigned int)(Clock() - generate.time) >= GEN_TIME) + { + MemCopy(data0, data0 + size, size); + break; + } + OneGeneration(xpar.p, ypar.p, data0, data0 + size, flag); + if (menu.button[MenuIRandom].check) RandomDraw(data0); + timegen[timegenpos].g++; + if (--generate.count == 0 || (unsigned int)(Clock() - generate.time) >= GEN_TIME) break; + } + generate.paint |= PaintWPole | PaintWSpeed; + } + if (generate.stop && generate.count == 0) + { + ResetGenerate(); + menu.button[MenuIGenerate].check = false; + generate.paint |= PaintWMenuBorder | PaintWSpeed; + res = -1; + } + else + { + MoveGenerateTime(Clock() - generate.time); + res = (generate.count <= generate.gps / 100) ? WAIT_TIME : 0; + MoveGenerateTime(res); + } + } + } + } + if (generate.paint) + { + Paint((res < 0 || res > WAIT_TIME) ? (PaintWNull | PaintWNow) : PaintWNull, th); + } + return res; +} + +void MenuetOnSize(int window_rect[], Menuet::TThreadData th) +{ + unsigned short w, h; + GetClientSize(w, h, window_rect[2], window_rect[3], th); + SetPictureSize(w, h); + generate.paint |= PaintWAll | PaintWFast; + if (!life_data) MenuWinSizeClick(th); + Paint(PaintWNull | PaintWNow, th); +} + +void MenuetOnKeyPress(TThreadData th) +{ + int ch; + while ((ch = GetKey()) >= 0) + { + if (mpar.hit_type > 0) + { + mpar.hit_type = 0; + generate.paint |= PaintWPole | PaintWFast; + SetMenuPressed(-1, th); + if (generate.paint) Paint(PaintWNull, th); + } + else if (menu.pressed >= 0) SetMenuPressed(-1, th); + else if (menu.edit >= 0) MenuEditPressKey(ch, th); + else + { + switch (ch) + { + case 'm': + case 'M': + SetMenuDraw(!menu.draw, th); + break; + case 'c': + case 'C': + MenuClearClick(th); + break; + case 'o': + case 'O': + if (OpenFileGetState(open_file_str) < 0) break; + OpenFileDialog(open_file_str); + break; + case 'a': + case 'A': + MenuAboutClick(th); + break; + case 'q': + case 'Q': + CloseWindow(th); + break; + case 'w': + case 'W': + MenuWinSizeClick(th); + break; + case 'g': + case 'G': + MenuGenerateClick(th); + break; + case 'r': + case 'R': + menu.button[MenuIRandom].check = !menu.button[MenuIRandom].check; + Paint(PaintWMenuBorder | PaintWFast, th); + break; + case 'v': + case 'V': + menu.button[MenuIVCircle].check = !menu.button[MenuIVCircle].check; + Paint(PaintWMenuBorder | PaintWFast, th); + break; + case 'h': + case 'H': + menu.button[MenuIHCircle].check = !menu.button[MenuIHCircle].check; + Paint(PaintWMenuBorder | PaintWFast, th); + break; + case 'l': + case 'L': + SetMenuCurrent(MenuILine, th); + break; + case 's': + case 'S': + SetMenuCurrent(MenuIScroll, th); + break; + case 'x': + case 'X': + if (!menu.draw) SetMenuDraw(true, th); + SetMenuEdit(MenuISize, 0, th); + break; + case 'y': + case 'Y': + if (!menu.draw) SetMenuDraw(true, th); + SetMenuEdit(MenuISize, 1, th); + break; + case 'f': + case 'F': + if (!menu.draw) SetMenuDraw(true, th); + SetMenuEdit(MenuISpeed, 0, th); + break; + case ' ': + case '\\': + case '|': + if (menu.button[MenuIGenerate].check && !generate.stop) + { + menu.button[MenuIGenerate].check = false; + Paint(PaintWMenuBorder | PaintWSpeed | PaintWFast, th); + } + else AddGenerateCount((ch == ' ') ? 1 : 15); + break; + } + } + } +} + +void MenuetOnMouse(TThreadData th) +{ + short xp = 0, yp = 0; + int w, h, x, y, xx, yy, m; + GetMousePosPicture(xp, yp); + m = GetMouseButton(); + GetPaintOrigin(w, h, x, y, xx, yy); + x += xp - xx; + y += yp - yy; + if (mpar.hit_type > 0) + { + if (mpar.last_x != x || mpar.last_y != y) + { + mpar.last_x = x; mpar.last_y = y; + generate.paint |= PaintWPole | PaintWFast; + } + if (m != mpar.button) + { + if ((m & ~mpar.button) == 0) ApplyHit(); + mpar.hit_type = 0; + generate.paint |= PaintWPole | PaintWFast; + SetMenuPressed(-1, th); + if (generate.paint) Paint(PaintWNull, th); + } + } + else if (menu.pressed >= 0) + { + if (mpar.last_x != x || mpar.last_y != y) + { + MenuMouseClick(xp, yp, -1, th); + } + if (m != mpar.button) + { + if ((m & ~mpar.button) == 0) MenuMouseClick(xp, yp, 0, th); + SetMenuPressed(-1, th); + } + } + else if (mpar.button == 0 && (m == 1 || m == 2)) + { + if (xp >= 0 && xp < xpar.win && yp >= 0 && yp < ypar.win) + { + mpar.hit_x = x; mpar.hit_y = y; mpar.last_x = x; mpar.last_y = y; + yy = GetMenuYPos(); + if (menu.edit >= 0 || (yp >= yy && yp < yy + GetMenuHeight())) + { + MenuMouseClick(xp, yp, m, th); + } + else PoleMouseClick(m, th); + } + } + mpar.button = m; +} + +#ifndef __MENUET__ + +#include + +void __stdcall (*DllOneGeneration)(int w, int h, void *dest, const void *src, int flag) = 0; + +void DllInit() +{ + HINSTANCE hLib = LoadLibrary("LifeGen.dll"); + if (!hLib) + { + DebugPutString("Can't load the library.\n"); + Menuet::Abort(); + } + DllOneGeneration = (void(__stdcall*)(int, int, void*, const void*, int))GetProcAddress(hLib, "OneGeneration"); + if (!DllOneGeneration) + { + DebugPutString("Can't get a library function.\n"); + Menuet::Abort(); + } +} + +void __stdcall OneGeneration(int w, int h, void *dest, const void *src, int flag) +{ + if (!DllOneGeneration) DllInit(); + DllOneGeneration(w, h, dest, src, flag); +} + +#endif + diff --git a/programs/demos/life2/life_bmp.bat b/programs/demos/life2/life_bmp.bat new file mode 100644 index 000000000..502954b2f --- /dev/null +++ b/programs/demos/life2/life_bmp.bat @@ -0,0 +1,32 @@ +bmp2h < life_bmp.bat > life_bmp.h + +rem menu_picture +rem life_bmp\hidemenu.bmp +rem life_bmp\clear.bmp +rem life_bmp\open.bmp +rem life_bmp\about.bmp +rem life_bmp\exit.bmp +rem life_bmp\generate.bmp +rem life_bmp\random.bmp +rem life_bmp\v_circle.bmp +rem life_bmp\h_circle.bmp +rem life_bmp\line.bmp +rem life_bmp\scroll.bmp +rem life_bmp\winsize.bmp +rem life_bmp\size.bmp +rem life_bmp\speed.bmp + +rem about_picture +rem life_bmp\pict_about.bmp + +rem digits_picture +rem life_bmp\digit0.bmp +rem life_bmp\digit1.bmp +rem life_bmp\digit2.bmp +rem life_bmp\digit3.bmp +rem life_bmp\digit4.bmp +rem life_bmp\digit5.bmp +rem life_bmp\digit6.bmp +rem life_bmp\digit7.bmp +rem life_bmp\digit8.bmp +rem life_bmp\digit9.bmp diff --git a/programs/demos/life2/life_bmp/about.bmp b/programs/demos/life2/life_bmp/about.bmp new file mode 100644 index 000000000..5d4870402 Binary files /dev/null and b/programs/demos/life2/life_bmp/about.bmp differ diff --git a/programs/demos/life2/life_bmp/clear.bmp b/programs/demos/life2/life_bmp/clear.bmp new file mode 100644 index 000000000..85adf3d75 Binary files /dev/null and b/programs/demos/life2/life_bmp/clear.bmp differ diff --git a/programs/demos/life2/life_bmp/digit0.bmp b/programs/demos/life2/life_bmp/digit0.bmp new file mode 100644 index 000000000..5cd0aa1b4 Binary files /dev/null and b/programs/demos/life2/life_bmp/digit0.bmp differ diff --git a/programs/demos/life2/life_bmp/digit1.bmp b/programs/demos/life2/life_bmp/digit1.bmp new file mode 100644 index 000000000..ba0ec36cd Binary files /dev/null and b/programs/demos/life2/life_bmp/digit1.bmp differ diff --git a/programs/demos/life2/life_bmp/digit2.bmp b/programs/demos/life2/life_bmp/digit2.bmp new file mode 100644 index 000000000..27775f9a2 Binary files /dev/null and b/programs/demos/life2/life_bmp/digit2.bmp differ diff --git a/programs/demos/life2/life_bmp/digit3.bmp b/programs/demos/life2/life_bmp/digit3.bmp new file mode 100644 index 000000000..8e6cd9549 Binary files /dev/null and b/programs/demos/life2/life_bmp/digit3.bmp differ diff --git a/programs/demos/life2/life_bmp/digit4.bmp b/programs/demos/life2/life_bmp/digit4.bmp new file mode 100644 index 000000000..0a1f3b83c Binary files /dev/null and b/programs/demos/life2/life_bmp/digit4.bmp differ diff --git a/programs/demos/life2/life_bmp/digit5.bmp b/programs/demos/life2/life_bmp/digit5.bmp new file mode 100644 index 000000000..b47827ee4 Binary files /dev/null and b/programs/demos/life2/life_bmp/digit5.bmp differ diff --git a/programs/demos/life2/life_bmp/digit6.bmp b/programs/demos/life2/life_bmp/digit6.bmp new file mode 100644 index 000000000..1329f017f Binary files /dev/null and b/programs/demos/life2/life_bmp/digit6.bmp differ diff --git a/programs/demos/life2/life_bmp/digit7.bmp b/programs/demos/life2/life_bmp/digit7.bmp new file mode 100644 index 000000000..39a98b8dd Binary files /dev/null and b/programs/demos/life2/life_bmp/digit7.bmp differ diff --git a/programs/demos/life2/life_bmp/digit8.bmp b/programs/demos/life2/life_bmp/digit8.bmp new file mode 100644 index 000000000..33090f3ac Binary files /dev/null and b/programs/demos/life2/life_bmp/digit8.bmp differ diff --git a/programs/demos/life2/life_bmp/digit9.bmp b/programs/demos/life2/life_bmp/digit9.bmp new file mode 100644 index 000000000..864f6b3ac Binary files /dev/null and b/programs/demos/life2/life_bmp/digit9.bmp differ diff --git a/programs/demos/life2/life_bmp/exit.bmp b/programs/demos/life2/life_bmp/exit.bmp new file mode 100644 index 000000000..6f37f181b Binary files /dev/null and b/programs/demos/life2/life_bmp/exit.bmp differ diff --git a/programs/demos/life2/life_bmp/generate.bmp b/programs/demos/life2/life_bmp/generate.bmp new file mode 100644 index 000000000..c3ef8dacb Binary files /dev/null and b/programs/demos/life2/life_bmp/generate.bmp differ diff --git a/programs/demos/life2/life_bmp/h_circle.bmp b/programs/demos/life2/life_bmp/h_circle.bmp new file mode 100644 index 000000000..8b24d4649 Binary files /dev/null and b/programs/demos/life2/life_bmp/h_circle.bmp differ diff --git a/programs/demos/life2/life_bmp/hidemenu.bmp b/programs/demos/life2/life_bmp/hidemenu.bmp new file mode 100644 index 000000000..1aa55fc21 Binary files /dev/null and b/programs/demos/life2/life_bmp/hidemenu.bmp differ diff --git a/programs/demos/life2/life_bmp/line.bmp b/programs/demos/life2/life_bmp/line.bmp new file mode 100644 index 000000000..a504ab718 Binary files /dev/null and b/programs/demos/life2/life_bmp/line.bmp differ diff --git a/programs/demos/life2/life_bmp/open.bmp b/programs/demos/life2/life_bmp/open.bmp new file mode 100644 index 000000000..1362e1dd2 Binary files /dev/null and b/programs/demos/life2/life_bmp/open.bmp differ diff --git a/programs/demos/life2/life_bmp/pict_about.bmp b/programs/demos/life2/life_bmp/pict_about.bmp new file mode 100644 index 000000000..74b6b5c7b Binary files /dev/null and b/programs/demos/life2/life_bmp/pict_about.bmp differ diff --git a/programs/demos/life2/life_bmp/random.bmp b/programs/demos/life2/life_bmp/random.bmp new file mode 100644 index 000000000..21a0ce580 Binary files /dev/null and b/programs/demos/life2/life_bmp/random.bmp differ diff --git a/programs/demos/life2/life_bmp/scroll.bmp b/programs/demos/life2/life_bmp/scroll.bmp new file mode 100644 index 000000000..7c69ef76b Binary files /dev/null and b/programs/demos/life2/life_bmp/scroll.bmp differ diff --git a/programs/demos/life2/life_bmp/size.bmp b/programs/demos/life2/life_bmp/size.bmp new file mode 100644 index 000000000..83bd93abb Binary files /dev/null and b/programs/demos/life2/life_bmp/size.bmp differ diff --git a/programs/demos/life2/life_bmp/speed.bmp b/programs/demos/life2/life_bmp/speed.bmp new file mode 100644 index 000000000..ee408d387 Binary files /dev/null and b/programs/demos/life2/life_bmp/speed.bmp differ diff --git a/programs/demos/life2/life_bmp/v_circle.bmp b/programs/demos/life2/life_bmp/v_circle.bmp new file mode 100644 index 000000000..4929fc554 Binary files /dev/null and b/programs/demos/life2/life_bmp/v_circle.bmp differ diff --git a/programs/demos/life2/life_bmp/winsize.bmp b/programs/demos/life2/life_bmp/winsize.bmp new file mode 100644 index 000000000..0d10688c3 Binary files /dev/null and b/programs/demos/life2/life_bmp/winsize.bmp differ diff --git a/programs/demos/life2/lifegen.h b/programs/demos/life2/lifegen.h new file mode 100644 index 000000000..4c25ccbf7 --- /dev/null +++ b/programs/demos/life2/lifegen.h @@ -0,0 +1,108 @@ +#ifndef __SSE2_LIVE_H_INCLUDED_ +#define __SSE2_LIVE_H_INCLUDED_ + +// +// In DLL: +// +// void __stdcall OneGeneration(int w, int h, void *dest, const void *src, int flag); +// + +inline int GetDataWidth(int w) {return (w + 63) & ~63;} +inline int GetDataHeight(int h) {return (h + 7) & ~7;} +inline int GetDataNBlock(int w) {return GetDataWidth(w) / 64;} +inline int GetDataPeriod(int h) {return GetDataHeight(h) * 8;} +inline int GetDataSize(int w, int h) {return GetDataNBlock(w) * GetDataPeriod(h);} +const int DataMemAdd = 16; // using: new char[GetDataSize(w, h) + DataMemAdd]; +inline void *GetDataAddress(void *data) {return (void*)(((unsigned int)data + 15) & ~15);} + +inline bool GetDataBit(unsigned int w0, unsigned int h0, const void *data0, unsigned int x, unsigned int y) +{ // w0 = GetDataWidth(w); h0 = GetDataHeight(h); data0 = GetDataAddress(data); + unsigned int nblk = w0 >> 6, sblk = h0 >> 1; + unsigned int x1 = x % nblk, x2 = x / nblk; + unsigned int y1 = y % sblk, y2 = y / sblk; + unsigned int index = ((x1*sblk + y1) << 2) + (y2 << 1) + (x2 >> 5); + return (((const unsigned int*)data0)[index] >> (x2 & 31)) & 1; +} + +inline void Set0DataBit(unsigned int w0, unsigned int h0, void *data0, unsigned int x, unsigned int y) +{ // w0 = GetDataWidth(w); h0 = GetDataHeight(h); data0 = GetDataAddress(data); + unsigned int nblk = w0 >> 6, sblk = h0 >> 1; + unsigned int x1 = x % nblk, x2 = x / nblk; + unsigned int y1 = y % sblk, y2 = y / sblk; + unsigned int index = ((x1*sblk + y1) << 2) + (y2 << 1) + (x2 >> 5); + ((unsigned int*)data0)[index] &= ~(1U << (x2 & 31)); +} + +inline void Set1DataBit(unsigned int w0, unsigned int h0, void *data0, unsigned int x, unsigned int y) +{ // w0 = GetDataWidth(w); h0 = GetDataHeight(h); data0 = GetDataAddress(data); + unsigned int nblk = w0 >> 6, sblk = h0 >> 1; + unsigned int x1 = x % nblk, x2 = x / nblk; + unsigned int y1 = y % sblk, y2 = y / sblk; + unsigned int index = ((x1*sblk + y1) << 2) + (y2 << 1) + (x2 >> 5); + ((unsigned int*)data0)[index] |= 1U << (x2 & 31); +} + +inline void SetCDataBit(unsigned int w0, unsigned int h0, void *data0, unsigned int x, unsigned int y) +{ // w0 = GetDataWidth(w); h0 = GetDataHeight(h); data0 = GetDataAddress(data); + unsigned int nblk = w0 >> 6, sblk = h0 >> 1; + unsigned int x1 = x % nblk, x2 = x / nblk; + unsigned int y1 = y % sblk, y2 = y / sblk; + unsigned int index = ((x1*sblk + y1) << 2) + (y2 << 1) + (x2 >> 5); + ((unsigned int*)data0)[index] ^= 1U << (x2 & 31); +} + +inline void SetDataBit(unsigned int w0, unsigned int h0, void *data0, unsigned int x, unsigned int y, bool bit) +{ + if (bit) Set1DataBit(w0, h0, data0, x, y); + else Set0DataBit(w0, h0, data0, x, y); +} + +struct APosPixel +{ + int nblk, sblk; + void *data; + unsigned int x1, y1, value, *item; + + APosPixel(int w = 0, int h = 0, void *data = 0, int x = 0, int y = 0) + : nblk(GetDataWidth(w) >> 6), sblk(GetDataHeight(h) >> 1), + data(GetDataAddress(data)) {SetTo(x, y);} + void SetTo(int x, int y) + { + unsigned int x2, y2; + x1 = x % nblk; x2 = x / nblk; + y1 = y % sblk; y2 = y / sblk; + item = ((unsigned int*)data) + ((x1*sblk + y1) << 2) + (y2 << 1) + (x2 >> 5); + value = 1U << (x2 & 31); + } + + bool GetPixel() const {return *item & value;} + void Set1Pixel() const {*item |= value;} + void Set0Pixel() const {*item &= ~value;} + void SetCPixel() const {*item ^= value;} + void SetPixel(bool c) const {if (c) Set1Pixel(); else Set0Pixel();} + + void AddX1() + { + if (int(++x1) < nblk) {item += sblk << 2; return;} + x1 = 0; item -= (nblk-1) * sblk << 2; + if (!(value <<= 1)) {value = 1; item++;} + } + void SubX1() + { + if (int(--x1) >= 0) {item -= sblk << 2; return;} + x1 = nblk-1; item += (nblk-1) * sblk << 2; + if (!(value >>= 1)) {value = 0x80000000; item--;} + } + void AddY1() + { + if (int(++y1) < sblk) {item += 1 << 2; return;} + y1 = 0; item -= ((sblk-1) << 2) - 2; + } + void SubY1() + { + if (int(--y1) >= 0) {item -= 1 << 2; return;} + y1 = sblk-1; item += ((sblk-1) << 2) - 2; + } +}; + +#endif // __SSE2_LIVE_H_INCLUDED_ diff --git a/programs/demos/life2/me_cdlg.h b/programs/demos/life2/me_cdlg.h new file mode 100644 index 000000000..3e6f71c1e --- /dev/null +++ b/programs/demos/life2/me_cdlg.h @@ -0,0 +1,100 @@ +#ifndef __MENUET_FILE_OPEN_H_INCLUDED_ +#define __MENUET_FILE_OPEN_H_INCLUDED_ + +#include + +// Menuet interface. + +namespace Menuet // All menuet functions, types and data are nested in the (Menuet) namespace. +{ + struct TOpenFileStruct; // Data for a file open dialog. +#define MENUET_OPEN_FILE_INIT {} // Initializer of the file open struct, cat be redefined in a realization of the library + + void OpenFileInit(TOpenFileStruct &ofs); + void OpenFileDelete(TOpenFileStruct &ofs); + bool OpenFileDialog(TOpenFileStruct &ofs); + int OpenFileGetState(const TOpenFileStruct &ofs); + bool OpenFileSetState(TOpenFileStruct &ofs, int state); + char *OpenFileGetName(const TOpenFileStruct &ofs); + bool OpenFileSetName(TOpenFileStruct &ofs, char *name); +} + +#ifdef __MENUET__ + +namespace Menuet +{ +// Structures. + + struct TOpenFileStruct + { + int state; + char *name; + }; +#undef MENUET_OPEN_FILE_INIT +#define MENUET_OPEN_FILE_INIT {0,0} + +// Inline functions. + + inline void OpenFileInit(TOpenFileStruct &ofs) + { + ofs.state = 0; + ofs.name = 0; + } + + inline void OpenFileDelete(TOpenFileStruct &ofs) + { + if (ofs.name) {Free(ofs.name); ofs.name = 0;} + } + + inline int OpenFileGetState(const TOpenFileStruct &ofs) + { + return ofs.state; + } + + inline char *OpenFileGetName(const TOpenFileStruct &ofs) + { + return ofs.name; + } + +// Functions. + + bool OpenFileSetState(TOpenFileStruct &ofs, int state) + { + if (!ofs.state) return !state; + if (ofs.state == state) return true; + if (state < 0) return false; + ofs.state = state; + return true; + } + + bool OpenFileSetName(TOpenFileStruct &ofs, char *name) + { + if (!ofs.name && !name) return true; + if (ofs.name) Free(ofs.name); + if (!name) {ofs.name = 0; return true;} + ofs.name = (char*)Alloc(StrLen(name) + 1); + if (!ofs.name) return false; + StrCopy(ofs.name, name); + return true; + } +} + +#else // else: def __MENUET__ + +namespace Menuet +{ + struct TOpenFileStruct + { + unsigned int data; + + TOpenFileStruct(); + ~TOpenFileStruct(); + }; +#undef MENUET_OPEN_FILE_INIT +#define MENUET_OPEN_FILE_INIT TOpenFileStruct() +} + +#endif // __MENUET__ + +#endif // __MENUET_FILE_OPEN_H_INCLUDED_ + diff --git a/programs/demos/life2/me_cdlg.inc b/programs/demos/life2/me_cdlg.inc new file mode 100644 index 000000000..83bb8da73 --- /dev/null +++ b/programs/demos/life2/me_cdlg.inc @@ -0,0 +1,173 @@ +define @Menuet@OpenFileDialog$qr22Menuet@TOpenFileStruct + push ebx + push esi + push edi + push ebp + call @Menuet@GetThreadData$qv + mov ebp,eax + mov ebx,[esp+20] + cmp dword [ebx+4],0 + jnz Menuet_open_file_dlg_str + mov esi,7 + jmp Menuet_open_file_dlg_alloc +Menuet_open_file_dlg_str: + cld + mov edi,[ebx+4] + mov ecx,-1 + xor al,al + repnz scas byte [edi] + not ecx + mov esi,ecx +Menuet_open_file_dlg_alloc: + push esi + call @@Menuet@Alloc$qui + pop ecx + test eax,eax + jz Menuet_open_file_dlg_ret + mov ecx,esi + dec ecx + push esi + push ecx + push eax + mov dword [ebx],-1 + cmp dword [ebx+4],0 + jnz Menuet_open_file_dlg_copy + mov dword [eax],0x2F64722F + mov word [eax+4],0x2F31 + jmp Menuet_open_file_dlg_redraw +Menuet_open_file_dlg_copy: + cld + mov ecx,esi + mov esi,[ebx+4] + mov edi,eax + rep movs byte [edi],[esi] +Menuet_open_file_dlg_redraw: + mov eax,12 + mov ebx,1 + int 0x40 + xor eax,eax + mov ebx,[ebp+MENUET_THREAD_DATA_X*4] + mov ecx,[ebp+MENUET_THREAD_DATA_Y*4] + mov edx,[ebp+MENUET_THREAD_DATA_C_WINDOW*4] + mov esi,[ebp+MENUET_THREAD_DATA_C_HEADER*4] + mov edi,[ebp+MENUET_THREAD_DATA_C_BORDER*4] + int 0x40 + mov eax,4 + mov ebx,0x00070007 + mov ecx,[ebp+MENUET_THREAD_DATA_C_TITLE*4] + mov edx,Menuet_open_file_dlg_name + mov esi,Menuet_open_file_dlg_name_end - Menuet_open_file_dlg_name + int 0x40 + mov eax,4 + mov ebx,0x000C001E + xor ecx,ecx + mov edx,[esp] + mov esi,[esp+4] + int 0x40 + mov eax,12 + mov ebx,2 + int 0x40 +Menuet_open_file_dlg_loop: + mov eax,10 + int 0x40 + dec eax + jz Menuet_open_file_dlg_redraw + dec eax + jz Menuet_open_file_dlg_key + dec eax + jz Menuet_open_file_dlg_end + jmp Menuet_open_file_dlg_loop +Menuet_open_file_dlg_key: + xor edi,edi +Menuet_open_file_dlg_key_loop: + mov eax,2 + int 0x40 + test al,al + jnz Menuet_open_file_dlg_key_end + cmp ah,27 + jz Menuet_open_file_dlg_end + cmp ah,13 + jz Menuet_open_file_dlg_apply + cmp ah,8 + jz Menuet_open_file_dlg_key_bsp + cmp ah,32 + jna Menuet_open_file_dlg_key_loop + mov ebx,[esp+4] + cmp ebx,[esp+8] + jb Menuet_open_file_dlg_key_any + lea esi,[ebx+2*ebx] + shr esi,1 + inc esi + push eax + push esi + push dword [esp+8] + call @@Menuet@ReAlloc$qpvui + add esp,8 + mov ecx,eax + pop eax + test ecx,ecx + jz Menuet_open_file_dlg_key + mov [esp+8],esi + mov [esp],ecx +Menuet_open_file_dlg_key_any: + mov esi,ebx + add esi,[esp] + mov byte [esi],ah + inc ebx + mov edi,1 + mov [esp+4],ebx + jmp Menuet_open_file_dlg_key_loop +Menuet_open_file_dlg_key_bsp: + mov eax,[esp+4] + test eax,eax + jz Menuet_open_file_dlg_key_loop + dec eax + mov edi,1 + mov [esp+4],eax + jmp Menuet_open_file_dlg_key_loop +Menuet_open_file_dlg_key_end: + test edi,edi + jnz Menuet_open_file_dlg_redraw + jmp Menuet_open_file_dlg_loop +Menuet_open_file_dlg_apply: + mov eax,[esp+4] + inc eax + mov [esp+8],eax + push eax + push dword [esp+4] + call @@Menuet@ReAlloc$qpvui + add esp,8 + test eax,eax + jz Menuet_open_file_dlg_end + mov eax,[esp] + mov esi,eax + add eax,[esp+4] + mov byte [eax],0 + add esp,12 + mov ebx,[esp+20] + mov dword [ebx],2 + push dword [ebx+4] + call @@Menuet@Free$qpv + pop ecx + mov [ebx+4],esi + jmp Menuet_open_file_dlg_invalidate +Menuet_open_file_dlg_end: + call @@Menuet@Free$qpv + add esp,12 + mov ebx,[esp+20] + mov dword [ebx],1 +Menuet_open_file_dlg_invalidate: + push ebp + push dword 1 + call @@Menuet@Invalidate$qippv + add esp,8 +Menuet_open_file_dlg_ret: + pop ebp + pop edi + pop esi + pop ebx + ret +Menuet_open_file_dlg_name: + db 'Open file' +Menuet_open_file_dlg_name_end: +enddef diff --git a/programs/demos/life2/me_cdlg_win.cpp b/programs/demos/life2/me_cdlg_win.cpp new file mode 100644 index 000000000..0b7d6c643 --- /dev/null +++ b/programs/demos/life2/me_cdlg_win.cpp @@ -0,0 +1,116 @@ +#include +#include + +#include +#include +#include "me_cdlg.h" + +using namespace Menuet; + +extern HINSTANCE hInstance; + +struct TThreadDataStruct +{ + void *user; + void *stack_begin; + TWindowData *win_data; + HWND hwnd; + int flag; + unsigned int win_time, me_time; + void *picture; + unsigned int picture_width, picture_height; + void *keys; + unsigned int bmp_data_length; + unsigned int *bmp_data; + unsigned int mouse_state; +}; + +struct TOpenFileData +{ + int state; + char name[1]; +}; + +namespace Menuet +{ + TOpenFileStruct::TOpenFileStruct() : data(0) {} + + TOpenFileStruct::~TOpenFileStruct() + { + if (data) {delete[] (char*)data; data = 0;} + } + + void OpenFileInit(TOpenFileStruct &ofs) {ofs.data = 0;} + + void OpenFileDelete(TOpenFileStruct &ofs) + { + if (ofs.data) {delete[] (char*)ofs.data; ofs.data = 0;} + } + + bool OpenFileDialog(TOpenFileStruct &ofs) + { + char CustomFilter[300], *name; + int size; + CustomFilter[0] = 0; CustomFilter[1] = 0; + if (!OpenFileSetState(ofs, 0)) return false; + OPENFILENAME ofn = {sizeof(OPENFILENAME), ((TThreadDataStruct*)GetThreadData())->hwnd, + hInstance, "All files (*.*)\0*.*\0", + CustomFilter, sizeof(CustomFilter)-1, 1, NULL, 0, NULL, 0, NULL, NULL, + OFN_HIDEREADONLY | OFN_EXPLORER, 0, 0, "", 0, NULL, 0}; + size = 0; + if (ofs.data) size = strlen(((TOpenFileData*)ofs.data)->name) + 1; + if (size < 10000) size = 10000; + name = new char[size + 1]; + if (!name) return false; + if (ofs.data) strcpy(name, ((TOpenFileData*)ofs.data)->name); + else name[0] = 0; + ofn.lpstrFile = &name[0]; ofn.nMaxFile = size; + size = GetOpenFileName(&ofn) == TRUE; + if (OpenFileSetName(ofs, name)) + { + ((TOpenFileData*)ofs.data)->state = (size ? 2 : 1); + } + else size = 0; + delete[] name; + return (bool)size; + } + + int OpenFileGetState(const TOpenFileStruct &ofs) + { + return ofs.data ? ((TOpenFileData*)ofs.data)->state : 0; + } + + bool OpenFileSetState(TOpenFileStruct &ofs, int state) + { + if (!ofs.data || !((TOpenFileData*)ofs.data)->state) return !state; + if (((TOpenFileData*)ofs.data)->state == state) return true; + if (state < 0) return false; + ((TOpenFileData*)ofs.data)->state = state; + return true; + } + + char *OpenFileGetName(const TOpenFileStruct &ofs) + { + if (!ofs.data) return 0; + else return ((TOpenFileData*)ofs.data)->name; + } + + bool OpenFileSetName(TOpenFileStruct &ofs, char *name) + { + if (!ofs.data && !name) return true; + int size = (unsigned int)(((TOpenFileData*)0)->name) + 1; + int state = 0; + if (name) size += strlen(name); + if (ofs.data) + { + state = ((TOpenFileData*)ofs.data)->state; + delete[] (char*)ofs.data; + } + ofs.data = (unsigned int)(new char[size]); + if (!ofs.data) return false; + ((TOpenFileData*)ofs.data)->state = state; + if (name) strcpy(((TOpenFileData*)ofs.data)->name, name); + else ((TOpenFileData*)ofs.data)->name[0] = 0; + return true; + } +} \ No newline at end of file diff --git a/programs/demos/life2/me_make.inc b/programs/demos/life2/me_make.inc new file mode 100644 index 000000000..52b3a9816 --- /dev/null +++ b/programs/demos/life2/me_make.inc @@ -0,0 +1,13 @@ +;//NAME// life2.cpp +;//COMPILER// bcc32 -S -v- -R- -6 -a4 -O2 -Og -Oi -Ov -OS -k- -D__MENUET__ -Iinclude +;//UTIL_PATH// . + +STACKSIZE equ 102400 +HEAPSIZE equ 102400 + +include "include\me_start.inc" +include "include\me_func.inc" +include "include\me_heap.inc" +include "me_cdlg.inc" +include "mmxlife.inc" +;include "sse2life.inc" diff --git a/programs/demos/life2/mmxlife.inc b/programs/demos/life2/mmxlife.inc new file mode 100644 index 000000000..b3e747558 --- /dev/null +++ b/programs/demos/life2/mmxlife.inc @@ -0,0 +1,320 @@ +;// fast life generator: ~2.2 pixel*generation/tact + +macro live_shl x,do_shl +{ + if do_shl eq yes + psllq x,1 + end if +} + +macro live_shr x,do_shr +{ + if do_shr eq yes + psrlq x,1 + end if +} + +macro live_zero x,y +{ + pxor x,x + movq y,x +} + +macro live_load x,y,z,t,shl_edi,shr_esi +{ + movq y,[edi+ecx] + movq x,[ebx+ecx] + live_shl y,shl_edi + movq t,y + pxor y,x + movq z,[esi+ecx] + pand x,t + live_shr z,shr_esi + movq t,y + pxor y,z + pand t,z + por x,t +} + +macro live_operation a,A,b,B,c,C,d,D,shift +{ + movq D,A + pxor A,B + pand D,B + movq d,a + pxor a,D + pand d,D + movq D,a + pxor a,b + pand D,b + por d,D + movq D,a + pxor a,c + pand D,c + pxor d,D + pxor a,d + movq D,A + por D,C + pxor A,C + pxor d,D + por A,[ebx+shift+16] + pand a,d + pand a,A + movq [ebp+shift],a +} + +macro live_cycle shl_edi,shr_esi +{ + local cycle + local cycle_entry + local last_oper + lea ecx,[edx-8] + live_zero mm2,mm3 + live_load mm4,mm5,mm6,mm7,shl_edi,shr_esi + sub ecx,eax + jmp cycle_entry +cycle: + live_load mm4,mm5,mm6,mm7,shl_edi,shr_esi + live_operation mm0,mm1,mm2,mm3,mm4,mm5,mm6,mm7,ecx + sub ecx,eax +cycle_entry: + live_load mm6,mm7,mm0,mm1,shl_edi,shr_esi + live_operation mm2,mm3,mm4,mm5,mm6,mm7,mm0,mm1,ecx + sub ecx,eax + live_load mm0,mm1,mm2,mm3,shl_edi,shr_esi + live_operation mm4,mm5,mm6,mm7,mm0,mm1,mm2,mm3,ecx + sub ecx,eax + live_load mm2,mm3,mm4,mm5,shl_edi,shr_esi + live_operation mm6,mm7,mm0,mm1,mm2,mm3,mm4,mm5,ecx + sub ecx,eax + jnl cycle + cmp cl,-8 + jnz last_oper + lea ecx,[edx-16] + live_load mm4,mm5,mm6,mm7,shl_edi,shr_esi + live_operation mm0,mm1,mm2,mm3,mm4,mm5,mm6,mm7,-8 + sub ecx,eax + jmp cycle_entry +last_oper: + live_zero mm4,mm5 + live_operation mm0,mm1,mm2,mm3,mm4,mm5,mm6,mm7,ecx +} + +OneGeneration_Flag12: + push edi + lea esi,[eax+1] + bt dword [esp+48],1 + jnc OneGeneration_flag2_end + bt dword [esp+48],3 + jc OneGeneration_flag2_end + mov edi,[esp+36] + shl edi,4 + cmp edi,edx + jb OneGeneration_flag2_uphalf + sub edi,edx + cmp edi,edx + jnb OneGeneration_flag2_end + add edi,8 +OneGeneration_flag2_uphalf: + mov ecx,esi + add edi,ebx + pxor mm0,mm0 +OneGeneration_flag2_cycle: + movq [edi],mm0 + add edi,edx + loop OneGeneration_flag2_cycle +OneGeneration_flag2_end: + bt dword [esp+48],0 + jnc OneGeneration_flag1_end + bt dword [esp+48],2 + jc OneGeneration_flag1_end + push edx + mov eax,[esp+36] + xor edx,edx + div esi + mov esi,edx + pop edx + cmp eax,64 + jnb OneGeneration_flag1_end + imul esi,edx + add esi,ebx + btr eax,5 + jnc OneGeneration_flag1_noadd4 + add esi,4 +OneGeneration_flag1_noadd4: + lea ecx,[edx-8] + mov edi,8 +OneGeneration_flag1_cycle: + btr dword [esi+ecx],eax + sub ecx,edi + btr dword [esi+ecx],eax + sub ecx,edi + btr dword [esi+ecx],eax + sub ecx,edi + btr dword [esi+ecx],eax + sub ecx,edi + jnl OneGeneration_flag1_cycle +OneGeneration_flag1_end: + pop edi + ret + +@OneGeneration$qqsiipvpxvi: + push ebp + push ebx + push esi + push edi + mov eax,[esp+20] + mov edx,[esp+24] + mov ebp,[esp+28] + mov ebx,[esp+32] + dec eax + jl OneGeneration_end + add edx,7 + add ebp,31 + add ebx,15 + shr eax,6 + shl edx,3 + and ebp,not 15 + and ebx,not 15 + and edx,not 63 + jng OneGeneration_end + test eax,eax + jz OneGeneration_single + mov edi,edx + imul edi,eax + jo OneGeneration_end + push eax + add edi,ebx + call OneGeneration_Flag12 + lea esi,[ebx+edx] + push dword [esp] + mov eax,16 + live_cycle yes,no + jmp OneGeneration_cycle_fin +OneGeneration_cycle: + mov edi,ebx + mov ebx,esi + add ebp,edx + add esi,edx + live_cycle no,no +OneGeneration_cycle_fin: + dec dword [esp] + jg OneGeneration_cycle + mov edi,ebx + pop ecx + mov ebx,esi + mov esi,edx + add ebp,edx + imul esi,[esp] + neg esi + add esi,ebx + live_cycle no,yes + jmp OneGeneration_flag48 +OneGeneration_single: + push eax + mov edi,ebx + call OneGeneration_Flag12 + mov esi,ebx + mov eax,16 + live_cycle yes,yes +OneGeneration_flag48: + pop ebp + inc ebp + bt dword [esp+36],3 + jnc OneGeneration_flag8_end + mov edi,[esp+24] + mov ebx,[esp+28] + dec edi + add ebx,15 + shl edi,4 + lea esi,[edi-16] + and ebx,not 15 + cmp edi,edx + jb OneGeneration_flag8_uphalf + sub edi,edx + add edi,8 + cmp esi,edx + jb OneGeneration_flag8_uphalf + sub esi,edx + add esi,8 +OneGeneration_flag8_uphalf: + mov ecx,ebp +OneGeneration_flag8_cycle: + movq mm0,[ebx+esi] + movq [ebx],mm0 + movq mm0,[ebx+16] + movq [ebx+edi],mm0 + add ebx,edx + loop OneGeneration_flag8_cycle +OneGeneration_flag8_end: + bt dword [esp+36],2 + jnc OneGeneration_flag4_end + mov eax,[esp+20] + push edx + dec eax + xor edx,edx + mov ebx,[esp+32] + div ebp + add ebx,15 + mov esi,eax + mov edi,edx + and ebx,not 15 + dec edx + jl OneGeneration_flag4_dec0 + mov ebp,edx + jmp OneGeneration_flag4_after_dec +OneGeneration_flag4_dec0: + dec ebp + dec eax +OneGeneration_flag4_after_dec: + pop edx + imul edi,edx + imul ebp,edx + add edi,ebx + add ebp,ebx + btr esi,5 + jnc OneGeneration_flag4_noadd4f + add edi,4 +OneGeneration_flag4_noadd4f: + btr eax,5 + jnc OneGeneration_flag4_noadd4s + add ebp,4 +OneGeneration_flag4_noadd4s: + mov ecx,edx + jmp OneGeneration_flag4_cycle0_entry +OneGeneration_flag4_cycle0: + btr dword [ebx+ecx],0 +OneGeneration_flag4_cycle0_entry: + sub ecx,8 + jl OneGeneration_flag4_cycle0_end + bt dword [ebp+ecx],eax + jnc OneGeneration_flag4_cycle0 + bts dword [ebx+ecx],0 + jmp OneGeneration_flag4_cycle0_entry +OneGeneration_flag4_cycle0_end: + xor eax,eax + cmp dword [esp+20],64 + jng OneGeneration_flag4_single + add ebx,edx + jmp OneGeneration_flag4_cycle1_entry +OneGeneration_flag4_single: + inc eax + jmp OneGeneration_flag4_cycle1_entry +OneGeneration_flag4_cycle1: + btr dword [edi+edx],esi +OneGeneration_flag4_cycle1_entry: + sub edx,8 + jl OneGeneration_flag4_end + bt dword [ebx+edx],eax + jnc OneGeneration_flag4_cycle1 + bts dword [edi+edx],esi + jmp OneGeneration_flag4_cycle1_entry +OneGeneration_flag4_end: + emms +OneGeneration_end: + pop edi + pop esi + pop ebx + pop ebp + ret 20 + diff --git a/programs/demos/life2/sse2life.inc b/programs/demos/life2/sse2life.inc new file mode 100644 index 000000000..85b9ef393 --- /dev/null +++ b/programs/demos/life2/sse2life.inc @@ -0,0 +1,318 @@ +;// fast life generator: ~2.8 pixel*generation/tact + +macro live_shl x,do_shl +{ + if do_shl eq yes + psllq x,1 + end if +} + +macro live_shr x,do_shr +{ + if do_shr eq yes + psrlq x,1 + end if +} + +macro live_mov x,reg,how +{ + if how eq low + xorps x,x + movlps x,[reg+24] + else if how eq high + xorps x,x + movhps x,[reg+edx] + else + movaps x,[reg+ecx] + end if +} + +macro live_load x,y,z,t,shl_edi,shr_esi,how +{ + live_mov y,edi,how + live_mov x,ebx,how + live_shl y,shl_edi + movaps t,y + xorps y,x + live_mov z,esi,how + andps x,t + live_shr z,shr_esi + movaps t,y + xorps y,z + andps t,z + orps x,t +} + +macro live_operation a,A,b,B,c,C,d,D +{ + movaps D,A + xorps A,B + andps D,B + movaps d,a + xorps a,D + andps d,D + movaps D,a + xorps a,b + andps D,b + orps d,D + movaps D,a + xorps a,c + andps D,c + xorps d,D + xorps a,d + movaps D,A + orps D,C + xorps A,C + xorps d,D + orps A,[ebx+ecx+16] + andps a,d + andps a,A + movaps [ebp+ecx],a +} + +macro live_cycle shl_edi,shr_esi +{ + local cycle + local cycle_entry + mov ecx,edx + live_load xmm2,xmm3,xmm4,xmm5,shl_edi,shr_esi,low + live_load xmm4,xmm5,xmm6,xmm7,shl_edi,shr_esi + sub ecx,eax + jmp cycle_entry +cycle: + live_load xmm4,xmm5,xmm6,xmm7,shl_edi,shr_esi + live_operation xmm0,xmm1,xmm2,xmm3,xmm4,xmm5,xmm6,xmm7 + sub ecx,eax +cycle_entry: + live_load xmm6,xmm7,xmm0,xmm1,shl_edi,shr_esi + live_operation xmm2,xmm3,xmm4,xmm5,xmm6,xmm7,xmm0,xmm1 + sub ecx,eax + live_load xmm0,xmm1,xmm2,xmm3,shl_edi,shr_esi + live_operation xmm4,xmm5,xmm6,xmm7,xmm0,xmm1,xmm2,xmm3 + sub ecx,eax + live_load xmm2,xmm3,xmm4,xmm5,shl_edi,shr_esi + live_operation xmm6,xmm7,xmm0,xmm1,xmm2,xmm3,xmm4,xmm5 + sub ecx,eax + jg cycle + live_load xmm4,xmm5,xmm6,xmm7,shl_edi,shr_esi,high + live_operation xmm0,xmm1,xmm2,xmm3,xmm4,xmm5,xmm6,xmm7 +} + +OneGeneration_Flag12: + push edi + lea esi,[eax+1] + bt dword [esp+48],1 + jnc OneGeneration_flag2_end + bt dword [esp+48],3 + jc OneGeneration_flag2_end + mov edi,[esp+36] + shl edi,4 + cmp edi,edx + jb OneGeneration_flag2_uphalf + sub edi,edx + cmp edi,edx + jnb OneGeneration_flag2_end + add edi,8 +OneGeneration_flag2_uphalf: + mov ecx,esi + lea edi,[edi+ebx+16] + pxor mm0,mm0 +OneGeneration_flag2_cycle: + movq [edi],mm0 + add edi,edx + loop OneGeneration_flag2_cycle +OneGeneration_flag2_end: + bt dword [esp+48],0 + jnc OneGeneration_flag1_end + bt dword [esp+48],2 + jc OneGeneration_flag1_end + push edx + mov eax,[esp+36] + xor edx,edx + div esi + mov esi,edx + pop edx + cmp eax,64 + jnb OneGeneration_flag1_end + imul esi,edx + lea esi,[esi+ebx+16] + btr eax,5 + jnc OneGeneration_flag1_noadd4 + add esi,4 +OneGeneration_flag1_noadd4: + lea ecx,[edx-8] + mov edi,8 +OneGeneration_flag1_cycle: + btr dword [esi+ecx],eax + sub ecx,edi + btr dword [esi+ecx],eax + sub ecx,edi + btr dword [esi+ecx],eax + sub ecx,edi + btr dword [esi+ecx],eax + sub ecx,edi + jnl OneGeneration_flag1_cycle +OneGeneration_flag1_end: + pop edi + ret + +@OneGeneration$qqsiipvpxvi: + push ebp + push ebx + push esi + push edi + mov eax,[esp+20] + mov edx,[esp+24] + mov ebp,[esp+28] + mov ebx,[esp+32] + dec eax + jl OneGeneration_end + add edx,7 + add ebp,15 + dec ebx + shr eax,6 + shl edx,3 + and ebp,not 15 + and ebx,not 15 + and edx,not 63 + jng OneGeneration_end + test eax,eax + jz OneGeneration_single + mov edi,edx + imul edi,eax + jo OneGeneration_end + push eax + add edi,ebx + call OneGeneration_Flag12 + lea esi,[ebx+edx] + push dword [esp] + mov eax,16 + live_cycle yes,no + jmp OneGeneration_cycle_fin +OneGeneration_cycle: + mov edi,ebx + mov ebx,esi + add ebp,edx + add esi,edx + live_cycle no,no +OneGeneration_cycle_fin: + dec dword [esp] + jg OneGeneration_cycle + mov edi,ebx + pop ecx + mov ebx,esi + mov esi,edx + add ebp,edx + imul esi,[esp] + neg esi + add esi,ebx + live_cycle no,yes + jmp OneGeneration_flag48 +OneGeneration_single: + push eax + mov edi,ebx + call OneGeneration_Flag12 + mov esi,ebx + mov eax,16 + live_cycle yes,yes +OneGeneration_flag48: + pop ebp + inc ebp + bt dword [esp+36],3 + jnc OneGeneration_flag8_end + mov edi,[esp+24] + mov ebx,[esp+28] + dec edi + add ebx,15 + shl edi,4 + lea esi,[edi-16] + and ebx,not 15 + cmp edi,edx + jb OneGeneration_flag8_uphalf + sub edi,edx + add edi,8 + cmp esi,edx + jb OneGeneration_flag8_uphalf + sub esi,edx + add esi,8 +OneGeneration_flag8_uphalf: + mov ecx,ebp +OneGeneration_flag8_cycle: + movq mm0,[ebx+esi] + movq [ebx],mm0 + movq mm0,[ebx+16] + movq [ebx+edi],mm0 + add ebx,edx + loop OneGeneration_flag8_cycle +OneGeneration_flag8_end: + bt dword [esp+36],2 + jnc OneGeneration_flag4_end + mov eax,[esp+20] + push edx + dec eax + xor edx,edx + mov ebx,[esp+32] + div ebp + add ebx,15 + mov esi,eax + mov edi,edx + and ebx,not 15 + dec edx + jl OneGeneration_flag4_dec0 + mov ebp,edx + jmp OneGeneration_flag4_after_dec +OneGeneration_flag4_dec0: + dec ebp + dec eax +OneGeneration_flag4_after_dec: + pop edx + imul edi,edx + imul ebp,edx + add edi,ebx + add ebp,ebx + btr esi,5 + jnc OneGeneration_flag4_noadd4f + add edi,4 +OneGeneration_flag4_noadd4f: + btr eax,5 + jnc OneGeneration_flag4_noadd4s + add ebp,4 +OneGeneration_flag4_noadd4s: + mov ecx,edx + jmp OneGeneration_flag4_cycle0_entry +OneGeneration_flag4_cycle0: + btr dword [ebx+ecx],0 +OneGeneration_flag4_cycle0_entry: + sub ecx,8 + jl OneGeneration_flag4_cycle0_end + bt dword [ebp+ecx],eax + jnc OneGeneration_flag4_cycle0 + bts dword [ebx+ecx],0 + jmp OneGeneration_flag4_cycle0_entry +OneGeneration_flag4_cycle0_end: + xor eax,eax + cmp dword [esp+20],64 + jng OneGeneration_flag4_single + add ebx,edx + jmp OneGeneration_flag4_cycle1_entry +OneGeneration_flag4_single: + inc eax + jmp OneGeneration_flag4_cycle1_entry +OneGeneration_flag4_cycle1: + btr dword [edi+edx],esi +OneGeneration_flag4_cycle1_entry: + sub edx,8 + jl OneGeneration_flag4_end + bt dword [ebx+edx],eax + jnc OneGeneration_flag4_cycle1 + bts dword [edi+edx],esi + jmp OneGeneration_flag4_cycle1_entry +OneGeneration_flag4_end: + emms +OneGeneration_end: + pop edi + pop esi + pop ebx + pop ebp + ret 20 + diff --git a/programs/demos/life2/t2fasm.cpp b/programs/demos/life2/t2fasm.cpp new file mode 100644 index 000000000..5edaccffa --- /dev/null +++ b/programs/demos/life2/t2fasm.cpp @@ -0,0 +1,420 @@ +#include +#include +#include +#include +#include +using namespace std; + +char str[20000], *word[100]; +int wordlen[sizeof(word) / sizeof(word[0])]; + +char words_ignore[100][100] = { "?debug", + "if", + "ifdef", + "ifndef", + "endif", + "macro", + "endm", + "dgroup", + "assume", + "segment", + "ends", + "public", + "proc", + "endp", + "extrn", + "model", + "label", + "end", + ""}; + +#define WI_macro (words_ignore[5]) +#define WI_endm (words_ignore[6]) +#define WI_segment (words_ignore[9]) +#define WI_ends (words_ignore[10]) +#define WI_proc (words_ignore[12]) +#define WI_endp (words_ignore[13]) +#define WI_label (words_ignore[16]) +const char *WI_END = "END"; + +int nwords_ignore = -1; +char *words_ign_sort[sizeof(words_ignore) / sizeof(words_ignore[0])]; + +int strcmp1(const char *s0, int n0, const char *s1, int n1) +{ + while (n0 && n1) + { + n0--; n1--; + int c = (int)tolower(*s0) - (int)tolower(*s1); + if (c < 0) return -1; + if (c > 0) return 1; + if (!*(s0++) || !*(s1++)) return 0; + } + if (n0 && *s0) return 1; + if (n1 && *s1) return -1; + return 0; +} + +int strlen1(const char *s, int n) +{ + int i = 0; + while (i < n && s[i]) i++; + return i; +} + +char *strcpy1(char *r, const char *s, int n) +{ + char *r0 = r; + while (n-- && *s) *(r++) = *(s++); + *r = 0; + return r0; +} + +char *strchr1(char *s, int n, char c) +{ + while (n-- && *s) + { + if (*s == c) return s; + s++; + } + return 0; +} + +char *first_not_space(char *s) +{ + while (*s && isspace(*s)) s++; + return s; +} + +char get_word(char *s) +{ + int i = 0, k; + for (k = 0; k < sizeof(word) / sizeof(word[0]); k++) + { + s = first_not_space(s + i); + word[k] = s; + i = 0; + while (s[i] && !isspace(s[i]) && s[i] != ';' && s[i] != ',' && s[i] != ':') + { + i++; + } + if (i == 0) + { + if (s[i] != ',' && s[i] != ':') break; + i = 1; + } + wordlen[k] = i; + } + for (; k < sizeof(word) / sizeof(word[0]); k++) + { + word[k] = s; wordlen[k] = 0; + } + return s[i]; +} + +void build_words_ignore() +{ + int i, j; + nwords_ignore = 0; + while (words_ignore[nwords_ignore][0]) + { + words_ign_sort[nwords_ignore] = words_ignore[nwords_ignore]; + nwords_ignore++; + } + for (i = 0; i < nwords_ignore; i++) for (j = 0; j < i; j++) + { + if (strcmp1(words_ign_sort[j], -1, words_ign_sort[i], -1) > 0) + { + char *s = words_ign_sort[j]; + words_ign_sort[j] = words_ign_sort[i]; + words_ign_sort[i] = s; + } + } + words_ign_sort[nwords_ignore] = words_ignore[nwords_ignore]; +} + +int find_word_ign_sort(const char *s, int n) +{ + int i0, i1, i; + if (nwords_ignore < 0) build_words_ignore(); + i0 = -1; i1 = nwords_ignore; + while (i1 > i0 + 1) + { + i = (i0 + i1) / 2; + if (strcmp1(s, n, words_ign_sort[i], -1) > 0) i0 = i; + else i1 = i; + } + return i1; +} + +char *find_word_ignore(const char *s, int n) +{ + int i = find_word_ign_sort(s, n); + return (strcmp1(s, n, words_ign_sort[i], -1) == 0) ? words_ign_sort[i] : 0; +} + +char *add_word_ignore(const char *s, int n) +{ + int i = find_word_ign_sort(s, n), j; + if (strcmp1(s, n, words_ign_sort[i], -1) != 0) + { + if (s[0] && strlen1(s, n) < sizeof(words_ignore[0]) && + words_ignore[nwords_ignore+1] < words_ignore[0] + sizeof(words_ignore)) + { + strcpy1(words_ignore[nwords_ignore], s, n); + words_ignore[nwords_ignore+1][0] = 0; + for (j = nwords_ignore; j >= i; j--) words_ign_sort[j+1] = words_ign_sort[j]; + words_ign_sort[i] = words_ignore[nwords_ignore]; + nwords_ignore++; + words_ign_sort[nwords_ignore] = words_ignore[nwords_ignore]; + } + else return 0; + } + return words_ign_sort[i]; +} + +struct CSegment +{ + char name[100]; + int state; + string text; +}; + +int nsegment = 0, cursegment = 0, stack_segment[50], nstack_segment = 0; +CSegment segment[100]; + +void push_stack_segment() +{ + if (nstack_segment < sizeof(stack_segment) / sizeof(stack_segment[0])) + { + stack_segment[nstack_segment] = cursegment; + } + nstack_segment++; +} + +void pop_stack_segment() +{ + if (nstack_segment > 0) nstack_segment--; + if (nstack_segment < sizeof(stack_segment) / sizeof(stack_segment[0])) + { + cursegment = stack_segment[nstack_segment]; + } +} + +void newsegment() +{ + segment[nsegment].name[0] = 0; + segment[nsegment].state = 0; + segment[nsegment].text = ""; + cursegment = nsegment++; +} + +void tosegment(char *name, int nameL) +{ + int i; + cursegment = 0; + if (strlen1(name, nameL) >= sizeof(segment[0].name)) return; + for (i = 0; i < nsegment; i++) + { + if (strcmp1(name, nameL, segment[i].name, -1) == 0) + { + cursegment = i; + return; + } + } + if (nsegment >= sizeof(segment) / sizeof(segment[0])) return; + newsegment(); + strcpy1(segment[cursegment].name, name, nameL); +} + +void outsegment() +{ + if (segment[cursegment].state == 0) return; + fputs("\nsegment", stdout); + if (segment[cursegment].name[0]) + { + fputc(' ', stdout); + fputs(segment[cursegment].name, stdout); + } + fputc('\n', stdout); + fputs(segment[cursegment].text.c_str(), stdout); + fputs("endseg", stdout); + if (segment[cursegment].name[0]) + { + fputs(" ", stdout); + fputs(segment[cursegment].name, stdout); + } + fputc('\n', stdout); +} + +void transform_label(int in_define, bool label = false) +{ + if (in_define) + { + memmove(str + 8, word[0], wordlen[0]); + memcpy(str, "nextdef ", 8); + str[wordlen[0]+8] = '\n'; + str[wordlen[0]+9] = 0; + } + else if (label) + { + memmove(str, word[0], wordlen[0]); + str[wordlen[0]] = ':'; + str[wordlen[0]+1] = '\n'; + str[wordlen[0]+2] = 0; + } + segment[cursegment].state |= 4; +} + +int main() +{ + char *s; + int in_macro = 0, in_define = 0, i; + newsegment(); + for (;;) + { + i = sizeof(str) - 200; + if (!fgets(str, i, stdin)) break; + if ((s = strchr(str, '\n')) == NULL) + { + if (strlen(str) < i-1) strcat(str, "\n"); + else + { + while (fgets(str, sizeof(str), stdin)) + { + if (strchr(str, '\n')) break; + } + continue; + } + } + char* p; + while (p=strstr(str,"st(")) + { + p[2]=p[3]; + memmove(p+3,p+5,strlen(p+5)+1); + } + get_word(str); + if (word[1][0] == ':') transform_label(in_define, false); + else + { + if (word[0][0] == '.') continue; + if (strcmp1(word[0], wordlen[0], WI_macro, -1) == 0 || + strcmp1(word[1], wordlen[1], WI_macro, -1) == 0) + { + add_word_ignore(word[0], wordlen[0]); + in_macro++; + continue; + } + if (strcmp1(word[0], wordlen[0], WI_endm, -1) == 0) + { + if (in_macro > 0) in_macro--; + continue; + } + if (strcmp1(word[1], wordlen[1], WI_segment, -1) == 0) + { + push_stack_segment(); + add_word_ignore(word[0], wordlen[0]); + tosegment(word[0], wordlen[0]); + continue; + } + if (strcmp1(word[1], wordlen[1], WI_ends, -1) == 0) + { + pop_stack_segment(); + continue; + } + if (find_word_ignore(word[0], wordlen[0])) continue; + if (wordlen[0] == 0 || strcmp1(word[0], wordlen[0], "align", -1) == 0) + { + if (word[0][0] == 0) {str[0] = '\n'; str[1] = 0;} + } + else if (strcmp1(word[1], wordlen[1], WI_endp, -1) == 0) + { + if (in_define > 0) strcpy(str, (--in_define) ? "newdef\n" : "enddef\n"); + } + else if (strcmp1(word[1], wordlen[1], WI_proc, -1) == 0) + { + memmove(str + 8, word[0], wordlen[0]); + memcpy(str, (in_define++) ? "newdef " : "define ", 8); + str[wordlen[0]+8] = '\n'; + str[wordlen[0]+9] = 0; + segment[cursegment].state |= 4; + } + else if (strcmp1(word[1], wordlen[1], WI_label, -1) == 0) + { + transform_label(in_define, true); + } + else + { + for (i = 0; i <= 1; i++) + { + if (strcmp1(word[i], wordlen[i], "db", -1) == 0 && + wordlen[i+2] >= 3 && strcmp1(word[i+2], 3, "dup", 3) == 0) + { + if (word[i][0] == 'd') word[i][0] = 'r'; + else if (word[i][0] == 'D') word[i][0] = 'R'; + word[i+1][wordlen[i+1]] = '\n'; + word[i+1][wordlen[i+1]+1] = 0; + segment[cursegment].state |= 2; + break; + } + } + if (i > 1) + { + int word_shift = 0; + for (i = 1; i < sizeof(word) / sizeof(word[0]); i++) + { + word[i] += word_shift; + if (wordlen[i] >= 4 && word[i][0] != '[' && + word[i][wordlen[i]-1] == ']' && + (s = strchr1(word[i], wordlen[i], '[')) != 0) + { + *s = '+'; + memmove(word[i] + 1, word[i], strlen(word[i]) + 1); + word[i][0] = '['; + wordlen[i]++; + word_shift++; + } + else if (wordlen[i] >= 1 && !strchr1(word[i], wordlen[i], '[') && + strcmp1(word[i-1], wordlen[i-1], "ptr", -1) == 0) + { + memmove(word[i] + wordlen[i] + 2, word[i] + wordlen[i], + strlen(word[i] + wordlen[i]) + 1); + memmove(word[i] + 1, word[i], wordlen[i]); + word[i][0] = '['; word[i][wordlen[i] + 1] = ']'; + wordlen[i] += 2; + word_shift += 2; + } + else if (wordlen[i] >= 5 && word[i][wordlen[i]-1] == ')' && + strcmp1(word[i], wordlen[i], "st(", -1)) + { + memmove(word[i] + 2, word[i] + 3, wordlen[i] - 4); + memmove(word[i] + wordlen[i] - 2, word[i] + wordlen[i], + strlen(word[i] + wordlen[i]) + 1); + word_shift -= 2; + } + } + segment[cursegment].state |= 1; + } + } + } + if (in_macro) continue; + if ((s = strchr(str, ';')) != NULL) + { + s[0] = '\n'; s[1] = 0; + if (!first_not_space(str)[0]) continue; + } + segment[cursegment].text += str; + } + for (cursegment = 0; cursegment < nsegment; cursegment++) + { + if ((segment[cursegment].state & 3) != 2) outsegment(); + } + fputs("\nI_END:\n", stdout); + for (cursegment = 0; cursegment < nsegment; cursegment++) + { + if ((segment[cursegment].state & 3) == 2) outsegment(); + } + fputs("\nalign 0x10\nU_END:\n", stdout); + return 0; +} + diff --git a/programs/demos/life2/t2fasm.exe b/programs/demos/life2/t2fasm.exe new file mode 100644 index 000000000..cad968b59 Binary files /dev/null and b/programs/demos/life2/t2fasm.exe differ