[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Генерация сетки
winglife
Помогите сгенерировать турнирную сетку с помощь php.

Пример:
user posted image
Kusss
нарисовать, или пары составить ?
winglife
Kusss, пары составить
Kusss
всех участников в массив, а дальше по желанию.
array_rand — Выбирает одно или несколько случайных значений из массива
shuffle — Перемешивает массив.
winglife
Kusss, а как нарисовать?
Kusss
Рисовать точно не с помощью пхп.
Накидал вот, примитивно правда.
$array = array("Петя", "Вася", "Петя1", "Вася1", "Петя2", "Вася2", "Петя3", "Вася3", );
shuffle($array);
$new_array = array();
$l = 0;
foreach ($array AS $value){
$l++;
if ($l/2==intval($l/2))
$new_array[ $one ] = $value;
else
$one = $value;
}
echo '<pre>';
print_r($new_array);
echo '</pre>';

chee
Я бы решил эту задачу, с помощью таблицы, захардкоденой, если бы не нужна была гибкость.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
mvg
<div class="user_block">
<span
class="flag">
RUS
</span>
<span
class="imya">
VASYA
</span>
</div>


.css сам создашь.

П.C. Моно попробовать библиотеку gd, но там гемора много будет, еще html5 с тэгом canvas тоже подойдет, но там графику с помощью js рисовать - для продвинутых челов штукенции.
volter9
Цитата (mvg @ 5.01.2015 - 22:37)
еще html5 с тэгом canvas тоже подойдет


Есть библиотека KineticJS для canvas'а, можно ее попробовать. Еще можно сгенерировать вот эти линии (да и вообще всю диаграмму) с помощью SVG или библиотекой RaphaelJS.

В общем вот: http://jsfiddle.net/volter9/7yqhq2or/
У меня получилось сделать (почти) как на скрине на чистом HTML + CSS. Единственный минус этого метода это то что нужно знать точные размеры контейнеров для пользователей.

Заметка
Изначально я использовал SCSS, но решил скомпилировать в CSS что бы не пугались такого кода :)
А если кому то нужен оригинальный код, вот:
.clearfix {
&:after {
content: "";
font-size: 0px;
visibility: hidden;

clear: both;
display: block;
height: 0px;
width: 100%;
}

.left {
float: left;
}

.right {
float: right;
}
}

.wrapper {
@extend .clearfix;

padding: 10px;
width: 400px;

.section {
float: left;
width: 33.3%;

&.column-4 {

}

&.column-2 {
.group {
margin-top: 20px;
padding-left: 5px;

.user {
margin-bottom: 68px;
}
}
}

&.column-1 {
.group {
border-right: 0px;
border-top: 1px solid #fff;

height: 0px;
margin-top: 64px;

.user {
margin-left: 5px;
margin-right: 0px !important;
margin-top: -13px;
}
}
}

div.group {
border-top: 1px solid #ccc;
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
margin-bottom: 40px;

span.user {
background-color: #eee;
border: 1px solid #ccc;

display: block;
margin-top: -10px;
margin-right: 5px;
margin-bottom: 20px;
padding: 4px;

&:last-child {
margin-bottom: -10px;
margin-right: 5px;
}
}
}
}
}


_____________
Мой блог
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.