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 }