10分でできないと恥ずかしいプログラムをphpでやってみた
お久しぶりです。最近はUnityブログばっかりでこちらが全然更新できていませんでした。
反省。
さて、twitterでこんな話題があったので挑戦してみました
phpで挑戦。もっとスマートなやり方があるでしょうし、配れない時の処理の無駄加減とかがひどいですが、1時間くらいで出来たのでご容赦を。
<?php $q1 = deal(3, "123123123"); print_r($q1); $q2 = deal(4, "123123123"); print_r($q2); $q3 = deal(6, "012345012345012345"); print_r($q3); $q4 = deal(4,"111122223333"); print_r($q4); $q5 = deal(1,"012345012345012345"); print_r($q5); $q6 = deal(6,"01234"); print_r($q6); $q7 = deal(2,""); print_r($q7); function deal( $player, $card ){ $result = floor(strlen($card) / $player); $surplus = strlen($card) % $player; if($surplus != 0){ $maxlen = strlen($card) - $surplus; }else{ $maxlen = strlen($card); } $array = array(); $cnt = 0; for ($i = 0; $i < $maxlen; $i++ ){ if($cnt == $player){ $cnt = 0; } $number = (string)$array[$cnt]; $number .= substr($card,$i,1); $array[$cnt] = $number; $cnt++; } if(strlen($card) < $player){ $array = array(); for ($i = 0; $i < $player; $i++ ){ $array[$i] = ""; } } return $array; } ?>
結果
Array
(
[0] => 111
[1] => 222
[2] => 333
)
Array
(
[0] => 12
[1] => 23
[2] => 31
[3] => 12
)
Array
(
[0] => 000
[1] => 111
[2] => 222
[3] => 333
[4] => 444
[5] => 555
)
Array
(
[0] => 123
[1] => 123
[2] => 123
[3] => 123
)
Array
(
[0] => 012345012345012345
)
Array
(
[0] =>
[1] =>
[2] =>
[3] =>
[4] =>
[5] =>
)
Array
(
[0] =>
[1] =>
)