+(defn find-next-paddle-contact [screen prev-ball ball paddle]
+ (let [db (map - ball prev-ball)
+ [dx dy] db
+ futr (take 50 (iterate (partial map + db) ball))
+ rdtn (fn [screen [bx by]]
+ (if (or (= by paddle) (= dx 0))
+ (reduced bx)
+ (reduced bx)
+ #_(case (screen [bx by])
+ 1 (find-next-paddle-contact screen [bx by] [(- bx dx) by] paddle)
+ 2 (find-next-paddle-contact screen [bx by] [(+ bx dx) (dec by)] paddle)
+ screen)))
+ px (reduce rdtn screen futr)]
+ (if (= px screen) 0 px)))
+