int main () {
uint8_t dest_num = 0;
uint8_t step_num = 0;
uint8_t people_num = 2;
uint8_t dest_turn_buf[8];
for (uint8_t p = 1; p <= 8; p++)
{
people_num = p;
for (uint8_t t = 1; t <= 8; t++)
{
dest_num = t;
memset(dest_turn_buf, 0, 8);
dest_turn_buf[0] = dest_num;
step_num = 8 / people_num;
for (uint8_t i = 1, j = dest_num; i < (people_num / 2 + people_num % 2); i++)
{
if ((j + step_num) <= 8)
{
dest_turn_buf[i] = j + step_num;
j = j + step_num;
}
else
{
if ((j + step_num) - 8 < step_num)
{
dest_turn_buf[i] = step_num - (step_num - ((j + step_num) - 8));
j = step_num - (step_num - ((j + step_num) - 8));
}
else if ((j + step_num) - 8 == step_num)
{
dest_turn_buf[i] = step_num;
j = step_num;
}
}
}
step_num = 4;
for (uint8_t i = 0, j = (people_num / 2 + people_num % 2); i < people_num / 2 ; i++,j++)
{
if ((dest_turn_buf[i] + step_num) <= 8)
{
dest_turn_buf[j] = dest_turn_buf[i] + step_num;
}
else
{
if ((dest_turn_buf[i] + step_num) - 8 < step_num)
{
dest_turn_buf[j] = step_num - (step_num - ((dest_turn_buf[i] + step_num) - 8));
}
else if ((dest_turn_buf[i] + step_num) - 8 == step_num)
{
dest_turn_buf[j] = step_num;
}
}
}
printf("《People:%d》《Init:%d》[", people_num, dest_num);
for (uint8_t i = 0; i < 8; i++)
printf(" %d", dest_turn_buf[i]);
printf("]\n");
}
}
return 0;
}