じゃあマップ表示部分の続きをやっていきますか!
カードマップとは1:1で対応してるので全部0の元マップを作りまして・・
ここにN番目にプレイヤーを配置するのが狙いなのだが・・再帰と条件ワケででやるのはいかにも面倒なので何か破壊的でない関数はないのか?とチェック
そのものズバリの関数が用意されてるじゃないか!setとついてるけど破壊的では無さそう?
で、playersにはリストで第一プレイヤーから第四プレイヤーまでの座標が数値で格納されてるので、それを再帰でlist-setしていく、と。オッケイ!
フォントを変えてスートを記号からアルファベットに戻しました。♠は全角なのでどうしても表示がズレてしまうんです・・半角のフォントがLinuxにはあるんだけど宿直用WindowsPCには入ってなかったので・・。
で、この2つのリストを7つずつに分けて交互に表示すると・・
今回の部分をまとめてみると・・元になるマップデータ、プレイヤーの座標データ
put-playerはplayersの人数分を再帰で頭から(仮に)1,2,3,4として配置。
それぞれのマップをStringに変換して整形したものをリストにして束縛
2つのマップを7つごとの要素でまとめてそれぞれを交互に連結。()の入れ子具合でconsだったりlistだったりバッククォートで・・とか考えたけど、結局flattenでバラしてまたsplit-listで7つごとに分けることにしました。
見た目を整えるためにプレイヤーマップの0を消して____でNullってるのを表示
という訳で出来た!これでターン毎にマップを表示する全体のREPLのPが出来たわけだな〜(今回はPRELかな?)
ゲームブックのときにはいきなりREPLのE、それも戦闘シーンから作ったわけだけだけど、Pを作ることで必要な要素が分かる事も多いのでまずデザインを考えるのはアリかも?
という訳で、次回からは全体のEの部分を作っていこうかと。ハッシュテーブルを活用する!と意識してやっていこうと思うとります
つづく
今日はちょっと短めだけど、明日呼ばれてるBBQのためにPCカラオケのリハーサルと練習をしないといけないんですよね、宿直のバイト中にw(23時から2時まで歌ってしまいました、いいバイトだ〜)。