2012年05月03日

IOCCC 国際邪悪なCコードコンテスト

じゅりあんです。
最近プロコンやらACMやらお誘いがくるのですが,どうにも去年までのようなやる気が出てこなくて,このままではダメ人間になってしまうと危機感を募らせています。

ところでIOCCCという大会があることをご存知でしょうか。
正式名称は「The International Obfuscated C Code Contest」直訳すると「国際邪悪なCコードコンテスト」になります。
Cソースコードを故意に読みにくくしてその汚さなどを競う大会です。
汚いといっても教育なんかでインデントを知らない新入部員のソースコードのような読みにくさではなく,ソースコード自体をASCIIアートのようなものにしたりだとか,一見コンパイルできないんじゃないのかっていうものだったりだとかそんな感じの「汚い」です。
まぁその他詳しくはWikipediaとか公式サイト(英語)とか見てみるといいです。

この大会はここ数年やっていなかったのですが,なんか突如として2011年に大会をやっていたようです。
その中で一番僕が気になったのが「akari.c」です。

以下がそのソースコード。
akari.png
ファイル名の通り某アニメ主人公なASCIIアートとなっています。
BCCでコンパイルできるか試してみたのですが,何事もないかのように普通に通ります。
X:\Users\******\Desktop>bcc32 -w- akari.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
akari.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

このソースコードの正体はPGM・PPM(画像保存形式)のダウンサンプリングツール(画像縮小)で,サンプルをダウンロードするとついてくるexample.ppmを変換すると\アッカリ〜ン/の文字が現れます…。
akkari-n.png
ASCIIアートのダウンサンプリングにも対応しており,akari.cをakari.exeに通してakari2.cを出力すると見事に小さくなったあかりが出てきます。
それだけかとおもいきやこいつをさらにコンパイルすることもできるようです。
akari2.png
このダウンサンプリングは3段階まで可能で,ダウンサンプリングしたものを組み合わせることでROT13のフィルタにもなります。

さらにさらにこのソースコードはBrainf*ckのソースコードにもなっていて,実行すると以下の文章を出力します。(BrainF*ckインタープリタで実行の結果)
ITSUMO MIRAKURU
ITSUMO MIRAKURU
ITSUMO MIRAKURU
ITSUMO MIRAKURU
MOUSOUCHUU


にしてもここまでくるともう開いた口がふさがらないという感じです。
部員の皆さんはGWの暇つぶしにこのソースコードを読んでみたりするといい勉強になるのではないのでしょうかww

まぁそんなわけでじゅりあんでした。

以下,参考文献
info:akari
わぁいakari.c あかりakari.c大好き


拍手する
posted by シス研P at 21:02 | Comment(2) | TrackBack(0) | 紹介シリーズ | このブログの読者になる | 更新情報をチェックする

2010年01月30日

消費のすゝめ

皆消費してるー?
いいもの作るにはいいものを消費する必要があると思うんだ。
だから、自分が面白いと思った作品をどんどん紹介していけばいいと思うんだ。

ということで紹介します。


Orisinal.com - Winterbells


ウサギを操作してベルの上を飛んでいくゲームです。
操作はマウスだけで、普段ゲームをやらない人でも簡単に遊ぶことができます。
システムとしては、ベルを踏むたびに加算値が増えていく形式。
また、途中に出現する鳥を踏むとポイントが2倍になるため、指数関数的に点が増えていく。
そのため、点数におもいっきり差が出るのも面白い。
グラフィックやBGM、SEも可愛くて綺麗に演出されている。
この演出と簡単な操作性のため、幅広いユーザ層が楽しむことができます。

因みに、僕の最高点は10000000点ちょい越えでした。
上手い人は1億とか10億行くらしいですけど、そこまで根気が続きません。


こんな感じで、面白い作品があったらブログでどんどん紹介していきましょう!

by taka



拍手する
posted by シス研P at 03:42 | Comment(1) | TrackBack(0) | 紹介シリーズ | このブログの読者になる | 更新情報をチェックする
Copyright © 2007-09 SYSKEN All rights reserved.