티스토리 뷰

반응형

 

youtu.be/ZfHsb9bNMcY

모든 강의 자료 : www.codingnow.co.kr/

파이썬의 pynput 메소드를 사용하여 키보드 입력을 통한 별(★) 이동하는 간단한 게임을 만들어 보았습니다.

 

실행결과입니다. 

파이썬 키보드 입력으로 별 이동하기 게임

pynput을 사용했습니다.

pynput을 사용하기 위해서는 pip를 통해 라이브러리를 설치 해야합니다.

cmd 창에 다음과 같이 입력하여 설치합니다.

pip install pynput

 

pynput 메소드에서 listener를 생성하여 키보드 입력을 받습니다.

키보드의 left, right, up, down을 통해 이동하고 esc를 받아 종료를 처리 합니다.

 

자세한 소스코드 설명은 동영상 강의를 통해 하였습니다.

 

소스코드 입니다.
from pynput import keyboard
import time
import os

isActive = True

position = {'x':6, 'y':0}

def key_press(key):
    #print(f'{key} pressed')
    global position
    if key == key.up:
        position['y'] -= 1
    if key == key.down:
        position['y'] += 1
    if key == key.left:
        position['x'] -= 1
    if key == key.right:
        position['x'] += 1

    if position['x'] < 6:
        position['x'] = 6

    if position['x'] > 26: 
        position['x'] = 26

    if position['y'] < 0:
        position['y'] = 0

    if position['y'] > 9:
        position['y'] = 9
        

def key_release(key):
    # print(f'{key} release')
    if key == keyboard.Key.esc:
        global isActive
        isActive = False
        return False

# with keyboard.Listener(on_press=key_press, on_release=key_release) as listener:
#     listener.join()

listener = keyboard.Listener(on_press=key_press,on_release=key_release)
listener.start()

print("실행중")

guide = '     #                      #'
while isActive:
    print('     ########################')
    for k in range(10):
        for i in range(len(guide)):
            if position['x'] == i and position['y'] == k:
                print('★', end='')
            else:
                print(guide[i], end='')
        print()
    print('     ########################')
    print(f'x : {position["x"]}, y : {position["y"]}')

    time.sleep(0.1)
    os.system('cls')
    
del listener
반응형