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.98 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.97 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.96 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.95 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.94 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.93 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.92 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.91 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.90 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.89 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.88 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.87 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.86 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.85 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.84 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.83 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.82 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.81 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.80 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.79 tracks/clojure/exercises/queen-attack/src/example.clj