シゴタノ!を書く金曜日

9:00

おはようございます。本日はシゴタノ!です。午後からは妻の病院の付き添いです。

fragment:マンダラート自作:

マンダラートのWebアプリを自分で作れないだろうか。

マンダラート - Wikipedia

Mandal-Art

イメージとして、再起処理が必要になりそうな感じはする。

* * *

入力は基本的に9×9で行い、ビュースタイルの変更でそれを広げることができる?

* * *

HTMLではどう表現したらいいだろうか。

テーブルを使う方法と、Divのレイアウトを使う方法がある。基本的に、レイアウトは固定なので、案外HTMLで扱うのに向いている。ポイントは、「広げた」ときにどうするか。9×9がさらに9×9状に展開される、というビューをどのように担保するか。

小さい(単位となる)9×9は、枠線が必要で、それよりも大きいものには必要ない?

* * *

はじめは9×9だけがある。そこに8方向に9×9のテーブルを「追加」できる。それが再帰的に行われる。

これをテーブルでやるとややこしいか。テーブルの入れ子を使うことになる?

* * *

まず大きな枠組みの9×9を準備しておく。枠線はなし。スタート時点では、その中央マスにフォーカスが当たっている。そしてその中に単位としての9×9のテーブルが表示されている(枠線あり)。

「上に拡張」ボタンを押すと、大きな枠組みの9×9の2番目のマスに単位としてのテーブルが作成される。ここまでは問題ない。その状態からさらに「上に拡張」が押されたらどうなるか。

エクセルのように、「上に行を追加」があればいい?

もし「上に拡張」を押して、それがテーブルの最短ならば、行(ないしは列)を追加する、という感じか。これができるなら最初に準備する大きな枠組みは一マスでいけることになる。つまり、まず大きな枠組みのテーブル1マスがあり、その中に単位のテーブルが入っている、という感じ。あとは、拡張ボタンで拡張していく。

一応上や左に拡張できるなら、無限に拡張できることにはなる。

divでやると、むしろややこしくなるか?

* * *

問題は、マスの同期か。

ある単位テーブルの外周のマスは、その外側にある単位テーブルの中央マスと同じ内容になる。それをどう担保するか。これは結構難問。

* * *

とりあえず、プロトタイプをtextbox上に作りました。

Image from Gyazo

まず、触れるものを作っておくのは大切です。

あとは、この外周を展開する方法です。

* * *

まず、セルの情報が独立して存在しており、表示は単にそれを組み合わせているだけとする。

つまり、ブロック1〜9の変数(オブジェクトでもよい)があって、そこにそれぞれの中身が保存される。

テーブルの拡張は、もともとあったブロックの要素1つを共通に持つ、別のブロックの配列、ということになる。プログラミング的に考えればこうなるだろう。

それをHTMLでの入力とどう組み合わせるか。おそらく何かしらのフレームワークを使い、ビューとモデルを分離させるのが良さそうだが、さすがにおおがかりすぎるか。

でもって、この辺の処理を再帰的に行えればいい。

10:00

シゴタノ!:

書きます。

* * *

書きました。ようやく1/4を越えたところです。日曜日に配信されます。

11:00

メルマガ:

続きを書きます。

あとで読む:第18回 安心な僕らのレジスタンス|十代を生き延びる 安心な僕らのレジスタンス|鳥羽 和久|webちくま

15:00

メルマガ:

続きを書きます。

* * *

全体で3400文字ほどの原稿が書けました。前のと合わせてだいたい1万字なのでこれでOKとしておきます。