Skip to content

Instantly share code, notes, and snippets.

@echosa
Created March 13, 2014 21:14
Show Gist options
  • Save echosa/9537101 to your computer and use it in GitHub Desktop.
Save echosa/9537101 to your computer and use it in GitHub Desktop.
(ann player-character String)
(def player-character
"The character that represents the player."
"@")
(ann find-player
[(IPersistentVector (IPersistentVector Any))
->
(Vector* Number Number)])
(defn find-player
"Returns the (X Y) position of the player."
[grid]
(let [row (first
(filter
#(> (.indexOf ^java.util.Vector % player-character) -1)
grid))]
[(.indexOf ^java.util.Vector row player-character)
(.indexOf ^java.util.Vector grid row)]))
;; Type Error (greed/player.clj:30:19) Cannot call instance method java.util.Vector/indexOf on type Any
;; in: (.indexOf p1__2369# greed.player/player-character)
;; Type Error (greed/player.clj:32:6) Cannot call instance method java.util.Vector/indexOf on type (clojure.core.typed/Option (clojure.lang.IPersistentVector Any))
;; in: (.indexOf row greed.player/player-character)
;; Type Error (greed/player.clj:33:6) Cannot call instance method java.util.Vector/indexOf on type (clojure.lang.IPersistentVector (clojure.lang.IPersistentVector Any))
;; in: (.indexOf grid row)
;; Type Error (greed/player.clj:33:6) Type mismatch:
;; Expected: Object
;; Actual: (Option (IPersistentVector Any))
;; in: [(.indexOf row greed.player/player-character) (.indexOf grid row)]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment