text: import os
  import random
  
  import cherrypy
  import board
  
  """
  This is a simple Battlesnake server written in Python.
  For instructions see https://github.com/BattlesnakeOfficial/starter-snake-python/README.md
  """
  lastmove = "down"
  
  class Battlesnake(object):
      @cherrypy.expose
      @cherrypy.tools.json_out()
      def index(self):
          # This function is called when you register your Battlesnake on play.battlesnake.com
          # It controls your Battlesnake appearance and author permissions.
          # TIP: If you open your Battlesnake URL in browser you should see this data
          return {
              "apiversion": "1",
              "author": "",  # TODO: Your Battlesnake Username
              "color": "#888888",  # TODO: Personalize
              "head": "default",  # TODO: Personalize
              "tail": "default",  # TODO: Personalize
          }
  
      @cherrypy.expose
      @cherrypy.tools.json_in()
      def start(self):
          # This function is called everytime your snake is entered into a game.
          # cherrypy.request.json contains information about the game that's about to be played.
          data = cherrypy.request.json
  
          print("START")
          return "ok"
  
      @cherrypy.expose
      @cherrypy.tools.json_in()
      @cherrypy.tools.json_out()
      def move(self):
          global lastmove
          # This function is called on every turn of a game. It's how your snake decides where to move.
          # Valid moves are "up", "down", "left", or "right".
          # TODO: Use the information in cherrypy.request.json to decide your next move.
          data = cherrypy.request.json
  
  
          game_board = board.board(data['board'])
          game_board.print_board()
  
          head_x = data['you']['head']['x']
          head_y = data['you']['head']['y']
          possible_moves = game_board.get_allowable_moves(head_x,head_y)
  
          if lastmove in possible_moves and data['you']['health'] > 40:
              move = lastmove
          else:
              move = random.choice(possible_moves)
              lastmove = move
  
          print(f"MOVE: {move}")
          return {"move": move}
  
      @cherrypy.expose
      @cherrypy.tools.json_in()
      def end(self):
          # This function is called when a game your snake was in ends.
          # It's purely for informational purposes, you don't have to make any decisions here.
          data = cherrypy.request.json
  
          print("END")
          return "ok"
  
  
  if __name__ == "__main__":
      server = Battlesnake()
      cherrypy.config.update({"server.socket_host": "0.0.0.0"})
      cherrypy.config.update(
          {"server.socket_port": int(os.environ.get("PORT", "8080")),}
      )
      print("Starting Battlesnake Server...")
      cherrypy.quickstart(server)
  