goo blog サービス終了のお知らせ 

パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

Haskellで迷宮探索 デーモンが瞬時に徘徊する世界を作る

2022-08-13 | 新規1000万人ぐらいにプログラムをマスターしてもらいたい

迷宮には壁があり人が存在していることもある

デーモンは召喚後、壁を越えることはできないが瞬時にあらゆる経路を移動する

デーモンは迷宮の左上に召喚される

遭遇した人は柱化する

柱化した人は何柱?

(そんな話ではないけど、夜ストレンジャーシングスをみて、深夜のコーディングでハイテンションになってます)

 

深夜全経路探索をHaskellというデーモンのような言語で作ってみる

まあドツボにはまって今時刻は深夜4時半

 

Haskellという世界では統一帝国が全てを従えており、

世界は固定であり、作り変えてはならない

世界を変えたければ、新しい世界に転生させる瞬間に変更させなければならない

大なり小なりの世界を次々と作っていかなければならない

 

簡単な説明と後世の人に記録を残す

9 せん断された世界を再構築して答えの世界を呼び出す

13 最初の人を数え デーモンを徘徊し終えた世界の人を数え 柱化した人を答える

17 デーモンが空間を満たすまで分身させる 分身後最初のデーモンは柱となる

20 デーモンを上下左右柱のない空間に分身させる

汎用的に使えそうなもの

24 文字列の中から指定1文字の数を数える

28 文字列の指定位置を指定1文字に置き換える

30 文字列の中から指定1文字の最初の位置を返す(なければ-1)

 

TIPS

作った世界に何かが足りないと最悪、最初の世界から作り変えないといけない

18 -1を比較する際はカッコでくくらないといけない(よく思い出せた)

29 文字列の結合は++  Char型を結合したいときは [Char]

22,27 文字列、配列の先頭を1つ取る時はdrop 1 s

文字、配列の指定位置は !!

 

そして夜が明けた


最新の画像もっと見る

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。
ブログ作成者から承認されるまでコメントは反映されません。