2011HSPプログラムコンテストのHSPTV部門ではaxファイルのサイズに制限があるため、プログラムの容量を抑えるために特殊なテクニックが多用されます。今回はそうしたテクニックのうち、多くのプログラムで利用されそうなものを紹介したいと思います。いっても、多くはすでにいなえ氏による講座で紹介されているため、ここではいくつかのコード片を並べることにします。return}very_very_useful_function解説deffuncや#defcfuncで定義した関数名はなぜかaxファイルに保存されてしまうため、#defineで適当な短い名前に置き換えることで容量を削減できます。#moduleと#globalはif文で代用することができます。名前空間は分離されないので変数の扱いには注意してください。...}解説if文は最終的な値が0以外かどうかで分岐するため、&のかわりに*を利用しても複数の条件のandをとることができます。0を判定するほうが容量は少なくできるので、論理を反転させることも考えてみるといいかもしれません。}解説repeat-loopをgoto文に置き換えると容量を削減できますが、このときローカルラベルを利用すると更に容量を削減することができます。ローカルラベルを入れ子にすることはできないほか、コードが読みにくくなるという問題もあるので、最初からローカルラベルを駆使しようとせず、普通に記述しておいてあとから最適化するほうが安全かもしれません。各方向についてif文で判定するのをやめ、X軸とY軸に分けてビット演算で処理するようにします。この時、単にビットが立っているかチェックして引き算するのではなく、もとの値を活かして演算が減るようにしています。