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