#include <stdio.h>
int number = 0;
void Swap(int *a,int*b)
{
*a = *a+*b;
*b = *a-*b;
*a = *a-*b;
}
void print(int a[])
{
int i;
printf("No.%2d:…………………………………………………………\n",number++);
for(i = 0;i < 7;i++)
{
printf(" ");
printf("|%c",a[i] == 1?'*':(a[i] == 2?'@':' '));
}
printf("\n………………………………………………………………\n");
}
int main(void)
{
int t[7] = {1,1,1,0,2,2,2};
int i,flag;
print(t);
while(t[0]+t[1]+t[2] != 6 || t[4]+t[5]+t[6] != 3)
{
flag = 1;
for(i = 0;flag&&i < 5;i++)
{
if(t[i] == 1&&t[i+1] == 2&&t[i+2] == 0)
{
Swap(&t[i+2],&t[i]);
print(t);
flag = 0;
}
}
for(i = 0;flag&&i < 5;i++)
{
if(t[i] == 0&&t[i+1] == 1&&t[i+2] == 2)
{
Swap(&t[i],&t[i+2]);
print(t);
flag = 0;
}
}
for(i = 0;flag&&i < 6;i++)
{
if(t[i] == 1&&t[i+1] == 0&&(i == 0||t[i-1] != t[i+2]))
{
Swap(&t[i],&t[i+1]);
print(t);
flag = 0;
}
}
for(i = 0;flag&&i < 6;i++)
{
if(t[i] == 0&&t[i+1] == 2&&(i == 5||t[i-1] != t[i+2]))
{
Swap(&t[i],&t[i+1]);
print(t);
flag = 0;
}
}
}
return 0;
}