Sha256: 35aa5896f3d83521f79d56842c3f9af201fd45a0444a4288de997e73c94eaba3
Contents?: true
Size: 778 Bytes
Versions: 396
Compression:
Stored size: 778 Bytes
Contents
(ns minesweeper (:require [clojure.pprint :refer [cl-format]] [clojure.string :refer [split-lines]])) (defn- windows [field] (->> field (map #(partition 3 1 `(nil ~@% nil))) (apply map #(partition 3 1 `(nil ~@%& nil))) (apply map vector))) (defn- count-mines-around [[[a b c] [d e f] [g h i]]] (if-let [mines-count (and (= \space e) (count (filter #{\*} [a b c d f g h i])))] (if (zero? mines-count) \space mines-count) e)) (defn draw [field] (if (empty? field) "" (->> field split-lines windows (map (fn [line] (map count-mines-around line))) (cl-format nil "~{~{~a~}~^~%~}"))))
Version data entries
396 entries across 396 versions & 1 rubygems