├── README.md ├── golf_circle_out.js ├── test_golf_circle.js ├── golf_tree_out.js ├── golf_tree_tompng.js ├── run_js_test.rb ├── golf_tree.js ├── golf_circle.js └── test_golf_tree.js /README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /golf_circle_out.js: -------------------------------------------------------------------------------- 1 | r="";for(s=x=y=40;y+s;)r+="*-\n"[x+s?y*y+x*x-->899|0:(x=s,y-=2,2)];return r -------------------------------------------------------------------------------- /test_golf_circle.js: -------------------------------------------------------------------------------- 1 | function yourCode() { 2 | %YOUR_CODE% 3 | } 4 | 5 | function origCode() { 6 | r="";for(y=-21;++y<20;r+="\n")for(x=-41;++x<40;)r+="*-"[x*x/4+y*y>224|0];return r; 7 | } 8 | -------------------------------------------------------------------------------- /golf_tree_out.js: -------------------------------------------------------------------------------- 1 | f=Math.abs;for(a=4;a--;)for(q=y=o=z=i="";q<3239;z=i++<160?p<2?2+p:p-81?z||4|f(q%81-40)*2>2,a=b%4,q?0:f[a]="",y=q++/81|0,b++<12956;f[a]+="_%-*|\n"[q%81?z||0|f(q%81-41)*2224|0];return r; 10 | 11 | r="";for(x=y=-40;y<40;)r+=x>39?(x=-40,y+=2,"\n"):"*-"[x*x+++y*y>899|0];return r; 12 | 13 | 14 | r="";x=-41;for(y=-40;y<40;)r+=++x>39?(x=-41,y+=2,"\n"):"*-"[x*x+y*y>899|0];return r; 15 | 16 | r="";x=-41;for(y=-21;++x<40?(r+="*-"[x*x/4+y*y>224|0]):(r+="\n",x=-41,++y<20););return r; 17 | 18 | r="";x=-41;for(y=-21;y<20;)r+=++x>39?x=-41,++y,"\n":"*-"[x*x/4+y*y>224|0];return r; 19 | 20 | r="";for(a=-1;++a<3240;)x=a%81-40,y=(a/81|0)-20,r+="-*\n"[x>39?2:x*x/4+y*y<225&1];return r; 21 | 22 | 23 | r="";for(s=x=y=-40;y+s;)r+=x+s?"*-"[y*y+x*x++>899|0]:(x=s,y+=2,"\n");return r; 24 | r="";for(s=x=y=-40;y+s;)r+=x+s?y*y+x*x++>899?"*":"-":(x=s,y+=2,"\n");return r; 25 | r="";for(s=x=y=-40;y+s;)r+=x+s?"*-"[y*y+x*x++>899|0]:(x=s,y+=2,"\n");return r 26 | r="";for(s=x=y=-40;y+s;)r+=x+s?y*y+x*x++>899?"*":"-":(x=s,y+=2,"\n");return r 27 | 28 | r="";for(s=x=y=40;y+s;)r+=x+s?"*-"[y*y+x*x-->899|0]:(x=s,y-=2,"\n");return r 29 | */ 30 | r="";for(s=x=y=40;y+s;)r+="*-\n"[x+s?y*y+x*x-->899|0:(x=s,y-=2,2)];return r 31 | 32 | //r="";for(s=x=y=40;y+s;r+="*-\n"[d])d=x+s?y*y+x*x-->899|0:(x=s,y-=2,2);return r 33 | 34 | -------------------------------------------------------------------------------- /test_golf_tree.js: -------------------------------------------------------------------------------- 1 | function origCode() { 2 | var arrayMax = 4; 3 | var resArray = new Array(arrayMax); 4 | // アニメ用の4枚のアスキーアートを返す 5 | 6 | var w = 80; 7 | var h = 40; 8 | var illumination = 160; 9 | 10 | // キャンバス用配列を初期化 11 | var canvasArray = new Array(4); 12 | for (var a = 0; a < arrayMax; a ++) { 13 | canvasArray[a] = new Array(h); 14 | for (var y = 0; y < h; y ++) { 15 | canvasArray[a][y] = new Array(w); 16 | } 17 | } 18 | 19 | // ツリーを作成 20 | for (var a = 0; a < arrayMax; a ++) { 21 | for (var y = 0; y < h; y ++) { 22 | for (var x = 0; x < w; x ++) { 23 | canvasArray[a][y][x] = "_"; 24 | 25 | var treeTop = Math.floor(y / 8) * 4; 26 | var treeW = Math.floor(y / 8 + 1) * 8; 27 | 28 | if (Math.abs(x - w / 2) < (y - treeTop) % treeW) { 29 | canvasArray[a][y][x] = "%"; 30 | } 31 | } 32 | } 33 | } 34 | 35 | // イルミネーションを作成 36 | for (var a = 0; a < arrayMax; a ++) { 37 | for (var i = 0; i < illumination; i ++) { 38 | var r = (a + i) * i * 49999 + 59999 & 0xFFFF; 39 | var x = 1 + r % (w - 2); 40 | var y = 1 + r % (h - 2); 41 | 42 | canvasArray[a][y][x] = "*"; 43 | canvasArray[a][y][x - 1] = "-"; 44 | canvasArray[a][y][x + 1] = "-"; 45 | canvasArray[a][y - 1][x] = "|"; 46 | canvasArray[a][y + 1][x] = "|"; 47 | } 48 | } 49 | 50 | // 文字列化 51 | for (var a = 0; a < arrayMax; a ++) { 52 | var arrayY = new Array(h); 53 | for (var y = 0; y < h; y ++) { 54 | arrayY[y] = canvasArray[a][y].join(""); 55 | } 56 | resArray[a] = arrayY.join("\n"); 57 | } 58 | 59 | // 戻り値を戻して終了 60 | return resArray; 61 | } 62 | 63 | function yourCode() { 64 | %YOUR_CODE% 65 | } 66 | 67 | function resConv(r) { 68 | var a = []; 69 | for (var i = 0; i < 4; i++) 70 | a[i] = r[i]; 71 | return a; 72 | } 73 | --------------------------------------------------------------------------------