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] => )