2015-01-31 2 views
0

У меня есть структура дерева. Я знаю некоторые условия. Я хотел бы привести пример:Нужно упорядочить некоторые номера соответственно на вид

469 & 470 results 468 
472 & 473 results 471 
476 & 477 results 475 
479 & 480 results 478 

Это раунд 1 предположим. В следующих нескольких турах:

Round 2: 
    468 & 471 results 467 
    475 & 478 results 474 
Round 3: 
    467 & 474 results 466 

Мне нужно уложить их, как показано на изображении. Кроме того, у меня есть еще одна вещь, чтобы организовать их, я сделал несколько идентификаторов в css, чтобы они вошли в соответствующее положение. Так, начиная с самого правого он должен получить 15, а затем оставили ему 14, 13. Я не могу добавлять изображения, так что я делаю структуру здесь сама:

469 
    468 
470 
     467 
472 
    471 
473 
      466 
476 
    475 
477 
     474 
479 
    478 
480 

Теперь число каждый будет получить это:

1 
    9 
2 
     13 
3 
    10 
4 
      15 
5 
    11 
6 
     14 
7 
    12 
8 

Теперь мой вопрос: я получаю эту информацию из базы данных, что эти два числа приводят к трем. Мне нужно написать фрагмент кода, который делает эту компоновку автоматической. Я получаю массив хэшей для каждого числа. Означает хеш для 469, другой для 470 и т. Д. В rails термин, который мы называем ActiveRecord :: Relation. Кто-нибудь может мне помочь.

Больше уточнений: Я всегда знаю, что 469 & 470 результатов 468 и так далее. Также предположим, что я нахожусь на 466, тогда у него будет подробная информация о том, что он пришел от 467 & 474. Короче говоря, он имеет передние и обратные оба числа. Я хочу запустить цикл на них и упорядочить их в указанном выше порядке, чтобы совпадающие графики и правые боковые графики совпадали. Это можно считать матчем мирового кубка любого вида спорта, в котором два матча приводят к следующему матчу и так далее. И, наконец, я хочу сделать дерево на мой взгляд.

+1

В каком формате вы получаете результаты для просмотра? Я имею в виду массив или хэш? Пожалуйста, поделитесь форматом, пожалуйста. – Ajay

ответ

0

Я решил проблему. То, что я сделал, сделано обычным хэшем. Для этого я провел цикл, как это:

Первый взял последний, т.е., в приведенном выше примере это 466. Таким образом, я вставил его в хэш:

{5 => {466}} 

Тогда я знаю, что 466 пришел от 467 & 474. Таким образом, я вставил эти два в то же самое имеет, как это:

{5 => {466}, 4=> {467, 474}} 

Тогда для следующего я побежал петлю на хэш [4] и первый взял два графика из 467 и вставляется в хеш, а затем два из 474 в хеше. Это так:

{5 => {466}, 4 => {467, 474}, 3 => {468, 471, 475, 478}} 

и так далее. И затем в представлении я зациклился на хеше в соответствии с ключом и разместил их в представлении. Предположим, что хэш является s. Затем:

(4).downto(1).each do |i| 
    s[i].each do |x| 
    #code to display here 
    end 
end 

Надеюсь, это тоже поможет кому-то еще, если им нужно сделать то же самое.

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