Доброго времени суток, друзья ! Столкнулся с необычной проблемой, которую не понимаю как решить. Хочу спросить у вас совета или решения. 1) Например, генерируем число от 5 до 30 . Возьмем 7 2) Представьте, что вы кидаете 3 кубика. В первом случае выпало - 1, втором 2, 3 - 3 и т.д. Задача в том, чтобы представить это число в 3 кубиках через цикл. Нужно распределить числа в 3-ех блоках, чтобы в сумме получилось 7 . Например, в первый кубик положить цифру 1, во второй - 5 и в третий 1 ( В сумме 7 как раз ) и каждый раз, когда человек кидает кости, то цифры будут расположены по-разному в разных блоках. Если есть вопросы, то пишите . Небольшой пример кода PHP: $rand = '10'; $cubs = array( '1' => '2', '2' => '5', '3' => '3' ); // кинули 3 кубика, запихиваем разные цифры // кидаем ещё раз и располагаем по-другому $cubs = array( '1' => '1', '2' => '1', '3' => '8' );
А помочь то чем? PHP: $cub = array( mt_rand(1,8), mt_rand(1,8), mt_rand(1,8) ); var_dump($cub); //- Сумма всех чисел print( array_sum ($cub) );
@RomanVitte, если плясать от итогового числа и разбить его на три слагаемых, то вот: немоного теории.
@RomanVitte получилась классная игра кстати, надо словить трипер =) PHP: <?php $rand = rand ( 5 , 30); $rand_1 = rand ( 1 , $rand - 2); $rand_2 = rand ( 1 , ($rand - $rand_1) - 1); $rand_3 = $rand - ($rand_2 + $rand_1); $array = []; $array[1] = $rand_1; $array[2] = $rand_2; $array[3] = $rand_3; echo 'Цифра '.$rand.' на барабане, критути велосипед ...играет звук барабана из что где когда...<br>'; echo 'Первый кубик выкинул '.$rand_1.'<br>'; echo 'Второй кубик выкинул '.$rand_2.'<br>'; echo 'Третий кубик выкинул '.$rand_3.'<br><br>'; $i = 0; $k = -1; foreach($array as $key){ if($k === $key){ $i++; } $k = $key; } if($i === 1){ echo '<b>У вас Две пары (допер) </b>'; } if($i === 2){ echo '<b>Бинго-бонго Бинго-бонго Тройка (у вас трипер...) </b>'; } --- Добавлено --- @MouseZver Кстати как правильно сравнить если все значения в массиве равны между собой? p.s. блин я создал однорукого бандита, чертовы автоматы. @RomanVitte колись ты это и хотел создать да, а не какие то кубики???
@Artur_hopf PHP: <?php $a = 18; $b = 20; $c = 16; if ( min ( $a, $b, $c ) === ( $a + $b + $c ) / 3 ) { echo '!!!!'; }
min($array) == max($array) --- Добавлено --- Хотя если сравнивать надо всегда три числа, я бы сделал буквально сравнение трёх чисел потому что это выглядит более понятно .
Первый кубик должен быть rand(1, 4). Второй должен быть rand(1, 7 минус первый и минус 1) Третий должен быть = 7 - (первый + второй). Выводить на экран в случайном порядке.