コードを短く書く人のブログ

コードゴルフを稀に取り上げるブログ

僕がコードゴルフを始めたキッカケ

こんばんわ。@orisanoです。

この記事はICT Advent Calenderの20日目の記事です。

毎度毎度のことですが、
今日は僕が比較的時間を費やしている趣味である。
コードゴルフについて語りたいと思います。

始めたきっかけ

始めたきっかけはえむきょうじゅでした。
2年の頃?だったので今からちょうど2年前になります。
夏休みの合宿中、プロコンの開発の息抜きでえむきょうじゅにそそのかされたのが
すべての始まり(終わり)でした。

誰もが通るAOJ0000

某くま先輩と某えむきょうじゅが当時聞いたこともないコードゴルフという
趣深い競技をしていたので、開発に疲れた僕は息抜きとしてやってみることにしました。
初めてのコードゴルフAOJ0000でした。

#include <stdio.h>
int main(void)
{
    int i, j;

    for (i = 1; i <= 9; i++){
        for (j = 1; j <= 9; j++){
            printf("%dx%d=%d\n", i, j, i * j);
        }
    }

    return (0);
}

当時の僕はこんな感じのコードを

#include<stdio.h>
int main(void){
    int i,j;
    for(i=1;i<=9;i++){
        for(j=1;j<=9;j++){
            printf("%dx%d=%d\n",i,j,i*j);
        }
    }
    return 0;
}

こうすることをコードゴルフと呼ぶ非常に素直な好青年だったに違いありません!!
しかし、最終的に

j;main(i){for(;i%10;(j=++j%10)?printf("%dx%d=%d\n",i,j,i*j):i++);}

こういったコードを書く青年になってしまったようです。

そして

プロコンの開発(2時間)は停滞し、息抜き(5時間弱)が行われて、
おりさのという青年は変わってしまいました。

ここで伝えたかったことは趣味に打ち込むのもいいけど、
「実際のコーディングに影響を出しちゃダメだぞ★」ということです。
あとプロジェクトに火をつけちゃダメ、ゼッタイ

むしろ僕はコードゴルフを始めたから人一倍
コードの綺麗さ、読みやすさを意識するようになりました。
コードゴルフをやることでトリッキーなことをしているコードを読めるようになったり
環境について詳しくなったり、1byteに命をかけるようになったり
といろいろ良いことがありました。

最後に

僕がコードゴルフを始めたキッカケについて語る記事が
長くなってしまって申し訳ありませんでした。
明日はプロラボ現会長の@Pelkiraくんが書いてくれます。
(Accepted 2822byte)