[OSASK 5064] BOARD: Re: kaoseye4

このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい
http://www.imasy.org/~mone/osask/index.cgi?REFER=3d9151bc_ee9f

2002/09/25 15:03
川合秀実

[OSASK 5062]へのレスです。

>そこいら辺を直したものを kaoseye4 として公開します。
>(ちゃんと直ってるといいんだけどなぁ・・・)

  チェックの方は後日やりますが、まずは簡単なアドバイスを。おせっかいだっ
たらすみません。

>なんかえらくソースが長くなってしまいました。今現在私は
>分割コンパイルがよくわかりません。だれか教えて〜  (T∀T)

  まあ分割コンパイルするかどうかはともかくとして、ソースを短くする簡単な
テクニックを紹介しましょう。

  ちょうど100行目に、

int IPoint[2][24];

というのがありますが、これを

int IPoint[2][24] = {
    { 11, 13, 14, 14, 15, 16, 16, 16, 14, 14, 13, 11 ,11, 10,  9,  8,  7,  7,  7,  7,  8,  9, 10, 11 },
    { 32, 32, 33, 34, 35, 36, 36, 37, 38, 39, 40, 40, 40, 40, 40, 39, 37, 36, 36, 35, 33, 32, 32, 32 }
};

と書き直します。そんでもって関数SetIPoint()は不要ですので、捨てましょう
。これでソースがコンパクトになるのはもちろんですが、バイナリもコンパクト
になります。実行速度も上がります。

  他の部分もついでだからやりますか。まず、関数ViewFace()をじっと見てくだ
さい。最初の方に、

  int Mimi[2][21];

というのがありますね。これを、

    static int Mimi[2][21] = {
        {  9,  8,  7,  7,  6,  6,  6,  6,  5,  5,  5,  5,  4,  4,  4,  4,  4,  4,  4,  4,  4 },
        { 10, 13, 15, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 32, 33, 33, 34, 34 }
    };

に置き換えて、そしてMimi[?][?]=?;の形式の部分は全部捨てます。同じ事はKao
[]にもできて、

    static int Kao[57] = {
        4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 7, 7, 7, 6, 6, 6, 5,
        5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 9, 9,
        10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 26, 28, 33, 39
    };

に直して、Kao[?]=?;の形式の部分は全部捨てられます。

  Weye_Lines[]については、こう簡単にはいかないので、次の機会に説明します
。Beye[][]はこれで代入を省略できるので、以上を真似して是非チャレンジして
ください。うまくいってお気に召したらまたリリースしてください。それを見て
またアドバイスを考えますから。


ML番号でジャンプ
ML単語検索