[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2217] Re: OSARIS(Re: (OSASK 2214)).



ばんにゃ、小川です。

----- Original Message ----- 
From: "Hidemi KAWAI" <kawai !Atmark! imasy.org>
To: "OSASK-ML" <osask !Atmark! afis.to>
Sent: Tuesday, September 25, 2001 10:58 AM
Subject: [OSASK 2216] OSARIS(Re: (OSASK 2214)).


>   僕は5000点程度までしかいけません。とても難しいです。
>   難しさについては、きっと調節してもらえると思っているので特に心

調整しました。これで20000点は誰でも超えるでしょう。


> 配はしていませんが、バイナリーが大きくなってきたのが心配です。

あれ? と思って慌てて見てみると、バイナリのサイズ 5k・・・・

そりゃ、まぁ、OSASKのモノの中では大きいですけどぉ(笑)


> これでバイナリーはさらに232バイト縮みます。
>   これ以上のダイエットのためには、大規模な改造が必要になりそうな
> ので、ここでは検討しません。ここでのアドバイスの趣旨は、お手軽に
> ダイエットできることなんですから(笑)。

という事で、確かに小さくなりました。

で、悔しいので色々いじってみた所、例えば、


      putstr( 0, 0, 0, 0, "                        ");
      putstr( 0, 1, 0, 0, "                        ");

を

     char* sp = "                        ";
      putstr( 0, 0, 0, 0, sp );
      putstr( 0, 1, 0, 0, sp );

とやってみた所、逆に太りました(爆)


また、

    // 壁データ
    // 判定時にはみ出しても良い様に余裕がある。
    const int wallsrc[26] = {
     0xffff,        // 1111111111111111
     0xe007,      // 1110000000000111

の辺りを全部消して、


  // 初期化(壁のデータ初期化)
  for( i = 0 ; i < 26 ; i++ ){
   wall[i] = wallsrc[i];
  }

を

  for( i = 0 ; i < 26 ; i++ ){
   if( i < 3 || i >= 23 ){
        wall[i] = 0xe007;
    }else{
        wall[i] = 0xffff;
    }
  }

にしてみた所、これまた太りました。

意外に難しいですな。


>   このゲーム自身の本質的な難しさもありますから、そんなにざくざく
> と削れるわけでもなさそうですし。

その代わり、キー入力に伴う処理の部分を配列を使って書き換えてみました。

その結果、出現するブロックの制限などを追加したにもかかわらず、
バイナリ 3,984 バイトになりました。
4kです!


あと、ちょっと消えるまでの待ち時間が長すぎたようなので大幅に短くしました。

http://www18.cds.ne.jp/~gyaplus/OSARIS.lzh

よろしかったら遊んでみて下さい。


ではさいならぁ(^^)/~~~
-------------------------------------------
小川 勲
gyaplus !Atmark! cds.ne.jp
www18.cds.ne.jp/~gyaplus/
-------------------------------------------