예제 #1
0
 public void dynamicTransfer(List <Stack <PlanetController> > nestedPlanets, int startStack, int endStack, int total)
 {
     if (total == 1)
     {
         PlanetController planet = nestedPlanets [startStack].Pop();
         nestedPlanets [endStack].Push(planet);
         bool isExist = stacks [endStack].planets.Any(x => x.name == planet.name);
         if (!isExist)
         {
             stacks [endStack].planets.Add(planet);
         }
         planet.MoveUp();
         planet.MoveTo(endStack);
         planet.DropDown();
     }
     else
     {
         int aux = 3 - startStack - endStack;
         dynamicTransfer(nestedPlanets, startStack, aux, total - 1);
         dynamicTransfer(nestedPlanets, startStack, endStack, 1);
         dynamicTransfer(nestedPlanets, aux, endStack, total - 1);
     }
 }