| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- package robots
- func (game *Game) drawPlayer() {
- game.screen.SetContent(game.player.position.x, game.player.position.y, '@', nil, game.style)
- }
- func (game *Game) movePlayer(press int) {
- if game.blockedByTrash(press) {
- game.player.moves++
- return
- }
- if press == Left {
- if game.player.position.x != 2 {
- game.player.position.x--
- game.player.moves++
- }
- } else if press == Right {
- if game.player.position.x != 78 {
- game.player.position.x++
- game.player.moves++
- }
- } else if press == Up {
- if game.player.position.y != 1 {
- game.player.position.y--
- game.player.moves++
- }
- } else if press == Down {
- if game.player.position.y != 22 {
- game.player.position.y++
- game.player.moves++
- }
- } else if press == upleft {
- if game.player.position.x != 2 && game.player.position.y != 1 {
- game.player.position.x--
- game.player.position.y--
- game.player.moves++
- }
- } else if press == upright {
- if game.player.position.x != 78 && game.player.position.y != 1 {
- game.player.position.x++
- game.player.position.y--
- game.player.moves++
- }
- } else if press == downright {
- if game.player.position.x != 78 && game.player.position.y != 22 {
- game.player.position.x++
- game.player.position.y++
- game.player.moves++
- }
- } else if press == downleft {
- if game.player.position.x != 2 && game.player.position.y != 22 {
- game.player.position.x--
- game.player.position.y++
- game.player.moves++
- }
- } else if press == teleport {
- game.teleport()
- game.player.teleports++
- }
- }
- // blockedByTrash() Checks if player can move into a direction and if trash isn't blocking
- func (game *Game) blockedByTrash(press int) bool {
- var checkPos Position
- if press == Left {
- checkPos.x = game.player.position.x - 1
- checkPos.y = game.player.position.y
- } else if press == Right {
- checkPos.x = game.player.position.x + 1
- checkPos.y = game.player.position.y
- } else if press == Up {
- checkPos.x = game.player.position.x
- checkPos.y = game.player.position.y - 1
- } else if press == Down {
- checkPos.x = game.player.position.x
- checkPos.y = game.player.position.y + 1
- } else if press == upleft {
- checkPos.x = game.player.position.x - 1
- checkPos.y = game.player.position.y - 1
- } else if press == upright {
- checkPos.x = game.player.position.x + 1
- checkPos.y = game.player.position.y - 1
- } else if press == downright {
- checkPos.x = game.player.position.x + 1
- checkPos.y = game.player.position.y + 1
- } else if press == downleft {
- checkPos.x = game.player.position.x - 1
- checkPos.y = game.player.position.y + 1
- }
- return game.onTrash(checkPos)
- }
- func (game *Game) teleport() {
- var pos Position
- var safe bool = false
- for !safe {
- pos = game.randPos()
- if !game.onTrash(pos) {
- safe = true
- }
- }
- game.player.position.x = pos.x
- game.player.position.y = pos.y
- }
- func (game *Game) onPlayer(pos Position) bool {
- var onPlayer bool
- if pos.x == game.player.position.x && pos.y == game.player.position.y {
- onPlayer = true
- } else {
- onPlayer = false
- }
- return onPlayer
- }
- func (game *Game) resetPlayer() {
- game.player.position.x = 40
- game.player.position.y = 12
- }
|