Надо перебрать массив данных для игры покер на костях.
Никак не могу решить задачу с составлением комбинации из кубиков.
Собственно массив:
$data = array( //каждый вложенный массив это одна костяшка (всего 5шт)
array(1,2,6), //конкретная кость, выдает результат 1 при первом броске, 2, при втором и 6 при третьем броске
array(6,1,5),
array(1,2,4),
array(3,4,5),
array(3,5,6),
);
Есть 5 кубиков и 3 хода для этого массива, разумеется речь идет об обычной игральной кости на 6 значений.
нужно проверить есть ли комбинация вообще. и если есть, то выдать массив с значением кубика, какой это кубик и в каком ходе выпадет это значение.
Собственно есть и "НО" у нас 3 хода, и если мы возьмем из массива " array(1,2,6), " это одна и та же кость, если мы выберем эту кость в первом ходе (1), то значениями 2 и 6 оперировать уже нельзя, так как эта кость по сути больше не выбрасывается на игровое поле.
я перебрал массив таким вот образом:
$temp = array();
//перебираю значение костяшек, от 1 до 6
for($znacenie=1;$znacenie<7;$znacenie++){
//перебираю конкретную костяшку
foreach ($data as $ind => $stolb){
//смотрю все 3 броска, если значение выпадает, то записываю его в промежуточный массив
if(in_array($znacenie,$stolb)){
$temp[$znacenie][] = $ind;
}
}
}
На выходе получаю вот такой вот массив:
$test = array();
$test[1] = array(0,1,2); //Индекс 1 это значение костяшки, 0,1,2 это порядковый номер костяшки, без учета хода
$test[2] = array(0,2);
$test[3] = array(3,4);
$test[4] = array(2,3);
$test[5] = array(1,3,4);
$test[6] = array(0,1,4);
То есть на выходе мне нужно собрать вот такой массив:
//Малый стрит
$result = array();
$result[1] = 0;
$result[2] = 2;
$result[3] = 4;
$result[4] = 3;
$result[5] = 1;
//Стрит
$result = array();
$result[2] = 2;
$result[3] = 4;
$result[4] = 3;
$result[5] = 1;
$result[6] = 0;
Но что-то мне подсказывает, что я совсем не в ту степь опять копаю, Подскажите, как бы вы решили такую задачу?