文字列の八方向検索
Posted feedbacks - JavaScript
単純に総当たり。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function doukaku99(target, rect){ rect = rect.split(/[\r\n]+/);
var X = rect[0].length, Y = rect.length, find = function(x, y, dx, dy){
for(var i = 0, c; c = target.charAt(i++); x += dx, y += dy)
if(!rect[y] || c !== rect[y].charAt(x)) return false;
return true;
}, dir = { '上': [ 0, 1], '右上': [ 1, 1], '右': [ 1, 0], '右下': [ 1, -1],
'下': [ 0,-1], '左下': [-1,-1], '左': [-1, 0], '左上': [-1, 1] };
for(var out = [], o = 0, k, x, y = Y; y--;) for(x = X; x--;) for(k in dir)
if(find(x, y, dir[k][0], dir[k][1])) out[o++] = '('+ x +', '+ y +') '+ k;
return out.reverse().join('\n');
}
(typeof confirm != 'undefined' ? confirm : typeof print != 'undefined' ? print :
function($){ typeof WSH == 'object' && WSH.echo($) })(doukaku99('ウオリ','\
リオウウリウ\n\
ウオリウオリ\n\
オリリオリウ\n\
リリオオウオ'));
|

kuromin #4400() Rating0/2=0.00
[ reply ]