読者です 読者をやめる 読者になる 読者になる

LAMPエンジニアってこういうもんでしょ

こういうもんでしょって話をつらつらと

PHOのちっぱい幼馴染ルート回答をPHPで書いてみた

paizaのオンラインハッカソンで書いたコードを是非公開してね!
みたいな記事が上がっていました。

paiza.hatenablog.com

頭のおかしな優秀なエンジニア諸兄に負けじと 僕も頑張ってみたのでコードを晒してみます。

<?php
$area = explode(' ',fgets(STDIN));
$x = intval($area[0]);
$y = intval($area[1]);
$map = array_pad(array(), $x, 0);

for($i = 0; $i < $y; $i++) {
        $map = arraySuMerge($map, explode(' ',str_replace('2', '0', fgets(STDIN))));
}

$result = '';
for($yi = $y - 1; 0 <= $yi; $yi--) {
        for($xi = 0; $xi < $x; $xi++) {
                $result = ($map[$xi] <= $yi) ? $result.'0 ': $result.'1 ';
        }
        $result = trim($result).PHP_EOL;
}

echo $result;

function arraySuMerge($arr1, $arr2) {
        $tmp = array();
        foreach($arr1 as $key => $val) {
                $tmp[] = $arr1[$key] + $arr2[$key];
        }
        return $tmp;
}

いわゆく落ちゲーの画面描画を計算するためのコードを書いてくれ!みたいな課題でしたが
0は空白、1はブロック、2は消えるブロックという感じだったので
2を片っ端から0に置き換えた上で、1の下にあるものが0だったら詰める!
みたいな感じで書きました。
コメントぐらい書けよって話ですが競技プログラミングにコメントなんて不要です。
(メンテナンスしないしこの場限りのものだから)

正直製品としてこんなコード出てきたらグーパンチものですが、まあお遊びなのでこんなもんで勘弁願いたいです。

ちなみに個人的には野田さん推しです。

paiza.jp