-
Notifications
You must be signed in to change notification settings - Fork 0
/
Game_of_Life_in_Quine.js
68 lines (68 loc) · 8.36 KB
/
Game_of_Life_in_Quine.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
w=15;h=15;b='3';s='23';a='';l=[]/*___________________________Game of Life in Quine___________________________________by Yukkku_____*/
l=l.concat([' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '])
if(null){l=[' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ']}
if(null){l=[' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ']}
a+=`c=[];for(y=0;y<h;y++){for(x=0;x<w;x++){m=((l[((x+1)%w)+((y+1)%h)*w]+l[(x%w)+((y+1)%h)*w]+l[((x-1)%w)+((y+1)%h)*w]+l[((x+1)%w)+(y`
l=l.concat([' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '])
if(null){l=[' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ']}
if(null){l=[' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ']}
a+=`%h)*w]+l[((x-1)%w)+(y%h)*w]+l[((x+1)%w)+((y-1)%h)*w]+l[(x%w)+((y-1)%h)*w]+l[((x-1)%w)+((y-1)%h)*w]+'').match(/#{5}/g)||[]).lengt`
l=l.concat([' ',' ',' ',' ',' ','#####','#####',' ',' ',' ',' ',' ',' ',' ',' '])
if(null){l=[' ',' ',' ',' ',' ','#####','#####',' ',' ',' ',' ',' ',' ',' ',' ']}
if(null){l=[' ',' ',' ',' ',' ','#####','#####',' ',' ',' ',' ',' ',' ',' ',' ']}
a+=`h;c.push(((l[x+y*w]=='#####'?s:b).indexOf(m.toFixed())!==-1)?'#####':' ')}};a+='/'.repeat(Math.max(0,(8*w+8)*h-11-a.length))`
l=l.concat([' ',' ',' ',' ',' ','#####',' ',' ',' ',' ',' ',' ',' ',' ',' '])
if(null){l=[' ',' ',' ',' ',' ','#####',' ',' ',' ',' ',' ',' ',' ',' ',' ']}
if(null){l=[' ',' ',' ',' ',' ','#####',' ',' ',' ',' ',' ',' ',' ',' ',' ']}
a+=`;a=a.substr(0,(8*w+8)*h-11);g=(a+String.fromCodePoint(96)+';eval(a)//').match(new RegExp('.{'+(w*8+8)+'}','g'));r="w="+w+";h="+h`
l=l.concat([' ',' ',' ',' ','#####','#####',' ',' ','#####','#####','#####',' ',' ',' ',' '])
if(null){l=[' ',' ',' ',' ','#####','#####',' ',' ','#####','#####','#####',' ',' ',' ',' ']}
if(null){l=[' ',' ',' ',' ','#####','#####',' ',' ','#####','#####','#####',' ',' ',' ',' ']}
a+=`+";b='"+b+"';s='"+s+"';a='';l=[]/*"+'_'.repeat(w*4-26-(b+s+w+h).length)+'Game of Life in Quine'+'_'.repeat(w*4-25)+'by Yukkku___`
l=l.concat([' ',' ',' ',' ','#####',' ',' ',' ','#####',' ','#####','#####','#####',' ',' '])
if(null){l=[' ',' ',' ',' ','#####',' ',' ',' ','#####',' ','#####','#####','#####',' ',' ']}
if(null){l=[' ',' ',' ',' ','#####',' ',' ',' ','#####',' ','#####','#####','#####',' ',' ']}
a+=`__*/'+String.fromCodePoint(10);for(i=0;i<h;i++){r+="l=l.concat(['"+c.slice(i*w,i*w+w).join("','")+"'])"+String.fromCodePoint(10)`
l=l.concat([' ',' ',' ',' ','#####','#####',' ','#####',' ',' ',' ',' ','#####',' ',' '])
if(null){l=[' ',' ',' ',' ','#####','#####',' ','#####',' ',' ',' ',' ','#####',' ',' ']}
if(null){l=[' ',' ',' ',' ','#####','#####',' ','#####',' ',' ',' ',' ','#####',' ',' ']}
a+=`+("if(null){l=['"+c.slice(i*w,i*w+w).join("','")+"']}"+String.fromCodePoint(10)).repeat(2);r+='a+='+String.fromCodePoint(96)+g[i`
l=l.concat([' ',' ',' ',' ',' ',' ','#####',' ','#####',' ',' ',' ',' ',' ',' '])
if(null){l=[' ',' ',' ',' ',' ',' ','#####',' ','#####',' ',' ',' ',' ',' ',' ']}
if(null){l=[' ',' ',' ',' ',' ',' ','#####',' ','#####',' ',' ',' ',' ',' ',' ']}
a+=`]+String.fromCodePoint(96)+String.fromCodePoint(10)};console.log(r)/////////////////////////////////////////////////////////////`
l=l.concat([' ',' ','#####',' ',' ',' ',' ','#####',' ','#####','#####',' ',' ',' ',' '])
if(null){l=[' ',' ','#####',' ',' ',' ',' ','#####',' ','#####','#####',' ',' ',' ',' ']}
if(null){l=[' ',' ','#####',' ',' ',' ',' ','#####',' ','#####','#####',' ',' ',' ',' ']}
a+=`////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////`
l=l.concat([' ',' ','#####','#####','#####',' ','#####',' ',' ',' ','#####',' ',' ',' ',' '])
if(null){l=[' ',' ','#####','#####','#####',' ','#####',' ',' ',' ','#####',' ',' ',' ',' ']}
if(null){l=[' ',' ','#####','#####','#####',' ','#####',' ',' ',' ','#####',' ',' ',' ',' ']}
a+=`////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////`
l=l.concat([' ',' ',' ',' ','#####','#####','#####',' ',' ','#####','#####',' ',' ',' ',' '])
if(null){l=[' ',' ',' ',' ','#####','#####','#####',' ',' ','#####','#####',' ',' ',' ',' ']}
if(null){l=[' ',' ',' ',' ','#####','#####','#####',' ',' ','#####','#####',' ',' ',' ',' ']}
a+=`////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////`
l=l.concat([' ',' ',' ',' ',' ',' ',' ',' ',' ','#####',' ',' ',' ',' ',' '])
if(null){l=[' ',' ',' ',' ',' ',' ',' ',' ',' ','#####',' ',' ',' ',' ',' ']}
if(null){l=[' ',' ',' ',' ',' ',' ',' ',' ',' ','#####',' ',' ',' ',' ',' ']}
a+=`////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////`
l=l.concat([' ',' ',' ',' ',' ',' ',' ',' ','#####','#####',' ',' ',' ',' ',' '])
if(null){l=[' ',' ',' ',' ',' ',' ',' ',' ','#####','#####',' ',' ',' ',' ',' ']}
if(null){l=[' ',' ',' ',' ',' ',' ',' ',' ','#####','#####',' ',' ',' ',' ',' ']}
a+=`////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////`
l=l.concat([' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '])
if(null){l=[' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ']}
if(null){l=[' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ']}
a+=`////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////`
l=l.concat([' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '])
if(null){l=[' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ']}
if(null){l=[' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ']}
a+=`/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////`;eval(a)//`
/*
設定の仕方(ここはQuineされません。)
1行名の最初の「w=15;h=15;b='3';s='23';」の部分を弄ります。
wとhは横幅、縦幅です。
bとsはルールです。通常のライフゲームの場合はb='3';s='23'です。数字しか対応していません。
入力したら少し形が崩れますが実行すると自動で形が整えられます。
*/