用C在控制台写了一个动画,代码没做优化,十分简单粗暴。新版本win系统需使用老版本cmd
以管理员身份运行exe文件即可。
#include <stdio.h>
#include <windows.h>
void color (int x)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
}
int main()
{
int i,j,q=28,xxl=22,h=27,m=33,cc=2,xxx=1;
char s[68][53];
char z[140][53];
char zx[148][100];
for(i=0;i<35;i++)
{
for(j=0;j<28;j++)
zx[i][j]=' ';
for(j=28;j<=35;j++)
zx[i][j]='O';
for(j=36;j<100;j++)
zx[i][j]=' ';
}
for(i=35;i<134;i++)
{
for(j=0;j<h;j++)
zx[i][j]=' ';
for(j=h;j<h+4;j++)
zx[i][j]='O';
for(j=h+4;j<=m;j++)
zx[i][j]=' ';
for(j=m;j<m+4;j++)
zx[i][j]='O';
for(j=m+4;j<100;j++)
zx[i][j]=' ';
if(i<57)
{
h--;
m++;
}
if(i>110)
{
h++;
m--;
}
}
for(i=134;i<148;i++)
{
for(j=0;j<28;j++)
zx[i][j]=' ';
for(j=28;j<=35;j++)
zx[i][j]='O';
for(j=36;j<100;j++)
zx[i][j]=' ';
}
for(i=48;i<=51;i++)
for(j=31;j<=35;j++)
zx[i][j]='*';
for(i=129;i<=133;i++)
{
for(j=15;j<=17;j++)
zx[i][j]='*';
for(j=46;j<=48;j++)
zx[i][j]='*';
}
for(i=0;i<40;i++) //直行
{
for(j=0;j<28;j++)
z[i][j]=' ';
for(j=28;j<36;j++)
z[i][j]='O';
for(j=36;j<53;j++)
z[i][j]=' ';
}
for(i=40;i<61;i++) //拐弯+回;
{
for(j=0;j<q;j++)
z[i][j]=' ';
for(j=q;j<q+8;j++)
z[i][j]='O';
for(j=q+8;j<60;j++)
z[i][j]=' ';
if(i<53) //右移长度控制
q-=2;
if(i>53&&i<60) //回长度控制
q++;
}
for(i=61;i<101;i++) //直行
{
for(j=0;j<8;j++)
z[i][j]=' ';
for(j=8;j<16;j++)
z[i][j]='O';
for(j=16;j<53;j++)
z[i][j]=' ';
}
for(i=101;i<124;i++) //拐弯+回;
{
for(j=0;j<q;j++)
z[i][j]=' ';
for(j=q;j<q+8;j++)
z[i][j]='O';
for(j=q+8;j<60;j++)
z[i][j]=' ';
if(i<114) //右移长度控制
q+=2;
if(i>114&&i<121) //回长度控制
q--;
}
for(i=124;i<140;i++)
{
for(j=0;j<28;j++)
z[i][j]=' ';
for(j=28;j<=35;j++)
z[i][j]='O';
for(j=36;j<100;j++)
z[i][j]=' ';
}
for(i=54;i<=57;i++)
z[i][30]=z[i][31]=z[i][32]='*';
for(i=116;i<=119;i++)
z[i][14]=z[i][15]=z[i][16]='*';
for(i=0;i<40;i++) //直行
{
for(j=0;j<22;j++)
s[i][j]=' ';
for(j=22;j<29;j++)
s[i][j]='O';
for(j=29;j<53;j++)
s[i][j]=' ';
}
for(i=40;i<68;i++) //拐弯+回;
{
for(j=0;j<xxl;j++)
s[i][j]=' ';
for(j=xxl;j<xxl+8;j++)
s[i][j]='O';
for(j=xxl+8;j<53;j++)
s[i][j]=' ';
if(i<53) //右移长度控制
xxl++;
if(i>53&&i<60) //回长度控制
xxl--;
}
int k,c=28,begin=28,end=39;
q=39;
char x[104][40];
for(i=0;i<=10;i++)
{
for(j=0;j<q;j++)
x[i][j]=' ';
for(j=q;j<=39;j++)
x[i][j]='O';
if(q>27)
q--;
}
for(i=90;i<=101;i++)
{
for(j=0;j<=c;j++)
x[i][j]=' ';
for(j=c+1;j<=39;j++)
x[i][j]='O';
if(c<39)
c++;
}
for (i=11;i<=50;i++)
{
for (j=0;j<begin;j++)
x[i][j]=' ';
for (j=begin;j<=end;j++)
x[i][j]='O';
for (j=end+1;j<=39;j++)
x[i][j]=' ';
if(begin>0)
begin--;
if(end>0)
end--;
}
end++;
for (i=51;i<=89;i++)
{
for (j=0;j<begin;j++)
x[i][j]=' ';
for (j=begin;j<=end;j++)
x[i][j]='O';
for (j=end+1;j<=39;j++)
x[i][j]=' ';
if(end>=11)
begin++;
if(end<39)
end++;
}
//扭动组赋值
char kd[100][40];
for(i=0;i<100;i++)
{
for(j=0;j<38;j++)
kd[i][j]=' ';
kd[i][39]='O';
}
int p=1,g=1,xs=3;
char wy[200][120];
for(i=0;i<200;i++)
for(j=0;j<120;j++)
wy[i][j]=' ';
for(i=0;i<40;i++)
{
for(j=0;j<8;j++)
wy[i][j]=' ';
for(j=8;j<16;j++)
wy[i][j]='O';
for(j=16;j<100;j++)
wy[i][j]=' ';
}
/*直行赋值*/
j=16;
for(i=40;i<76;i++)
{
wy[i][j]='O';
if((i-39)%4==0&&i>=43)
g+=p;
j+=g;
if(i==55)
p=-p;
}
j=15;
p=1;
g=1;
for(i=42;i<78;i++)
{
wy[i][j]='O';
if((i-41)%4==0&&i>=45)
g+=p;
j+=g;
if(i==57)
p=-p;
}
j=14;
p=1;
g=1;
for(i=44;i<80;i++)
{
wy[i][j]='O';
if((i-43)%4==0&&i>=47)
g+=p;
j+=g;
if(i==59)
p=-p;
}
j=13;
p=1;
g=1;
for(i=46;i<82;i++)
{
wy[i][j]='O';
if((i-45)%4==0&&i>=49)
g+=p;
j+=g;
if(i==61)
p=-p;
}
j=12;
p=1;
g=1;
for(i=48;i<84;i++)
{
wy[i][j]='O';
if((i-47)%4==0&&i>=51)
g+=p;
j+=g;
if(i==63)
p=-p;
}
// 第5组;
j=11;
p=1;
g=1;
for(i=50;i<86;i++)
{
wy[i][j]='O';
if((i-49)%4==0&&i>=53)
g+=p;
j+=g;
if(i==65)
p=-p;
}
j=10;
p=1;
g=1;
for(i=52;i<88;i++)
{
wy[i][j]='O';
if((i-51)%4==0&&i>=55)
g+=p;
j+=g;
if(i==67)
p=-p;
}
j=9;
p=1;
g=1;
for(i=54;i<90;i++)
{
wy[i][j]='O';
if((i-53)%4==0&&i>=57)
g+=p;
j+=g;
if(i==69)
p=-p;
}
p=54;
for(j=8;j<16;j++)
{
for(i=40;i<p;i++)
wy[i][j]='O';
p-=2;
}
//补充 O
p=75;
for(j=116;j>=110;j--)
{
for(i=89;i>p;i--)
wy[i][j]='O';
p+=2;
}
for(i=90;i<130;i++)
{
for(j=109;j<117;j++)
wy[i][j]='O';
}
j=108;
p=-1;
g=-1;
for(i=130;i<166;i++)
{
wy[i][j]='O';
if((i-129)%4==0&&i>=133)
g+=p;
j+=g;
if(i==145)
p=-p;
}
j=109;
p=-1;
g=-1;
for(i=132;i<168;i++)
{
wy[i][j]='O';
if((i-131)%4==0&&i>=135)
g+=p;
j+=g;
if(i==147)
p=-p;
}
j=110;
p=-1;
g=-1;
for(i=134;i<170;i++)
{
wy[i][j]='O';
if((i-133)%4==0&&i>=137)
g+=p;
j+=g;
if(i==149)
p=-p;
}
j=111;
p=-1;
g=-1;
for(i=136;i<172;i++)
{
wy[i][j]='O';
if((i-135)%4==0&&i>=139)
g+=p;
j+=g;
if(i==151)
p=-p;
}
j=112;
p=-1;
g=-1;
for(i=138;i<174;i++)
{
wy[i][j]='O';
if((i-137)%4==0&&i>=141)
g+=p;
j+=g;
if(i==153)
p=-p;
}
j=113;
p=-1;
g=-1;
for(i=140;i<176;i++)
{
wy[i][j]='O';
if((i-139)%4==0&&i>=143)
g+=p;
j+=g;
if(i==155)
p=-p;
}
j=114;
p=-1;
g=-1;
for(i=142;i<178;i++)
{
wy[i][j]='O';
if((i-141)%4==0&&i>=145)
g+=p;
j+=g;
if(i==157)
p=-p;
}
j=115;
p=-1;
g=-1;
for(i=144;i<180;i++)
{
wy[i][j]='O';
if((i-143)%4==0&&i>=147)
g+=p;
j+=g;
if(i==159)
p=-p;
}
p=165;
for(j=8;j<16;j++)
{
for(i=179;i>p;i--)
wy[i][j]='O';
p+=2;
}
p=144;
for(j=116;j>=110;j--)
{
for(i=130;i<p;i++)
wy[i][j]='O';
p-=2;
}
for(i=180;i<200;i++)
{
for(j=0;j<8;j++)
wy[i][j]=' ';
for(j=8;j<16;j++)
wy[i][j]='O';
for(j=16;j<100;j++)
wy[i][j]=' ';
}
//菱形部分
char a[50][54];
k=15;
begin=24;
end=27;
for(i=0;i<=49;i++)
for(j=24;j<=27;j++)
a[i][j]='O';
for(i=0;i<=24;i++)
{
for(j=0;j<begin;j++)
a[i][j]=' ';
for(j=begin;j<24;j++)
a[i][j]='i';
for(j=28;j<=end;j++)
a[i][j]='i';
for(j=end+1;j<=51;j++)
a[i][j]=' ';
begin-=1;end+=1;
}
begin+=1;end-=1;
for(i=25;i<=49;i++)
{
for(j=0;j<begin;j++)
a[i][j]=' ';
for(j=begin;j<24;j++)
a[i][j]='i';
for(j=28;j<=end;j++)
a[i][j]='i';
for(j=end+1;j<=51;j++)
a[i][j]=' ';
begin+=1;end-=1;
}
system("color f3");
for(i=0;i<100;i++)
{
for(j=0;j<40;j++)
printf("%c",kd[i][j]);
printf("\n\n");
Sleep(2);
}
int yans=2;
system("color f3");
while(yans--)
{
for(i=0;i<=100;i++)
{
for (j=0;j<=39;j++)
printf("%c",x[i][j]);
if(i<=100)
printf("\n\n");
Sleep(1);
}
}
k=3;
while (k--)
{
for(i=0;i<=49;i++)
{
for(j=0;j<24;j++)
{
color(3);
printf("%c",a[i][j]);
}
for(j=24;j<=27;j++)
{
color(7);
printf("%c",a[i][j]);
}
for(j=28;j<=51;j++)
{
color(3);
printf("%c",a[i][j]);
}
printf("\n\n");
Sleep(1);
}
}
color(7);
for(i=47;i<=50;i++)
s[i][8]=s[i][9]=s[i][10]='*';
for(i=0;i<47;i++)
{
for(j=0;j<53;j++)
printf("%c",s[i][j]);
printf("\n\n");
Sleep(1);
}
for(i=47;i<=50;i++)
{
for(j=0;j<=10;j++)
{
color(4);
printf("%c",s[i][j]);
}
for(j=11;j<53;j++)
{
color(7);
printf("%c",s[i][j]);
}
printf("\n\n");
}
for(i=51;i<68;i++)
{
for(j=0;j<53;j++)
printf("%c",s[i][j]);
printf("\n\n");
Sleep(1);
}
while(cc--)
{
for(i=0;i<54;i++)
{
for(j=0;j<53;j++)
printf("%c",z[i][j]);
printf("\n\n");
Sleep(1);
}
for(i=54;i<=57;i++)
{
for(j=0;j<=29;j++)
{
color(7);
printf("%c",z[i][j]);
}
for(j=30;j<33;j++)
{
color(4);
printf("%c",z[i][j]);
}
printf("\n\n");
Sleep(1);
}
color(7);
for(i=58;i<116;i++)
{
for(j=0;j<53;j++)
printf("%c",z[i][j]);
printf("\n\n");
Sleep(1);
}
for(i=116;i<=119;i++)
{
for(j=0;j<=16;j++)
{
color(4);
printf("%c",z[i][j]);
}
for(j=17;j<53;j++)
{
color(7);
printf("%c",z[i][j]);
}
printf("\n\n");
Sleep(1);
}
for(i=120;i<140;i++)
{
for(j=0;j<53;j++)
printf("%c",z[i][j]);
printf("\n\n");
Sleep(1);
}
}
while(xxx--)
{
for(i=0;i<48;i++)
{
for(j=0;j<100;j++)
printf("%c",zx[i][j]);
printf("\n\n");
Sleep(1);
}
for(i=48;i<52;i++)
{
for(j=0;j<31;j++)
printf("%c",zx[i][j]);
color(4);
for(j=31;j<=35;j++)
printf("%c",zx[i][j]);
color(7);
for(j=36;j<100;j++)
printf("%c",zx[i][j]);
printf("\n\n");
Sleep(1);
}
for(i=52;i<129;i++)
{
for(j=0;j<100;j++)
printf("%c",zx[i][j]);
printf("\n\n");
Sleep(1);
}
for(i=129;i<134;i++)
{
color(4);
for(j=0;j<=17;j++)
printf("%c",zx[i][j]);
color(7);
for(j=18;j<46;j++)
printf("%c",zx[i][j]);
color(4);
for(j=46;j<100;j++)
printf("%c",zx[i][j]);
printf("\n\n");
Sleep(1);
}
color(7);
for(i=134;i<148;i++)
{
for(j=0;j<100;j++)
printf("%c",zx[i][j]);
printf("\n\n");
Sleep(1);
}
}
for(i=0;i<54;i++)
{
for(j=0;j<53;j++)
printf("%c",z[i][j]);
printf("\n\n");
Sleep(1);
}
for(i=54;i<=57;i++)
{
for(j=0;j<=29;j++)
{
color(7);
printf("%c",z[i][j]);
}
for(j=30;j<33;j++)
{
color(4);
printf("%c",z[i][j]);
}
printf("\n\n");
Sleep(1);
}
color(7);
for(i=58;i<102;i++)
{
for(j=0;j<53;j++)
printf("%c",z[i][j]);
printf("\n\n");
Sleep(1);
}
while(xs--)
{
for(i=0;i<200;i++)
{
for(j=0;j<120;j++)
{
color(xs+2);
printf("%c",wy[i][j]);
}
printf("\n\n");
Sleep(2);
}
}
}