package com.kangle;
public class Demo4_1 {
public static void main(String[] args)
{
long starttime = System.currentTimeMillis();
Cyslinkt Cys=new Cyslinkt();
Cys.setCys(9);
Cys.setk(2);
Cys.setm(2);
Cys.crateCys();
Cys.show();
Cys.play();
long time2 = System.currentTimeMillis();
System.out.println("玩游戏共用了" + (time2 - starttime)/1000.0 + "秒");
}
}
class childt
{
int no;
childt lastchild;
childt nextchild;
public childt(int no)
{
this.no=no;
}
}
class Cyslinkt
{
int len;
int k;
int m;
childt fistchild;
childt endchild;
childt tmp;
public void setCys(int len)
{
this.len=len;
}
public void setk(int k)
{
this.k=k;
}
public void setm(int m)
{
this.m=m;
}
public void crateCys()
{
for(int i=1;i<=this.len;i++)
{
if(i==1)
{
childt ch=new childt(i);
ch.lastchild=ch;
ch.nextchild=ch;
this.fistchild=ch;
this.tmp=ch;
}
else
{
if(i==len)
{
childt ch=new childt(i);
this.endchild=ch;
tmp.nextchild=ch;
ch.lastchild=tmp;
ch.nextchild=fistchild;
tmp=ch;
fistchild.lastchild=endchild;
}
else
{
childt ch=new childt(i);
ch.lastchild=tmp;
tmp.nextchild=ch;
tmp=ch;
}
}
}
}
public void play()
{
childt tmp3=this.fistchild;
for (int i =1;i<k;i++)
{
tmp3=tmp3.nextchild;
}
while(len!=1)
{
for (int i =1;i<m;i++)
{
tmp3=tmp3.nextchild;
}
System.out.println(tmp3.no+"is out");
tmp3.lastchild.nextchild=tmp3.nextchild;
tmp3.nextchild.lastchild=tmp3.lastchild;
len--;
tmp3=tmp3.nextchild;
}
System.out.println(tmp3.no+"留下了");
System.out.println(tmp3.no+"下个"+tmp3.nextchild.no+"上个"+tmp3.lastchild.no);
}
public void show()
{
childt tmp2=fistchild;
do
{
System.out.println(tmp2.no+"下个"+tmp2.nextchild.no+"上个"+tmp2.lastchild.no);
tmp2=tmp2.lastchild;
}while(tmp2!=fistchild);
}
}