単語をマス目の中に書き込んでいくために、まずマス目を表す変数を用意する。それが下だ。 |
declare variable $MyCell(1 To 12, 1 To 12) |
「12×12のマスにランダムにアルファベットを表示する・・・」のときは直接、一太郎ファイル上のマス目に書き込んだのだが、今回はメモリ上にマス目$MyCellを作ってそこに書き込むことにする。「12×12のマスにランダムにアルファベットを表示する・・・」のときはランダムにアルファベットを書き込むだけだったが、今回はそれだけでは済まない。いろいろ、チェックしなければならないことがあるのだ。一太郎上のマス目に書き込んだり、消去したりを繰り返すのは時間がかかって効率が悪い。場合によっては書き込んだり消したりを見えるようにすると、いかにもコンピュータが単語の配置を考えているようで面白いので、メモリ上で操作しないでその作業をユーザに見せることもするのだが、どうもくまぷーの許容範囲を超えるほど一太郎マクロは遅いようだ。 それはきっと変数が基本的にはグローバルとローカルの2種類しかない、プログラマはプログラム作成時に変数の型を全く考える必要がない、という一太郎マクロの仕様によるものだろう。他の言語ではプログラマが負担している部分をマクロ言語が負担しているのだから遅いのも仕方がないのかもしれない。 |
さてそれでは実際にコードを考えてみよう。単語をマス目の中に書き込んでいくために、まず乱数で始点を決める。これは下のように座標を決めてやればよいだろう。 Randomize(ThisTime()) しかし、これだけだけでは十分ではない。単語はマス目からはみ出さないように配置しなければならない。単語配置時にはまず、その判定をしなければならない。 次回は重なりを判定して単語を書き込む処理を考えることにする。 |
最近のコメント