きのうかいたコードには if 文がたくさんあったが、それをなくしてみた。

def number_save(y, x, number)
    memory[10000 + (y * 20) + x] -> number
def letter(y, x, color)
    number -> memory[10000 + (y * 20) + x]
    memory[0] -> 60000 + (100 * (y * 6)) + (x * 5)
    z -> - memory[0] + 1
    if number = 0
        letter_2(1, 2, 100, 103, 200, 203, 300, 303, 401, 402, z, color)
    if number = 1
        letter_2(2, 101, 102, 202, 302, 401, 402, 403, z, z, z, color)
    if number = 2
        letter_2(1, 2, 100, 103, 202, 301, 400, 401, 402, 403, z, color)
    {9まで続く}
def letter_2(a, b, c, d, e, f, g, h, i, j, k, l)
    memory[memory[0] + a] -> l
    memory[memory[0] + b] -> l
    memory[memory[0] + c] -> l
    {kまで続く}
    memory[0] -> 0
    memory[1] -> 0

これを

def number_save(y, x, number) #現在の座標の数値を記録。
    memory[10000 + (y * 20) + x] -> number
def letter_dx(y, x, color)
    number -> memory[10000 + (y * 20) + x] #現在の座標の数値を検索。
    memory[0] -> 60000 + (100 * (y * 6)) + (x * 5) #基準マスのメモリ番号。
    start -> 9000 + (number * 11) #数字ごとのドットパターンの始まり。0は9000から、1は9011から。
    memory[memory[0] + memory[start + 0]] -> color
    memory[memory[0] + memory[start + 1]] -> color
    memory[memory[0] + memory[start + 2]] -> color
    {9まで続く}
def 9000_9109() #_2と併せて、memory[9000]から[9109]に0から9のドットパターンを入れておく。
    9000_9110_2(9000, 1, 2, 100, 103, 200, 203, 300, 303, 401, 402, 402)
    9000_9110_2(9011, 2, 101, 102, 202, 302, 401, 402, 403, 403, 403, 403)
    9000_9110_2(9022, 1, 2, 100, 103, 202, 301, 400, 401, 402, 403, 403)
    {9まで続く}
def 9000_9110_2(start, a, b, c, d, e, f, g, h, i, j, k)
    memory[start + 0] -> a
    memory[start + 1] -> b
    memory[start + 2] -> c
    {+ 10 まで続く}

こう。「座標を指定→座標の数値を検索→数値ごとのドットパターンに沿って色を塗る」というパターンにかわりはないんだけれど、 if がないぶん画面がすっきりと……したかな……俺は if がずらりと並んでた方が見易いかもしらん。行数も減ってないしなあ。

ちなみに昨日にはあった z(使わない入力枠を memory[1] に放り込むモノ) がなくなっている。昨日と比べ z の値が決まる段階が早まってしまったので意味をなさなくなったから。かわりに、使わない入力枠はドットを重複させて処理することにした。いや最初からこれでええやん!

コードおいてる色付きエリアは <table> タグで出してんだけれど、どうもこれを使うとフォントがあべこべになっちゃうんだよな。理由不明。加えて外部からコピペした文章も元のフォントを保とうとするのでめちゃくちゃになってしまう。苦肉の策として html エディタにコピペした文章を <pre> タグで囲うことにした。 <pre> タグで囲ったフォントってゴシックやメイリオに比べて見づらいからあんまりよくないんだけどねえ。だからまあ苦肉の策。

ところで数日前から記事のデフォルト・フォントがゴシックでなくメイリオだ。サイトのテンプレをかえたりフォントを変えたりするのって、作ってる本人は楽しいんだけど見てる側にはうざったいだけだと思っているのでそういうのはなるたけ自重したい派ではある。んだけど、「このブログのフォントは見づらいと前々から思ってるので近いうちに変えたい」ってニコさんからこのブログを受け継いだときの記事に書いてたんでな…。遥か昔だ。どんだけ有言不実行を続けてたのかと悪寒が走ったので踏み切った。

追記@その日のうち 指摘を頂いたので一部修正。

def letter_dx(y, x, color)
    number -> memory[10000 + (y * 20) + x] #現在の座標の数値を検索。
    memory[0] -> 60000 + (100 * (y * 6)) + (x * 5) #基準マスのメモリ番号。
    start -> 9000 + (number * 11) #数字ごとのドットパターンの始まり。0は9000から、1は9011から。
    a -> 0
    while a <= 10
        memory[memory[0] + memory[start + a]] -> color
        a -> a + 1

バカ正直に + 0 から + 10 までかいてた。なんで気付かなかったかなあ。