From 2e449cd78a5c45a4dd73e93b5490cc46ac9440bb Mon Sep 17 00:00:00 2001 From: Wolfgang Nowak Date: Sat, 30 Sep 2023 17:31:49 +0200 Subject: [PATCH] Das bloedeste Autorennspiel der Welt V 0.1 --- bonk.py | 92 ++++++++++++++++++++++++++++++++++++++++++++++ scrolldown.py | 80 ++++++++++++++++++++++++++++++++++++++++ scrollup.py | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 272 insertions(+) create mode 100755 bonk.py create mode 100755 scrolldown.py create mode 100755 scrollup.py diff --git a/bonk.py b/bonk.py new file mode 100755 index 0000000..185c321 --- /dev/null +++ b/bonk.py @@ -0,0 +1,92 @@ +#!/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.") diff --git a/scrolldown.py b/scrolldown.py new file mode 100755 index 0000000..41cccf6 --- /dev/null +++ b/scrolldown.py @@ -0,0 +1,80 @@ +#!/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" + +replstring = " " + + +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") + + +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 = "# #" +pi=3.1416 +deg2rad=pi/180 + + +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.") diff --git a/scrollup.py b/scrollup.py new file mode 100755 index 0000000..a85eb18 --- /dev/null +++ b/scrollup.py @@ -0,0 +1,100 @@ +#!/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, random +from math import sin, cos + +esc = chr(27) +bracket = chr(91) +c_up = chr(65) +c_down = chr(66) +c_right = chr(67) +c_left = chr(68) +clear = "'\x1b[2J\x1b[H" +car = "🚜" +replstring = " " +fd = sys.stdin.fileno() +remember_attributes = termios.tcgetattr(fd) + + +termsize_xy = os.get_terminal_size() +xmax = termsize_xy[0] - 1 +ymax = termsize_xy[1] +x, xold, y, yold = xmax / 2, xmax / 2, ymax - 1, ymax - 1 +ymin = 1 +xmin = 1 +street = "# #" +streetlen = len(street) +pi = 3.1416 +deg2rad = pi / 180 +curvelen = 40 +toggle = 1 +curvemax = random.randint(len(street) + 1, xmax - len(street)) +taste = "" +z = 90 + +x = int((sin(curvelen * deg2rad) * cos(xmax - curvelen * deg2rad) + 1) * (xmax / 2)) + + +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 + tty.setraw(sys.stdin.fileno()) + taste = sys.stdin.read(getkey_buffer) + termios.tcsetattr(fd, termios.TCSADRAIN, remember_attributes) + return taste + + +print(clear) +cursoroff() + +while taste != "x" and taste != "q": + taste = getkey() + + if taste == esc: + taste = getkey() + ########## Print car + 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(x, y) + print(car, end="") + curpos(xold, yold - 1) + print(replstring, end="") + + ####### print street + curvelen = int(curvelen + toggle) % 360 + + if curvelen <= 40 or curvelen == curvemax: + curvemax = random.randint(len(street) * 3, 180) + z += toggle + toggle *= -1 + curvelen = int(curvelen + toggle) % 360 + streetpos = int((sin(curvelen * deg2rad) * cos(xmax - curvelen * deg2rad) + 1) * (xmax / 2)) + curvelen += toggle % 360 + curpos(streetpos, ymax) + print(street) + + +cursoron() +sys.exit("Schulz nun.")