<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>鉄道</title>
<script src="jquery.js"></script>
<script src="sample.js"></script>
<script src="svgpaint.js"></script>
</head>
<body onload="sample()">
<p id="memo"></p>
</body>
</html>
var d_line=new Array();
var a_line=new Array();
var b_line=new Array();
var number_line;
var number;
var trip=new Array();
var number_trip;
var point=new Array();
function sample(){
var timer;
var delay = 100;
number=100;
for(s=1;s<number;s++){
a_line[s]=s;
b_line[s]=s+1;
d_line[s]=1;
}
number_line=99;
var loop = function(){
gotrip();
for(tr1=1;tr1<number_trip;tr1++){
for(tr2=tr1+1;tr2<number_trip+1;tr2++){
plus(tr1,tr2);
}}
count_line();
paint();
clearTimeout(timer);
timer = setTimeout(loop,delay);
}
loop();
}
function count_line(){
for(s=1;s<number+1;s++){
point[s]=0;
}
for(s=1;s<number_line+1;s++){
s1=a_line[s];
s2=b_line[s];
point[s1]=point[s1]+1;
point[s2]=point[s2]+1;
}
}
function paint(){
var sub=new svgpaint();
str="<svg width=\"500\" height=\"500\">";
tx=0;
for(s=1;s<11;s++){
for(sx=1;sx<11;sx++){
tx=tx+1;
if(point[tx]>0)str=str+sub.rect(50*s,50*sx,50,50,"blue");
if(point[tx]>4)str=str+sub.rect(50*s,50*sx,50,50,"yellow");
if(point[tx]>19)str=str+sub.rect(50*s,50*sx,50,50,"pink");
if(point[tx]>49)str=str+sub.rect(50*s,50*sx,50,50,"red");
}}
str=str+"</svg>";
$("#memo").html(str);
}
function plus(tr1,tr2){
var x1=trip[tr1];
var x2=trip[tr2];
var l1=check_line(x1,x2);
if(l1==0)number_line=number_line+1;
if(l1==0)a_line[number_line]=x1;
if(l1==0)b_line[number_line]=x2;
if(l1==0)d_line[number_line]=dis_trip(tr1,tr2);
}
function dis_trip(tr1,tr2){
d1=0;
for(s=tr1;s<tr2;s++){
sx=check_line(trip[s],trip[s+1]);
d1=d1+d_line[sx];
}
return d1;
}
function check_line(s1,s2){
var s,ss;
ss=0;
for(s=1;s<number_line+1;s++){
h=0;
if(a_line[s]==s1)h=h+1;
if(b_line[s]==s2)h=h+1;
if(h==2)ss=s;
}
for(s=1;s<number_line+1;s++){
h=0;
if(b_line[s]==s1)h=h+1;
if(a_line[s]==s2)h=h+1;
if(h==2)ss=s;
}
return ss;
}
function gotrip(){
trip[1]=fast();
number_trip=1;
var mode=0;
while(mode<50){
var m1=search(trip[number_trip]);
var cc=check_trip(m1);
if(cc<50)number_trip=number_trip+1;
if(cc<50)trip[number_trip]=m1;
if(cc>50)mode=100;
}
}
function check_trip(delta){
var s,chx;
chx=0;
for(s=1;s<number_trip+1;s++){
if(trip[s]==delta)chx=100;
}
return chx;
}
function search(delta){
var chx=new Array();
var z=new Array();
var number_z;
for(s=1;s<number+1;s++){
chx[s]=0;
}
for(s=1;s<number_line+1;s++){
s1=b_line[s];
if(a_line[s]==delta)chx[s1]=100;
}
for(s=1;s<number_line+1;s++){
s1=a_line[s];
if(b_line[s]==delta)chx[s1]=100;
}
var sx=0;
for(s=1;s<number+1;s++){
if(chx[s]>50)sx=sx+1;
if(chx[s]>50)z[sx]=s;
}
number_z=sx;
var n1=number_z*Math.random();
var n2=Math.floor(n1)+1;
return z[n2];
}
function fast(){
var n1=number*Math.random();
var n2=Math.floor(n1)+1;
return n2;
}
最終更新:2015年05月02日 13:59