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.119 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.118 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.117 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.116 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.115 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.114 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.113 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.111 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.110 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.109 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.108 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.107 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.106 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.105 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.104 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.103 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.102 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.101 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.100 tracks/clojure/exercises/queen-attack/src/example.clj
trackler-2.2.1.99 tracks/clojure/exercises/queen-attack/src/example.clj