@@ -12,13 +12,13 @@ import Control.Monad.RWS
1212
1313import System.Random
1414
15−data Dude = Dude
16− { dudeX :: Int
17− , dudeY :: Int
15+data Player = Player
16+ { playerX :: Int
17+ , playerY :: Int
1818 } deriving (Show,Eq)
1919
2020data World = World
21− { dude :: Dude
21+ { player :: Player
2222 , level :: Level
2323 }
2424 deriving (Show,Eq)
@@ -45,7 +45,7 @@ main :: IO ()
4545main = do
4646 vty <- mkVty def
4747 level0 <- mkLevel 1
48− let world0 = World (Dude (fst $ levelStart level0) (snd $ levelStart level0)) level0
48+ let world0 = World (Player (fst $ levelStart level0) (snd $ levelStart level0)) level0
4949 (_finalWorld, ()) <- execRWST (play >> updateDisplay) vty world0
5050 shutdown vty
5151
@@ -98,33 +98,33 @@ processEvent = do
9898 else do
9999 case k of
100100 EvKey (KChar 'r') [MCtrl] -> ask >>= liftIO . refresh
101− EvKey KLeft [] -> moveDude (-1) 0
102− EvKey KRight [] -> moveDude 1 0
103− EvKey KUp [] -> moveDude 0 (-1)
104− EvKey KDown [] -> moveDude 0 1
101+ EvKey KLeft [] -> movePlayer (-1) 0
102+ EvKey KRight [] -> movePlayer 1 0
103+ EvKey KUp [] -> movePlayer 0 (-1)
104+ EvKey KDown [] -> movePlayer 0 1
105105 _ -> return ()
106106 return False
107107
108−moveDude :: Int -> Int -> Game ()
109−moveDude dx dy = do
108+movePlayer :: Int -> Int -> Game ()
109+movePlayer dx dy = do
110110 world <- get
111− let Dude x y = dude world
111+ let Player x y = player world
112112 let x' = x + dx
113113 y' = y + dy
114114 -- this is only valid because the level generation assures the border is always Rock
115115 case levelGeo (level world) ! (x',y') of
116− EmptySpace -> put $ world { dude = Dude x' y' }
116+ EmptySpace -> put $ world { player = Player x' y' }
117117 _ -> return ()
118118
119119updateDisplay :: Game ()
120120updateDisplay = do
121121 let info = string defAttr "Move with the arrows keys. Press ESC to exit."
122− -- determine offsets to place the dude in the center of the level.
122+ -- determine offsets to place the player in the center of the level.
123123 (w,h) <- asks outputIface >>= liftIO . displayBounds
124− theDude <- gets dude
125− let ox = (w `div` 2) - dudeX theDude
126− oy = (h `div` 2) - dudeY theDude
127− -- translate the world images to place the dude in the center of the level.
124+ thePlayer <- gets player
125+ let ox = (w `div` 2) - playerX thePlayer
126+ oy = (h `div` 2) - playerY thePlayer
127+ -- translate the world images to place the player in the center of the level.
128128 world' <- map (translate ox oy) <$> worldImages
129129 let pic = picForLayers $ info : world'
130130 vty <- ask
@@ -132,10 +132,10 @@ updateDisplay = do
132132
133133worldImages :: Game [Image]
134134worldImages = do
135− theDude <- gets dude
135+ thePlayer <- gets player
136136 theLevel <- gets level
137− let dudeImage = translate (dudeX theDude) (dudeY theDude) (char pieceA '@')
138− return [dudeImage, levelGeoImage theLevel]
137+ let playerImage = translate (playerX thePlayer) (playerY thePlayer) (char pieceA '@')
138+ return [playerImage, levelGeoImage theLevel]
139139
140140buildGeoImage :: Geo -> Image
141141buildGeoImage geo =