アットウィキロゴ

move\h

var x = new Array();
var y = new Array();
var a = new Array();
var b = new Array();
var dir = new Array();
var number_dir = new Array();
 
function sample() {
 
    tx = 0;
    for (s = 1; s < 11; s++) {
        for (sx = 1; sx < 11; sx++) {
            tx = tx + 1;
            x[tx] = s;
            y[tx] = sx;
        }
    }
 
    for (s = 1; s < 11; s++) {
        a[s] = 1;
        b[s] = 100;
    }
 
    for (t = 1; t < 101; t++) {
        dir[t] = new Array();
    }
 
    for (t = 1; t < 101; t++) {
        tx = 0;
        for (s1 = -1; s1 < 2; s1++) {
            for (s2 = -1; s2 < 2; s2++) {
                x1 = x[t] + s1;
                y1 = y[t] + s2;
                sx = search(x1, y1);
                if (sx == t) sx = 0;
                if (sx > 0) tx = tx + 1;
                if (sx > 0) dir[t][tx] = sx;
            }
        }
        number_dir[t] = tx;
    }
 
    var timer;
    var delay = 1000;
 
 
    var loop = function () {
 
        mode = 0;
        for (s = 1; s < 11; s++) {
         s1 = a[s];
         y1 = y[s1];
         if (y1 > 5) mode = 100;
        }
 
        for (s = 1; s < 11; s++) {
            if (mode < 50) move_b(s);
}
 
        for (s = 1; s < 11; s++) {
            if (mode > 50) def_b(s);
        }
 
        mode = 0;
        for (s = 1; s < 11; s++) {
            s1 = b[s];
            y1 = y[s1];
            if (y1 < 5) mode = 100;
        }
 
        for (s = 1; s < 11; s++) {
            if (mode < 50) move_a(s);
        }
 
        for (s = 1; s < 11; s++) {
            if (mode > 50) def_a(s);
        }
 
 
 
 
 
 
 
        paint();
 
        clearTimeout(timer);
        timer = setTimeout(loop, delay);
    }
 
    loop();
 
 
 
 
 
 
}
 
 
 
function paint() {
 
    var sub = new svgpaint();
 
    str = "<svg width=\"500\" height=\"500\">";
 
    for (s = 1; s < 11; s++) {
        n1 = a[s];
        str = str + sub.rect(50 * x[n1] - 50, 50 * y[n1] - 50, 50, 50, "red");
    }
    for (s = 1; s < 11; s++) {
        n1 = b[s];
        str = str + sub.rect(50 * x[n1] - 50, 50 * y[n1] - 50, 50, 50, "blue");
    }
    str = str + "</svg>";
 
    $("#memo").html(str);
 
}
 
 
 
 
 
 
 
function search(x1, y1) {
 
    var s, sx, h;
    sx = 0;
    for (s = 1; s < 101; s++) {
        h = 0;
        if (x[s] == x1) h = h + 1;
        if (y[s] == y1) h = h + 1;
        if (h == 2) sx = s;
    }
    return sx;
 
}
 
 
function def_a(s1) {
 
    var s;
    a1 = a[s1];
    a2 = b[s1];
 
    mind = 9999;
    tx = a1;
    for (sx = 1; sx < number_dir[a1] + 1; sx++) {
        s2 = dir[a1][sx];
        d1 = dis(a1, s2);
        if (d1 < mind) tx = s2;
        if (d1 < mind) mind = d1;
    }
 
    a[s1] = tx;
 
 
}
 
function def_b(s1) {
 
    var sx;
    a1 = b[s1];
    a2 = a[s1];
 
    mind = 9999;
    tx = a1;
    for (sx = 1; sx < number_dir[a1] + 1; sx++) {
        s2 = dir[a1][sx];
        d1 = dis(a1, s2);
        if (d1 < mind) tx = s2;
        if (d1 < mind) mind = d1;
    }
 
    b[s1] = tx;
 
 
}
 
 
function dis(s1, s2) {
 
    d1 = (x[s2] - x[s1]) * (x[s2] - x[s1]) + (y[s2] - y[s1]) * (y[s2] - y[s1]);
 
    return d1;
 
}
 
 
 
function move_a(s) {
 
    s1 = a[s];
    var n1 = number_dir[s1] * Math.random();
    var n2 = Math.floor(n1) + 1;
    s2 = dir[s1][n2];
 
 
    var ar = new Array();
 
    for (s4 = 1; s4 < 101; s4++) {
    ar[s4] = 0;
    }
 
    for (s4 = 1; s4 < 11; s4++) {
        sx = a[s4];
        ar[sx] = 100;
        sx = b[s4];
        ar[sx] = 100;
    }
 
 
    if (ar[s2] < 50) a[s] = s2;
 
 
}
 
function move_b(s) {
 
    s1 = b[s];
    var n1 = number_dir[s1] * Math.random();
    var n2 = Math.floor(n1) + 1;
    s2 = dir[s1][n2];
 
 
    var c = new Array();
 
    for (s4 = 1; s4 < 101; s4++) {
        c[s4] = 0;
    }
 
    for (s4 = 1; s4 < 11; s4++) {
        sx = a[s4];
        c[sx] = 100;
        sx = b[s4];
        c[sx] = 100;
    }
 
 
    if (c[s2] < 50) b[s] = s2;
 
 
}
 
最終更新:2015年06月23日 13:55