倉庫番的な何か。

投稿者:      2 mini eider 投稿日:2011/08/11 00:06

今まで書いてきたものと何の関係もない
倉庫番的なものを考えてる。

ベースとしてはantukuさんのACT実験室。
で、座標判定↓
BLOCK[0][0] = 0;BLOCK[1][0] = 0;BLOCK[2][0] = 1;BLOCK[3][0] = 0;
BLOCK[4][0] = 0;BLOCK[5][0] = 0;BLOCK[6][0] = 1;BLOCK[7][0] = 0;

BLOCK[0][1] = 0;BLOCK[1][1] = 1;BLOCK[2][1] = 3;BLOCK[3][1] = 1;
BLOCK[4][1] = 1;BLOCK[5][1] = 1;BLOCK[6][1] = 3;BLOCK[7][1] = 1;

BLOCK[0][2] = 0;BLOCK[1][2] = 1;BLOCK[2][2] = 0;BLOCK[3][2] = 0;
BLOCK[4][2] = 0;BLOCK[5][2] = 2;BLOCK[6][2] = 0;BLOCK[7][2] = 1;

BLOCK[0][3] = 1;BLOCK[1][3] = 3;BLOCK[2][3] = 2;BLOCK[3][3] = 0;
BLOCK[4][3] = 2;BLOCK[5][3] = 0;BLOCK[6][3] = 0;BLOCK[7][3] = 1;

BLOCK[0][4] = 0;BLOCK[1][4] = 1;BLOCK[2][4] = 0;BLOCK[3][4] = 0;
BLOCK[4][4] = 1;BLOCK[5][4] = 1;BLOCK[6][4] = 1;BLOCK[7][4] = 1;

BLOCK[0][5] = 0;BLOCK[1][5] = 1;BLOCK[2][5] = 0;BLOCK[3][5] = 0;
BLOCK[4][5] = 1;BLOCK[5][5] = 0;BLOCK[6][5] = 0;BLOCK[7][5] = 0;

BLOCK[0][6] = 0;BLOCK[1][6] = 0;BLOCK[2][6] = 1;BLOCK[3][6] = 1;
BLOCK[4][6] = 0;BLOCK[5][6] = 0;BLOCK[6][6] = 0;BLOCK[7][6] = 0;


プログラムもちまちま打ってるけど、面倒に感じてきた。

コメントする

コメントするには、ログインする必要があります。

コメント一覧

      2 mini eider(投稿日:2011/08/12 21:46, 履歴)
>>aoihikawaさん
あらすごい。すごいとしか言えない。何も言えない。
ありがとうございますー。
自分なりに使ってみようと思います。

>>rurun9さん
劇的ビフォーアフターとは、まさにこの事か。
Nyan mini rurun9(投稿日:2011/08/11 13:33, 履歴)
うはっ。コレ凄い。なるほどなるほど。
桁数で割って横位置を調べるまではともかく、chk % 10 でそれより上の桁に数があろうがなかろうが、その位置がいくつなのか判るんだ!
コレは今後の2次元配列型のマップ作成時にデフォになりそーです。有難うございました。
Cdv30200 aoi icon mini aoihikawa(投稿日:2011/08/11 09:47, 履歴)
べき乗計算関数と、スクリプトの一部を
ちょっと手直し。
#べき乗計算関数
def POWER(n, b)
    r = 1; i = 0
    while i < b
        r = r * n
        i = i + 1
    end
    return r
end

map_w = 8  #マップの横幅

#マップデータ
map_d = createArray()
map_d[0] = 00100010
map_d[1] = 01311131
map_d[2] = 01000201
map_d[3] = 13202001
map_d[4] = 01001111
map_d[5] = 01001000
map_d[6] = 00110000

#BLOCK変数の準備
BLOCK = createArray()
j = 0; jlen = map_w
while j < jlen
    BLOCK[j] = createArray()
    j = j + 1
end

#マップデータをBLOCK変数に入れる
i = 0; ilen = getArrayLength(map_d)
while i < ilen
    j = 0; jlen = map_w
    while j < jlen
        chk = floor(map_d[i] / POWER(10, (map_w - (j + 1))))
        if chk == 0
            BLOCK[j][i] = 0
        else
            BLOCK[j][i] = chk % 10
        end
        j = j + 1
    end
    i = i + 1
end
Cdv30200 aoi icon mini aoihikawa(投稿日:2011/08/11 03:18, 履歴)
間違えてました(w
def POWER(n, b) 
    r = n; i = 0 
    while i < (b - 1) 
        r = r * n 
        i = i + 1 
    end 
    return r 
end 
 
map_w = 8 
 
map_d = createArray() 
map_d[0] = 00100010 
map_d[1] = 01311131 
map_d[2] = 01000201 
map_d[3] = 13202001 
map_d[4] = 01001111 
map_d[5] = 01001000 
map_d[6] = 00110000 
 
BLOCK = createArray() 
j = 0; jlen = map_w 
while j < jlen 
    BLOCK[j] = createArray() 
    j = j + 1 
end 
 
i = 0; ilen = getArrayLength(map_d) 
while i < ilen 
    j = 0; jlen = map_w 
    while j < jlen 
        if j == (map_w - 1)
            chk = map_d[i] 
        else 
            chk = floor(map_d[i] / POWER(10, (map_w - (j + 1)))) 
        end 
        if chk == 0 
            BLOCK[j][i] = 0 
        else 
            BLOCK[j][i] = chk % 10 
        end 
        j = j + 1 
    end 
    i = i + 1 
end
Cdv30200 aoi icon mini aoihikawa(投稿日:2011/08/11 03:15, 履歴)
ちょっと、テストが完璧ではないですけれど。。。

def POWER(n, b)
    r = n; i = 0
    while i < (b - 1)
        r = r * n
        i = i + 1
    end
    return r
end

map_w = 8

map_d = createArray()
map_d[0] = 00100010
map_d[1] = 01311131
map_d[2] = 01000201
map_d[3] = 13202001
map_d[4] = 01001111
map_d[5] = 01001000
map_d[6] = 00110000

BLOCK = createArray()
j = 0; jlen = map_w
while j < jlen
    BLOCK[j] = createArray()
    j = j + 1
end

i = 0; ilen = getArrayLength(map_d)
while i < ilen
    j = 0; jlen = map_w
    while j < jlen
        if j > 0
            chk = map_d[i]
        else
            chk = floor(map_d[i] / POWER(10, (map_w - (j + 1))))
        end
        if chk == 0
            BLOCK[j][i] = 0
        else
            BLOCK[j][i] = chk % 10
        end
        j = j + 1
    end
    i = i + 1
end