Új hozzászólás Aktív témák
-
válasz
magortaltos
#3312
üzenetére
Itt van non-blocking módban is:
from os import system
from sys import platform
from pynput import keyboard
from pynput.keyboard import Key
from time import sleep
def print_at_x(y, x, text):
print(f"\033[{y};{x}H{text}")
def print_at_w(r, c, s):
h = windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE)
windll.kernel32.SetConsoleCursorPosition(h, COORD(c, r))
prev_codepage = windll.kernel32.GetConsoleOutputCP()
windll.kernel32.SetConsoleOutputCP(65001)
c = s.encode("UTF-8")
windll.kernel32.WriteConsoleA(h, c_char_p(c), len(c), None, None)
windll.kernel32.SetConsoleOutputCP(prev_codepage)
def on_press(key):
global dx, dy, run
if key == keyboard.Key.esc:
run = False
return run
elif key == Key.up:
dx, dy = 0, -1
elif key == Key.left:
dx, dy = -1, 0
elif key == Key.down:
dx, dy = 0, 1
elif key == Key.right:
dx, dy = 1, 0
else:
return
if platform == "linux" or platform == "linux2":
# linux
system('clear')
print_at = print_at_x
elif platform == "darwin":
# MacOS, talán működik itt is
system('clear')
print_at = print_at_x
elif platform == "win32":
# Windows...
from ctypes import *
class COORD(Structure):
pass
STD_OUTPUT_HANDLE = -11
COORD._fields_ = [("X", c_short), ("Y", c_short)]
system('cls')
print_at = print_at_w
print_at(3, 15, 'Próbálj bent maradni a négyzetben!')
for n in range(5,50):
print_at(5, n, '*')
print_at(20, n, '*')
for n in range(5,20):
print_at(n, 5, '*')
print_at(n, 50, '*')
x, y = 25, 7
dx, dy = 0, 0
run = True
print_at(y, x, 'O')
listener = keyboard.Listener(on_press=on_press, suppress=True)
listener.start()
while run:
print_at(y, x, ' ')
x, y = x + dx, y + dy
print_at(y, x, 'O')
if not (5 < x < 50) or not (5 < y < 20):
run = False
sleep(0.1)
print_at(20, 55, 'A játéknak vége !')
Új hozzászólás Aktív témák
- Milyen billentyűzetet vegyek?
- Duplázik a NAND is: a Samsung 100%-os áremelésben gondolkodik
- Amit látnod kell 80’ – 90’ évek, egész estét betöltő mozi filmjei.
- Foxpost
- Vicces képek
- One mobilszolgáltatások
- Fotókon a Samsung Galaxy A57
- exHWSW - Értünk mindenhez IS
- Épített vízhűtés (nem kompakt) topic
- Redmi Note 15 Pro+ - több plusz, mint mínusz
- További aktív témák...
- Dell XPS 9380, 13,3" UHD/4K Touch, I7-8665U CPU, 16GB DDR4, 256GB-1TB SSD, W11, Számla, 1 év garanci
- Dell XPS 9380, 13,3" UHD/4K Touch, I7-8665U CPU, 16GB DDR4, 256GB-1TB SSD, Új akku, W11, Számla, 1 é
- Eladó Konfig I7 13700K 32GB DDR5 1TB SSD RX6800XT 16GB!
- Erős gamer / workstation PC RTX 5070 Ti, 64GB RAM, Ryzen 9
- Dell Latitude 7340 2-in-1 i5 13.gen, 16GB DDR5, 512GB SSD, QHD+ érintőkijelző, ÚJ ÁLLAPOT!
- GYÖNYÖRŰ iPhone 13 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS4350
- LG 49WQ95X-W - 49" NANO IPS - 5120x1440 Dual QHD - 144Hz - USB Type-C - HDR 400 - G-Sync - FreeSync
- GYÖNYÖRŰ iPhone 13 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4188, 94% Akkumulátor
- Apple iPhone SE 2020 128 GB Fehér 1 év Garancia Beszámítás Házhozszállítás
- Bomba ár! Lenovo ThinkPad T450s - i5-5GEN I 8GB I 256GB SSD I 14" HD+ I Cam I W10 I Garancia!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs

