在Clojure中将文件输入2D向量

时间:2019-05-27 22:32:51

标签: clojure 2d-vector

我有一个map.txt文件,我想将其添加到Clojure的2D数组中。

文件格式如下:

---#--###----
-#---#----##-
####-#-#-#-##
---#---#-#---
-#-####---##-
-#------#----
-############
------------@      

我想使用x和y坐标访问向量的每个元素,因为这是我的寻宝游戏任务。

(defn read-in-board [filepath]
    clojure.string/split-lines (slurp filepath)  
        (mapv vec (read-in-board "map.txt")) 

运行此命令后,我没有任何输出。

1 个答案:

答案 0 :(得分:0)

这是我要怎么做:

给出通过以下方式创建的map.txt:

(spit
 "map.txt" "---#--###----\n-#---#----##-\n####-#-#-#-##\n---#---#-#---\n-#-####---##-\n-#------#----\n-############\n------------@")

您可以像这样将文本文件读入矢量(二维数组排序)矢量:

(->> "map.txt" slurp str/split-lines (map #(mapv str %)))
;; =>
;; [["-" "-" "-" "#" "-" "-" "#" "#" "#" "-" "-" "-" "-"]
;;  ["-" "#" "-" "-" "-" "#" "-" "-" "-" "-" "#" "#" "-"]
;;  ["#" "#" "#" "#" "-" "#" "-" "#" "-" "#" "-" "#" "#"]
;;  ["-" "-" "-" "#" "-" "-" "-" "#" "-" "#" "-" "-" "-"]
;;  ["-" "#" "-" "#" "#" "#" "#" "-" "-" "-" "#" "#" "-"]
;;  ["-" "#" "-" "-" "-" "-" "-" "-" "#" "-" "-" "-" "-"]
;;  ["-" "#" "#" "#" "#" "#" "#" "#" "#" "#" "#" "#" "#"]
;;  ["-" "-" "-" "-" "-" "-" "-" "-" "-" "-" "-" "-" "@"]]

看起来正确吗?