   [state]
   (println (str "Congrats " (winner state) ", you won!")))
 
+(defn- quit-move?
+  [move]
+  (= move "q"))
+
 (defn -main
   [& args]
   (loop [current (first black-white)

(defn- allowed-pawn-move?
  [state move]
  (let [current-position (state (keyword (state :current)))
        other-position (if (= (state :current) "black") (state :white) (state :black))
        col (first current-position)
        row (to-digit (second current-position))
        up-move (str col (+ row 1))
        down-move (str col (- row 1))
        left-move (str (-> col int (- 1) char) row)
        right-move (str (-> col int (+ 1) char) row)
        jump-move (jump state)]
    (and (contains? (set (filter valid-move? [up-move
                                              down-move
                                              left-move
                                              right-move
                                              jump-move]))
                    move)
         (not (contains? (set [current-position other-position]) move)))))


          (let [move (s/trim (read-line))
                next-player (first next)]
            (cond
              (quit-move? move) (println "Thanks for playing!")
              (allowed-wall-move? state move) (recur next-player
                                                     (rest next)
                                                     (-> state
