<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8" />
<script src="sample.js"></script>
<script src="jquery.js"></script>
<script src="svgpaint.js"></script>
<script src="ex.js"></script>
<title>信長の野望</title>
</head>
<body onload="sample()">
<p id="memo"></p>
</body>
</html>
var number_link = new Array();
var link = new Array();
var x = new Array();
var y = new Array();
var delta = new Array();
var k = new Array();
function sample(){
for (s = 1; s < 101;s++ ){
link[s]=new Array();
}
var sub = new ex();
sub.faststep();
number_link = sub.number_link;
link = sub.link;
x = sub.x;
y = sub.y;
delta = sub.delta;
k = sub.k;
var timer;
var delay = 1000;
var loop = function () {
for (s = 1; s < 101; s++) {
var s4 = delta[s];
var n1 = number_link[s4];
var n2 = n1 * Math.random();
var n3 = Math.floor(n2) + 1;
delta[s] = link[s4][n3];
sx = delta[s];
k[sx] = s;
}
paint();
clearTimeout(timer);
timer = setTimeout(loop, delay);
}
loop();
}
function paint(){
var sub2=new svgpaint();
str="<svg width=\"500\" height=\"500\">";
for(s=1;s<101;s++){
if(k[s]>50)str=str+sub2.rect(50*x[s]-50,500-50*y[s],50,50,"blue");
if(k[s]<50)str=str+sub2.rect(50*x[s]-50,500-50*y[s],50,50,"red");
}
str=str+"</svg>";
$("#memo").html(str);
}
class ex{
x: number[] = new Array();
y: number[] = new Array();
delta: number[] = new Array();
k: number[] = new Array();
link: any[] = new Array();
number_link: number[] = new Array();
faststep():void{
var s:number;
var sx:number;
var tx:number;
tx=0;
for(s=1;s<11;s++){
for(sx=1;sx<11;sx++){
tx=tx+1;
this.x[tx]=s;
this.y[tx]=sx;
this.delta[tx]=tx;
this.k[tx]=tx;
}
}
for(s=1;s<101;s++){
this.link[s]=new Array();
}
var dx:number;
var dy:number;
var s1:number;
for(s=1;s<101;s++){
tx=0;
for(dx=-1;dx<2;dx++){
for(dy=-1;dy<2;dy++){
s1=this.search(s,dx,dy);
if(s1>0)tx=tx+1;
if(s1>0)this.link[s][tx]=s1;
}
}
this.number_link[s]=tx;
}
}
search(s:number,dx:number,dy:number):number{
var x1=this.x[s]+dx;
var y1=this.y[s]+dy;
var sx:number;
var h:number;
var s1:number;
s1=0;
for(sx=1;sx<101;sx++){
h=0;
if(x1==this.x[sx])h=h+1;
if(y1==this.y[sx])h=h+1
if(h==2)s1=sx;
}
if(s1==s)s1=0;
return s1;
}
}
最終更新:2015年09月28日 22:33