(window.onload = function() {var mouseX;var mouseY;var cellXY = new Array( 40.5, 130.5, 40.5, 210.5, 80.5, 90.5, 80.5, 170.5, 80.5, 250.5, 120.5, 130.5, 120.5, 210.5, 160.5, 130.5, 160.5, 210.5, 200.5, 90.5, 200.5, 170.5, 200.5, 250.5, 240.5, 130.5, 240.5, 210.5, 280.5, 130.5, 280.5, 210.5, 320.5, 90.5, 320.5, 170.5, 320.5, 250.5, 360.5, 130.5, 360.5, 210.5);var bgc = '#AADD99';var flag = 0x7EEF4;var temp = new Array(0x0F9F74, 22.0, 0x0F9F78, -50.0/9.0, 0x0F8FF4, 23.0, 0x0F8FF8, -45.0/9.0, 0x0FAEF4, 25.0, 0x0FAEF8, -35.0/9.0, 0x07DF74, 32.0, 0x07DF78, 0.0/9.0, 0x07CFF4, 33.0, 0x07CFF8, 5.0/9.0, 0x07EEF4, 35.0, 0x07EEF8, 15.0/9.0, 0x12FBF4, 40.0, 0x12FBF8, 40.0/9.0, 0x12FEF4, 46.0, 0x12FEF8, 70.0/9.0, 0x12EFF4, 49.0, 0x12EFF8, 85.0/9.0, 0x175F74, 52.0, 0x175F78, 100.0/9.0, 0x174FF4, 53.0, 0x174FF8, 105.0/9.0, 0x176EF4, 55.0, 0x176EF8, 115.0/9.0, 0x1F65F4, 64.0, 0x1F65F8, 160.0/9.0, 0x04FFF4, 78.0, 0x04FFF8, 230.0/9.0, 0x1FC9F4, 87.0, 0x1FC9F8, 275.0/9.0, 0x17E5F4, 94.0, 0x17E5F8, 310.0/9.0);var t=12;var getCell=-1, putCell=-1;var count=0;function draw() { var canvas = document.getElementById('cvs'); if ( ! canvas || ! canvas.getContext ) return false; var ctx = canvas.getContext('2d'); printCell(); function cellX(x, y) { ctx.beginPath(); ctx.moveTo(x-35,y); ctx.lineTo(x-25,y-10); ctx.lineTo(x+25,y-10); ctx.lineTo(x+35,y); ctx.lineTo(x+25,y+10); ctx.lineTo(x-25,y+10); ctx.closePath(); ctx.fill(); ctx.stroke(); } function cellY(x, y) { ctx.beginPath(); ctx.moveTo(x,y-35); ctx.lineTo(x+10,y-25); ctx.lineTo(x+10,y+25); ctx.lineTo(x,y+35); ctx.lineTo(x-10,y+25); ctx.lineTo(x-10,y-25); ctx.closePath(); ctx.fill(); ctx.stroke(); } function nearCell() { var z = Math.pow(mouseX-cellXY[0],2)+Math.pow(mouseY-cellXY[1],2); for (var j=0, i=1; i!=21; i++) { var z2 = Math.pow(mouseX-cellXY[i*2],2)+Math.pow(mouseY-cellXY[i*2+1],2); if ( Math.min(z2,z) == z2 ) { j = i; z = z2; } } ctx.beginPath(); if ( (Math.min(j%7,2) == 2)*(Math.max(j%7,4) == 4) ) cellX(cellXY[j*2],cellXY[j*2+1]); else cellY(cellXY[j*2],cellXY[j*2+1]); ctx.fill(); return j; } function printCell() { eval('ctx.fillS'+'tyle = \'#FFFFDD\''); ctx.fillRect(0,0,400,400); ctx.lineJoin = 'round'; eval('ctx.fillS'+'tyle = bgc'); eval('ctx.strokeS'+'tyle = bgc'); ctx.lineWidth = 30.0; ctx.rect(25,30,350,250); ctx.fill(); ctx.stroke(); eval('ctx.fillS'+'tyle = \'#000000\''); eval('ctx.strokeS'+'tyle = \'#000000\''); ctx.lineWidth = 5.5; for (var i=0; i!=21; i++) { if ( Math.floor(flag/Math.pow(2,20-i))%2 == 1 ) { if ( (Math.min(i%7,2) == 2)*(Math.max(i%7,4) == 4) ) cellX(cellXY[i*2],cellXY[i*2+1]); else cellY(cellXY[i*2],cellXY[i*2+1]); } } ctx.lineWidth = 13.5; ctx.beginPath(); ctx.arc(260.0,70.0,15.0,0,2*Math.PI, false); ctx.closePath(); ctx.stroke(); ctx.lineWidth = 1.0; eval('ctx.strokeS'+'tyle = \'#000000\''); for (var i=0; i!=11; i++) { if ( i%5 == 0 ) { ctx.moveTo(Math.floor(80.5+i*25.0)+0.5,335.5); ctx.lineTo(Math.floor(80.5+i*25.0)+0.5,350.5); } else { ctx.moveTo(Math.floor(80.5+i*25.0)+0.5,340.5); ctx.lineTo(Math.floor(80.5+i*25.0)+0.5,350.5); } ctx.stroke(); } for (var i=3; i!=23; i++) { if ( i%5 == 0 ) { ctx.moveTo(Math.floor(80.5+(i-3.2)*125.0/9.0)+0.5,350.5); ctx.lineTo(Math.floor(80.5+(i-3.2)*125.0/9.0)+0.5,365.5); } else { ctx.moveTo(Math.floor(80.5+(i-3.2)*125.0/9.0)+0.5,350.5); ctx.lineTo(Math.floor(80.5+(i-3.2)*125.0/9.0)+0.5,360.5); } ctx.stroke(); } for (var i=0; i!=temp.length/2; i++) { if ( flag == temp[2*i] ) { t = i; break; } } ctx.lineWidth = 1.2; for (var i=0; i!=count; i++) { ctx.beginPath(); ctx.arc(65.0+i*30.0,280.0,5.0,0,2*Math.PI,false); ctx.closePath(); ctx.fill(); } eval('ctx.strokeS'+'tyle = \'#FFFFFF\''); eval('ctx.fillS'+'tyle = \'rgba(200,200,255,0.7)\''); ctx.beginPath(); ctx.arc(50.0,350.0,10.0,1.0*Math.PI/6.0,11.0*Math.PI/6.0,false); ctx.lineTo(355.0,345.0); ctx.arc(355.0,350.0,5.0,3.0*Math.PI/2.0,Math.PI/2.0,false); ctx.lineTo(50.0+10.0*Math.sqrt(3.0),355.0); ctx.closePath(); ctx.fill(); ctx.stroke(); eval('ctx.fillS'+'tyle = ctx.strokeStyle = \'#FF0000\''); ctx.beginPath(); ctx.arc(50.0,350.0,6.0,0,2*Math.PI,false); ctx.closePath(); ctx.fill(); ctx.lineWidth = 3.5; ctx.moveTo(50.0,350.0); ctx.lineTo(80.5+2.5*temp[2*t+1],350.0); ctx.stroke(); eval('ctx.strokeS'+'tyle = \'#000000\''); ctx.lineWidth = 5.5; } canvas.onmousemove = mouseMoveListner; function mouseMoveListner(e) { adjustXY(e); if ( getCell != -1 ) { printCell(); eval('ctx.fillS'+'tyle = bgc'); nearCell(); } } canvas.onmousedown = mouseDownListner; function mouseDownListner(e) { adjustXY(e); eval('ctx.fillS'+'tyle = bgc'); getCell = nearCell(); canvas.cursor = 'hand' } canvas.onmouseup = mouseUpListner; function mouseUpListner(e) { adjustXY(e); if ( getCell != -1 ) { putCell = nearCell(); if ( putCell != -1 ) { var g1 = 0x100000/Math.pow(2,getCell); var g2 = Math.floor(flag/Math.pow(2,20-getCell))%2; var p1 = 0x100000/Math.pow(2,putCell); var p2 = Math.floor(flag/Math.pow(2,20-putCell))%2; flag -= g1*g2; flag -= p1*p2; flag += g1*p2; flag += p1*g2; count ++; if ( count == 11 ) { count = 0; flag = 0x7EEF4; } printCell(); getCell = putCell = -1; } } } function adjustXY(e) { var rect = e.target.getBoundingClientRect(); mouseX = e.clientX - rect.left; mouseY = e.clientY - rect.top; }}draw();})();
3回の操作で可能な限り低い温度に設定せよ。
Set the lowest temperatures as possible in 3 times operations.
こんな感じでウェブリドル(web riddle)を沢山仕込んで、正解したら次のページに飛ぶようにする予定。
問題のヒントは、knifeのblog内のどこかに書かれていたり、必要に応じて自分で調べたりする。
いっそのこと、問題文すら提示しないほうがいいかなー。
とりあえず、HTML5とJavaScriptで操作はできるけど、次ページには飛ぶ様に変更してないから、いろいろいじってみて。
コメントやブログなどでヒントや答えを書くことはやめてね。
3回の操作で可能な限り低い温度に設定せよ。
Set the lowest temperatures as possible in 3 times operations.
こんな感じでウェブリドル(web riddle)を沢山仕込んで、正解したら次のページに飛ぶようにする予定。
問題のヒントは、knifeのblog内のどこかに書かれていたり、必要に応じて自分で調べたりする。
いっそのこと、問題文すら提示しないほうがいいかなー。
とりあえず、HTML5とJavaScriptで操作はできるけど、次ページには飛ぶ様に変更してないから、いろいろいじってみて。
コメントやブログなどでヒントや答えを書くことはやめてね。