Sha256: c3d649491247591df8ea21bfdc2bc2fa96ac98c1a221d7fc21bd8645177f281d

Contents?: true

Size: 966 Bytes

Versions: 396

Compression:

Stored size: 966 Bytes

Contents

(ns queen-attack
  (:require [clojure.string :as str]
            [clojure.set    :as set]))

(defn board-string [queens]
  (let [piece-at (set/map-invert queens)]
    (str/join "\n"
              (map #(str/join " " %1)
                   (conj (vec (partition 8
                              (for [x (range 8)
                                    y (range 8)]
                                (.toUpperCase (name (or (piece-at [x y])
                                    "_")))
                                  )))
                         nil)))))

(defn same-row [queens]
  (= (first (:w queens))
     (first (:b queens))))

(defn same-col [queens]
  (= (last (:w queens))
     (last (:b queens))))

(defn diagonal [queens]
  (let [xdiff (- (first (:w queens)) (first (:b queens)))
        ydiff (- (last  (:w queens)) (last  (:b queens)))]
    (= xdiff ydiff)))

(defn can-attack [queens]
  (or (same-row queens)
      (same-col queens)
      (diagonal queens)))

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.179 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.178 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.177 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.176 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.175 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.174 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.173 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.172 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.171 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.170 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.169 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.167 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.166 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.165 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.164 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.163 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.162 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.161 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.160 tracks/clojure/exercises/queen-attack/src/example.clj