93 lines
1.9 KiB
Python
93 lines
1.9 KiB
Python
|
#!/usr/bin/python3
|
||
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
""" Ein hilfloser Versuch, Tasteneingaben abzufragen. Man kann auch in Python C schreiben. Ein Thread wär evtl besser. """
|
||
|
|
||
|
import os, sys, termios, tty, time
|
||
|
|
||
|
esc = chr(27)
|
||
|
bracket = chr(91)
|
||
|
c_up = chr(65)
|
||
|
c_down = chr(66)
|
||
|
c_right = chr(67)
|
||
|
c_left = chr(68)
|
||
|
x, xold, y, yold = 15, 15, 15, 15
|
||
|
clear = "'\x1b[2J\x1b[H"
|
||
|
|
||
|
car = "🚜"
|
||
|
replstring = " "
|
||
|
termsize_xy = os.get_terminal_size()
|
||
|
frame = 0
|
||
|
xmax = termsize_xy[0] - frame
|
||
|
ymax = termsize_xy[1] - frame
|
||
|
ymin = 1 + frame
|
||
|
xmin = 1 + frame
|
||
|
street = "# #"
|
||
|
streetwidth=len(street)
|
||
|
streetymax=ymax-streetwidth
|
||
|
|
||
|
def curpos(x, y):
|
||
|
print("\033[%d;%dH" % (y, x), end="", flush=True)
|
||
|
|
||
|
|
||
|
def cursoroff():
|
||
|
sys.stdout.write("\033[?25l")
|
||
|
|
||
|
|
||
|
def cursoron():
|
||
|
sys.stdout.write("\033[?25h")
|
||
|
|
||
|
|
||
|
def getkey():
|
||
|
getkey_buffer = 1
|
||
|
fd = sys.stdin.fileno()
|
||
|
remember_attributes = termios.tcgetattr(fd)
|
||
|
tty.setraw(sys.stdin.fileno())
|
||
|
taste = sys.stdin.read(getkey_buffer)
|
||
|
termios.tcsetattr(fd, termios.TCSADRAIN, remember_attributes)
|
||
|
return taste
|
||
|
|
||
|
def zeichnestrasse():
|
||
|
xstreet=xstreet+(int(random(ymin, (ymax-
|
||
|
print(street)
|
||
|
|
||
|
|
||
|
print(clear)
|
||
|
cursoroff()
|
||
|
taste = ""
|
||
|
while taste != "q":
|
||
|
# taste = ""
|
||
|
# while taste == "":
|
||
|
taste = getkey()
|
||
|
|
||
|
if taste == esc:
|
||
|
taste = getkey()
|
||
|
if taste == bracket:
|
||
|
taste = getkey()
|
||
|
|
||
|
yold = y
|
||
|
xold = x
|
||
|
if taste == c_right:
|
||
|
if x < xmax and y < ymax:
|
||
|
x += 1
|
||
|
elif taste == c_left:
|
||
|
if x > xmin:
|
||
|
x -= 1
|
||
|
|
||
|
curpos(xold, yold)
|
||
|
print(replstring, end="")
|
||
|
|
||
|
curpos(x, y)
|
||
|
print(car, end="")
|
||
|
|
||
|
curpos(1, 1)
|
||
|
print("x = ", x, " \ny = ", y, " ")
|
||
|
curpos(1, 3)
|
||
|
print("xold = ", xold, " \nyold = ", yold, " ")
|
||
|
curpos(ymax, 10)
|
||
|
print (street)
|
||
|
|
||
|
|
||
|
cursoron()
|
||
|
sys.exit("Schulz nun.")
|