text: # *************************************************************************
  #
  # Copyright (c) 2021 Andrei Gramakov. All rights reserved.
  #
  # This file is licensed under the terms of the MIT license.
  # For a copy, see: https://opensource.org/licenses/MIT
  #
  # site:    https://agramakov.me
  # e-mail:  mail@agramakov.me
  #
  # *************************************************************************
  
  import sys
  import os
  
  
  def wait_key() -> int:
      '''
      Wait for a key press on the console and return it.
  
      Returns keycode as integer
      '''
      result = None
      if os.name == 'nt':
          import msvcrt
          result = msvcrt.getch()
      else:
          import termios
          fd = sys.stdin.fileno()
  
          oldterm = termios.tcgetattr(fd)
          newattr = termios.tcgetattr(fd)
          newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
          termios.tcsetattr(fd, termios.TCSANOW, newattr)
  
          try:
              result = sys.stdin.read(1)
          except IOError:
              pass
          finally:
              termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
      if result:
          return ord(result)
      else:
          return 0
  