Столкнулся с трудностями в создании скрипта, который будет создавать расписание для игр футбольного турнира.
Дано:
N-количество команд
Каждая команда играет с каждой (круговая система)
Количество туров: N-1 (команда не может играть сама с собой)
Команда не может играть 2 раза за 1 тур; команда может играть с другой командой лишь 1 раз за время турнира
На данный момент продумываю идеологию этого скрипта. Сейчас считаю нормальным сделать вот так:
$count_teams = количество команд в турнире
$array_games = массив, в который будем записывать все игры
for ($i, $i < $count_teams; $i++) {
*составить пары из массива $count_teams* (Как это сделать???)
*проверить, не играла ли данная пара в турнире*
*если не играла, записать в массив игру*
}
На выходе хочу получить такой массив:
$arr = array(
'tour1' => array(
'0' => array (
'0' => 'team1',
'1' => 'team2'
)
'1' => array (
'0' => 'team3',
'1' => 'team4'
)
)
'tour2' => array(
'0' => array (
'0' => 'team1',
'1' => 'team4'
)
'1' => array (
'0' => 'team2',
'1' => 'team3'
)
)
);
Остался лишь вопрос в реализации этого. Как считаете, насколько это правильно? Какие есть еще методы создания данного функционала? Заранее спасибо!
UPD: Нашел точный аналог того, что мне нужно - http://challonge.com/ru/tournament/bracket_generator Вопрос 1 - как сделать это на php?
$teams=['t1','t2','t3','t4','t5','t6','t7','t8'];
function teamInTour($tour, $team){
foreach($tour as $game){
if(in_array($team, $game))return true;
}
return false;
}
$tours=[];
$games=[];
for($i=0;$i<count($teams);$i++){
for($j=$i+1;$j<count($teams);$j++){
$games[]=[$teams[$i],$teams[$j]];
}
}
for($i=0;$i<count($teams)-1;$i++){
$name='tour'.$i;
$tours[$name]=[];
foreach($games as $key=>$game){
if(teamInTour($tours[$name],$game[0])||teamInTour($tours[$name],$game[1]))continue;
$tours[$name][]=$game;
unset($games[$key]);
}
}
foreach($tours as &$t) {shuffle($t);}
sandbox
Виртуальный выделенный сервер (VDS) становится отличным выбором
Нужно в файле bitrix/php_interface/initphp вывести значение свойства блока
Добрый деньНемного не понимаю как работают проверки на клиенте и сервере
Суть такова: я загружаю картинку - в бд я заношу только директорию картинки и на нужной странице вывожу еёВывод: