import 'dart:html';
List<int>age=new List<int>(100);
List<int>life=new List<int>(100);
List<int>car=new List<int>(100);
List<int>pre=new List<int>(100);
List<int>k=new List<int>(1000);
int number;
void main() {
int s,sx,t;
fast();
for(s=1;s<22;s++){
sx=age[s];
print(sx);
setx(s,sx,car[s]);
}
for(t=1;t<10;t++){
game sub=new game();
sub.life=life;
sub.age=age;
sub.car=car;
sub.number=number;
sub.k=k;
sub.makedata();
life=sub.life;
age=sub.age;
car=sub.car;
number=sub.number;
k=sub.k;
print(number);
}
}
int count(int s,int sx){
int c1;
c1=6*s+sx;
return c1;
}
void setx(int s,int sx,int x1){
int n;
n=count(s,sx);
k[n]=x1;
}
int getx(int s,int sx){
int n,x1;
n=count(s,sx);
x1=k[n];
return x1;
}
void fast(){
int s,sx,tx;
number=21;
tx=0;
for(s=1;s<7;s++){
for(sx=1;sx<s+1;sx++){
tx=tx+1;
age[tx]=7-s;
}
}
for(s=1;s<22;s++){
life[s]=100;
car[s]=s;
}
}
class game{
List<int>age=new List<int>(100);
List<int>life=new List<int>(100);
List<int>car=new List<int>(100);
List<int>pre=new List<int>(100);
List<int>k=new List<int>(1000);
int number;
void makedata(){
int s,sx;
for(s=1;s<7;s++){
death(s);
}
for(s=1;s<number+1;s++){
pre[s]=0;
}
for(s=1;s<16;s++){
move(s);
}
fresh();
number=number+6;
for(s=1;s<number+1;s++){
age[s]=age[s]+1;
}
for(s=1;s<number+1;s++){
car[s]=pre[s];
}
for(s=1;s<number+1;s++){
sx=age[s];
if(life[s]>50)setx(s,sx,car[s]);
}
}
void fresh(){
int s;
for(s=1;s<7;s++){
life[number+s]=100;
age[number+s]=0;
pre[number+s]=15+s;
}
}
void death(int a1){
int s,h,subnumber,sx;
List<int>subx=new List<int>(100);
sx=0;
for(s=1;s<number+1;s++){
h=0;
if(life[s]>50)h=h+1;
if(age[s]==a1)h=h+1;
if(h==2)sx=sx+1;
if(h==2)subx[sx]=s;
}
subnumber=sx;
int maxnumber,sxs;
sxs=0;
maxnumber=0;
for(s=1;s<subnumber+1;s++){
sx=subx[s];
if(car[sx]>maxnumber)sxs=sx;
if(car[sx]>maxnumber)maxnumber=car[sx];
}
life[sxs]=0;
}
void move(int p1){
int s,sx,h,subnumber;
List<int>subx=new List<int>(100);
sx=0;
for(s=1;s<number+1;s++){
h=0;
if(life[s]>50)h=h+1;
if(pre[s]==0)h=h+1;
if(h==2)sx=sx+1;
if(h==2)subx[sx]=s;
}
subnumber=sx;
int maxnumber,sxs;
sxs=0;
maxnumber=999;
for(s=1;s<subnumber+1;s++){
sx=subx[s];
if(car[sx]<maxnumber)sxs=sx;
if(car[sx]<maxnumber)maxnumber=car[sx];
}
pre[sxs]=p1;
}
int count(int s,int sx){
int c1;
c1=6*s+sx;
return c1;
}
void setx(int s,int sx,int x1){
int n;
n=count(s,sx);
k[n]=x1;
}
int getx(int s,int sx){
int n,x1;
n=count(s,sx);
x1=k[n];
return x1;
}
}
最終更新:2013年11月20日 23:26