[トップ][編集][ノート][編集履歴][一覧][最近の更新][->English]

HSPコンテスト:ショートプログラム:裏テク編


このページではショートプログラムならではのサイズ削り術とかを溜め込んで生きたいと思います。

何かいいのがあったら追加していってください。

数字は小さめに

基本中の基本ですが。

        mes 512

        mes 511

より 4 バイト大きくなります。

とにかく省く

これも基本中の基本ですが。

省略できるパラメータは可能な限り省略すると、1パラメータ当り2バイト程度小さくなります。

よく使う文字列は変数に

HSP2.55は

        #define abc "ABC"

という風に文字列を定義するとコンパイル後の文字列も1つになったのですが、 HSP2.6xはそれを本当に置き換えるので、使えば使うだけサイズが増えていきます。 同じ文字列を使い回す場合は、できればHSP2.55を使いましょう。

もしHSP2.6xを使う場合は、

        abc = "ABC"

の様に変数に入れてあげましょう。

数値補完(非公式文法)

HSPでは、計算式の途中で数値が抜けている場合、直前の数値が使われます。

例えば、

        mes 4+4
        mes 4+

は同じ結果になります。 これを上手く使うと、

        x = x+  ; x = x*2
        x = x*  ; x = x*x

の様にサイズを削る事ができます。

ただし、幾つか注意点もあります。

  • //と/*と*/はコメントになってしまうので、間に空白を入れる
  • 括弧に入るとリセットされる
  • 括弧の最後は必ず数値

最後の十数バイトが削れない時に役立ちますが、 スクリプトがとても読み辛くなるので 元の式はコメントとして残しておきましょう。 コメントは幾ら入れてもサイズに関係ありません。