星田オステオパシー

Rustでトランキライザーガン その17 情報表示

 Filterで選びだしたAnimalを選んで・・とやりたいのだけどエラー。Filterで返ってくるのはイテレータなのでFindにせいとのこと。でも、後にFindもOption型で返ってくるというエラーをくらうのであった。

 当初、TruckのCageフィールドにインスタンスを放り込む・・という物理的な方法を考えてたのだど、考えてみたらAnimalのactionフィールドで解決出来るじゃないかと・・というわけで、こちらはボツとなりました

 続いてちょっと画面表示を・・・座標を指定するのは良いとしてPrintlnみたいな文字列に変数を埋め込むことが出来るのか?と。出来る、と。

 JailedになってるAnimalをチェックして囚われてるかどうかを表示するための変数作成、これでいけるかな?でも駄目

 こう書くか・・

 こっちか。FindがOption型で返すといのはこの時点で知ったのだった。面倒だけどしょうがない


 スコア計算はこういう感じで

 表示部分はこういう感じで
 
 スコア計算部分はこういう感じで

 実際の表示はこういう感じで


 続いて、この表示残り問題。移動してるだけなら良いんだけど、方向転換をした時にも表示をするようになってるので、その後動くとOld_coordinateが更新されてしまってうまく消せないんだろなぁ〜と

 Player表示と同時に行っていたCaptured Animalの表示を、一歩進んだ時にだけ行うようにするべく、Display_playerからコメントアウト

 Go_forwardメソッドの中にCaptured Animalの描画部分を埋め込む

 その後、すぐさまOld_coordinateを元にして空白表示で1つ前の痕跡を消す

 その後、Old_coordinateを現在の座標で上書き

 これにて痕跡残り問題はほぼ完全解決!うーん、なんで最初からこうしなかったのか・・

 次回はゴリラによるAnimal解放ルーチンにチャレンジだ!

 つづく
  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「プログラミング」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事