   [game player]
   (let [moves (get-in game [:moves player])
         outcomes (map (fn [[m _]] [m (play-move game m)]) moves)]
-    (map
-      (fn [[m outcome]]
-        [m (-
-             (get-in outcome [:scores player])
-             (worst-immediate-loss outcome player))])
-      outcomes)
+    (first
+      (apply max-key second
+        (map
+          (fn [[m outcome]]
+            [m (-
+                 (get-in outcome [:scores player])
+                 (worst-immediate-loss outcome player))])
+          outcomes)))
     ))
 
 

  [x y game]
  (rect-cell x y
    (if-not (show-help? game x y) "lightgray" "lightblue")
    {:on-click #(swap! app-state play-move [x y])}
    ))

(defn show-scores
  [scores player]

   * For the provided player
   * And with move scope limitation"
  [game player move-filter]
  (apply max-key ;; TODO - max key is slow: it will recompute the same stuff over and over
    #(transduce
       (comp
         (filter move-filter)
