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.78 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.77 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.76 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.75 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.74 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.73 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.72 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.71 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.70 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.69 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.68 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.67 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.66 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.65 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.64 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.63 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.62 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.61 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.60 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.59 tracks/clojure/exercises/queen-attack/src/example.clj