ナカナカピエロ おきらくごくらく

写真付きで日記や趣味を書くならgooブログ

外出自粛

2020-04-04 21:14:04 | 日記
外出自粛

今日は土曜日。晴れ。

8時起床。

昨日作っていた迷路探索プログラムが気になってガチャガチャいじっていた。

その後、新型コロナウィルスで暗くなっている雰囲気を払拭すべく、

"まだ結婚できない男"のDVDを見ていた。

その後、コラージュした後、再び"まだ結婚できない男"のDVDを見ていた。

何か新型コロナウィルスがかなり大変なことになっちゃったけど、頑張ろう。

何か家での過ごし方についてちゃんと考えないと。

寝る。

【今後の予定】
・04月06日~04月07日   訓練校補習   

【やることリストのタスク】
・組込みエンジニア向けC言語入門(未定)
・某電機メーカー子会社の新人研修Java(延期・未定)

【今日の読書】
スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ) 中山清喬(SQL基礎演習講座の教科書)
スッキリわかるJava入門 第3版 (スッキリシリーズ) 中山清喬(某電機メーカ新人研修の教科書)
集合・位相・圏 数学の言葉への最短コース (KS理工学専門書) 原 啓介(P.46/149読了)
入門Verilog HDL記述―ハードウェア記述言語の速習&実践 (Design wave basic) 小林 優(P.55/250読了)
1から始める Juliaプログラミング 進藤 裕之(P.81/192読了)
数値計算の常識 伊理 正夫(P.72/168読了)
瀕死の統計学を救え! ―有意性検定から「仮説が正しい確率」へ― 豊田 秀樹
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

onna - 239

2020-04-04 19:15:28 | 日記
onna - 239
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

迷路探索プログラム(Python)

2020-04-04 14:02:05 | 日記

迷路探索プログラム(Python)

【仕様】

入口から入って、出口まで正しい経路を探索するプログラム
進行方向は「右」「前」「左」「後ろ」に向きに変えることができる。

【コメント】

適当に作ったので、バグがあるかもしれません。
バグを見つけたら、ご連絡ください。


【code(データ部)】
--------------------------------------------------------------------
import numpy as np
# Passasge
P=1
# Mall
W=0
# Goal
G=2
# BANPEI
B=-1
MAZE=np.array(
     [[-1,-1,-1,-1,-1,-1,-1,-1,-1],
      [-1, 0, 0, 0, 0, 0, 0, 0,-1],\
      [ 1, 1, 1, 1, 1, 1, 0, 0,-1],\
      [-1, 0, 0, 1, 0, 1, 1, 0,-1],\
      [-1, 0, 0, 1, 0, 1, 0, 0,-1],\
      [-1, 0, 0, 1, 0, 0, 0, 0,-1],\
      [-1, 0, 1, 1, 1, 1, 1, 1, 2],\
      [-1, 0, 0, 0, 0, 0, 0, 0,-1],\
      [-1,-1,-1,-1,-1,-1,-1,-1,-1]])
--------------------------------------------------------------------

【code(アルゴリズム部)】
--------------------------------------------------------------------

ftrans=np.array([[ 1, 0],[ 0, 1]])
rtrans=np.array([[ 0,-1],[ 1, 0]])
ltrans=np.array([[ 0, 1],[-1, 0]])
btrans=np.array([[ -1,0],[ 0,-1]])

def search(MAZE, route ,dir):
   
    y,x=route[-1]
    next_y,next_x=y+dir[0],x+dir[1]
    route.append((next_y,next_x))
   
    if MAZE[next_y][next_x] == G:
        print(route)
        return True
    else:
        if MAZE[next_y][next_x] == B:
            route.pop()
            return False
        if MAZE[next_y][next_x] ==  W:
            route.pop()
            return False
        if MAZE[next_y][next_x] ==  P:
            if len(route)>2:
                if (route[-1]==route[-3]):
                    route.pop()
                    route.pop()
            if (search(MAZE,route,rtrans.dot(np.array(dir)))):
                return True
            if (search(MAZE,route,ftrans.dot(np.array(dir)))):
                return True
            if (search(MAZE,route,ltrans.dot(np.array(dir)))):
                return True
            if (search(MAZE,route,btrans.dot(np.array(dir)))):
                return True
    return False
 
enter=[(2,0)]
search(MAZE,[(2,0)],[0,1])

----------------------------------------------------------------------------
【result】
----------------------------------------------------------------------------
[(2, 0), (2, 1), (2, 2), (2, 3), (3, 3), (4, 3), (5, 3), (6, 3), (6, 4), (6, 5), (6, 6), (6, 7), (6, 8)]
----------------------------------------------------------------------------

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする