2024/12/19 ようやくCrosstermへ
まずは迷路ゲームのコードを観察しよう。キモはこのDisplay部分と見た。ふーむ・・クロージャを作って全マス放り込んでいくという感じか
入れ子Forで全マスを書き換えという部分。ふーむ・・プレイヤー部分と迷路部分を分けて描画してるのか・・自作テトリスモドキだと対象がVecのCellsで管理されてるので、分けなくても良いのでは?と思うのだが
最後はこういう感じで締め。決まり文句みたいなものなんだろうけど、一応文法の意味を知りたいな
ほうほう
どうやらCrosstermは座標を2次元配列?で処理する模様
ちゃんと理解したいので解説を頼む。Claude先生、Crosstermにも対応してるとは・・やりますねぇ!
なるほどなるほど
ふんふん、なるほどね。座標は文字ベースなのでCLIの流用で使えそうだな。というところで昼の部終了。
というわけでテトリス用に書き換えて行くか。MoveToの引数はU16の必要があるので書き換えと。座標の型はもとのコードだとIsizeだけど念の為にUsizeにしておく。ほかは変える必要がないな
最初はテトリミノの種類によって色を変えようと思ってたけど、飛躍的に面倒になる予感がしたので全種類同じ色で(とりあえずは)作ることに。
結局、全マス走査して特定の内容だったら対応する表示をするだけ・・なんだ簡単じゃないか?
-> Resultの<>内が()なのはなぜか?って疑問から<_>ってのもあったよなぁ?と思い出して質問。<_>だと推論して決めてくれるらしい。それでエエやん!あ、他者が読むとき困るのか?
まあ、慣れてきて大量に書かないといけなくなってきたら活用するかな〜
ということでテトリスモドキ版のDisplay関数が(多分)完成した
いろんなエラーが出るので、今テストに不要な部分は全部コメントアウトして、Cellsを表示してみる・・さてどうなるか?
おお!表示された!これが出来たら、後はCellsを更新すれば常に最新の状態に更新し続けられるというわけだな。
が・・
これ・・SSだと分かりませんけど、猛烈な勢いでちらついてるんですよね・・カーソルが異様な速さで移動してるのが知覚出来ると言うか。確か迷路ゲームの時にはこんな事なかったのだが・・おそらくは
・全部書き上がった時点でバッファから呼び出す仕組みがあったはず?
・もしかして変化のある部分だけ書き換えるような仕組みになってたのかも?
明日はこれを調査しよう