OSASK

スクロールバーをカンタンにつけるようなもの

……があったらベンリジャーン!というもの。というか、CSVVにつけたいだけです。

あるゴリ(ラの踊りのリ)ズムアルゴリズム・1

  • スクロールバー領域の、スライダー(?)の背景ありますよね、アミアミのやつです。
  • あれを描画するようなソースなんですが、あなたならどのソースがいいですか?
    選択肢 投票
    Pattern 1 0  
    Pattern 2 0  

  • Pattern 1(719Bytes)
    • やたら長くてムダっぽい。でも、そんな状態で無駄に大きく単純なバイナリに圧縮がきいて超軽量。
      for (j = 0; j < sy; j++) {
      	for (i = 0; i < sx; i++) {
      		if (j % 2) {
      			if (i % 2)
      				p_gbox[(py+j)*skip + px+i] = 8;
      			else
      				p_gbox[(py+j)*skip + px+i] = 15;
      		} else {
      			if (i % 2)
      				p_gbox[(py+j)*skip + px+i] = 15;
      			else
      				p_gbox[(py+j)*skip + px+i] = 8;
      		}
      	}
      }
  • Pattern 2(740Bytes)
    • 色々計算してソースを縮めることに成功。しかし、Pattern 1よりもサイズが大きい。
      for (j = 0; j < sy; j++) {
      	for (i = 0; i < sx; i++)
      		p_gbox[(py+j)*skip + px+i] = (i + j) % 2 * 7 + 8;
      }
  • おまけ: ふるいPattern2
    • 少し計算した状態。でも、これがイチバン大きい(750バイトぐらい)。
      for (j = 0; j < sy; j++) {
      	for (i = 0; i < sx; i++) {
      		if (j % 2)
      			p_gbox[(py+j)*skip + px+i] = 15 - (i % 2 * 7);
      		else
      			p_gbox[(py+j)*skip + px+i] = 8 + (i % 2 * 7);
      	}
      }

こめんとらん

  • (i + j) % 2 を ((i + j) & 1) にしてみよう! -- K 2006-06-01 (木) 18:35:06
  • なんと!!718バイトに!! -- あっきぃ 2006-06-01 (木) 19:27:21

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-03-25 (木) 23:57:04