AI 학습/강화학습
강화학습 frozen lake 문제 Key 입력받기
오징어땅콩2
2021. 7. 12. 14:22
반응형
2021년 7월 현재, 파이썬 버전 3.9.6에서
키을 입력받는 방법이다.
문자키와 방향키와 같은 특수키는 다를수 있고 여기서는 특수키, 방향키에 관한 내용이다.
원도우, 리눅스, 코렙등에서 범용적인 방법과 원도우 전용 입력 방법이 있다.
아래의 두개의 코드를 유심히 보면 알수 있을것 같다.
약간의 설명을 넣자면 키를 입력받으면 1바이트 문자와 특수키와 같은 2바이트 문자가 있을수 있으면
readchar와 같은 ANSI 이스케이프 코드를 사용하는 방법과
원도우의 msvcrt의 사용법은 다르다.
import readchar
LEFT = 0
DOWN = 1
RIGHT = 2
UP = 3
arrow_keys = {
'\x1b[A' : UP,
'\x1b[B' : DOWN,
'\x1b[C' : RIGHT,
'\x1b[D' : LEFT
}
key = readchar.readkey() # 키보드 입력 받기
action = arrow_keys[key]
print(action)
import msvcrt
class mskey:
def getkey():
_key1 = msvcrt.getch()
_key2 = msvcrt.getch()
#print(_key1)
#print(_key2)
return _key2
LEFT = 0
DOWN = 1
RIGHT = 2
UP = 3
arrow_keys = {
b'H': UP,
b'P': DOWN,
b'M': RIGHT,
b'K': LEFT
}
key = mskey.getkey()
action = arrow_keys[key]
print(action)