2015-08-27 2 views
-1

Как мы можем написать алгоритм в PHP, чтобы переместить объекты в их правильные позиции со следующими ограничениями на местеКак написать алгоритм упорядочивания объектов в соответствующих слотах

slot-1 slot-2 slot-3 slot-4 slot-5 
obj-4 obj-5 Empty obj-3 obj-1 
  • Два объекта не может поменяться местами , Например, вы не можете поменять obj-4 и obj-1 в приведенном выше примере.
  • Вы можете перемещать объект в пустой слот.
  • Итак, в приведенном выше примере, если вы ввели obj-1 в его правильное положение, сначала перемещая obj-4 в слот-3 (который пуст) , а затем переместите obj-1 в слот-1 (который теперь пустой, потому что obj-4 был перемещен в слот-3)

Любая идея была бы полезной, так что я могу попробовать себя.

+3

Вы что-то пробовали? – Reeno

+0

@Reeno - нет, я не понял, с чего начать, я был в замешательстве. Есть идеи? так что я могу попробовать. – Developer

+0

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что он слишком широк и нет кода для исправления. – Ejaz

ответ

0

просто поставить:

  1. Шаг: проверьте, какой слот пуст.

2.а Шаг: возьмите объект, который принадлежит в слот и передать его

2.b Если слот не имеет фитинг OBJ-н передать следующий объект в слот, который не находится в своем (пример: если слот-2 пуст, нет объекта подгонки, поэтому мы просто передаем следующий объект, который не находится в указанном слоте.)

  1. Начать снова до Шаг 2b больше не находит элемент, который не находится в указанном слоте.

    КОД Edit: переменная boolean1 = False

    Выполнить для цикла столько раз, пока boolean1 не правда

    для х в arrayslots: (первый для цикла)

    if x is empty: 
        get x.slot_number # Step 1 
        for y in objects: 
         if slot_number==y_object_number: 
          transfer object # Step 2 
          break 1st for-loop #(and start anew -> Step 3) 
        if x == empty # no obj. could be found for the slot 
         for x in objects: 
          if x is NOT in the right slot: 
           transfer x to empty slot 
           break the 1st for--loop #(and start anew -> Step 3) 
         boolean1 = True #You only reach this when the loop finds that no objects are in the wrong place anymore. 
    
+0

Любой фрагмент кода кода? – Developer

+0

havent запрограммирован в php в течение длительного времени, но что-то в этом роде (см. Выше выше в мин.) – Cribber

+0

это помогает? Вы все равно должны перенести его в компилируемый код в php, но я думаю, что это хороший старт - мне не нужно делать всю работу за вас;) – Cribber

Смежные вопросы