128 lines
3 KiB
Python
128 lines
3 KiB
Python
|
#!/usr/bin/python3
|
||
|
import os
|
||
|
from tengine.main import *#ty,tx,clear,genfeld,strfeld,change_char,bg_char
|
||
|
from pynput import keyboard
|
||
|
from time import sleep
|
||
|
from physics.parabelfunc import berechneflugbahn
|
||
|
import random
|
||
|
|
||
|
|
||
|
#def clear():
|
||
|
# if os.name == "nt":
|
||
|
# os.system("cls")
|
||
|
# else:
|
||
|
# os.system("clear")
|
||
|
|
||
|
|
||
|
def on_press(key):
|
||
|
global running
|
||
|
if key == keyboard.Key.space:
|
||
|
running = False
|
||
|
|
||
|
|
||
|
def on_release(key):
|
||
|
global running
|
||
|
if key == keyboard.Key.esc:
|
||
|
# Stop listener
|
||
|
running = "finito"
|
||
|
|
||
|
|
||
|
listener = keyboard.Listener(on_press=on_press, on_release=on_release)
|
||
|
|
||
|
listener.start()
|
||
|
|
||
|
txhalb = int(tx / 2)-2
|
||
|
wobble_speed = 0.01
|
||
|
wobble_pos = 0
|
||
|
wobble_way = "right"
|
||
|
points = 0
|
||
|
running = True
|
||
|
while running == True:
|
||
|
wobl = "-" * (tx - wobble_pos - 5)
|
||
|
wobr = "-" * wobble_pos
|
||
|
wobbl = f"{wobr}🐄️{wobl}"
|
||
|
print(" " * txhalb, "↓")
|
||
|
print(f"[{wobbl}]")
|
||
|
print(wobble_pos)
|
||
|
print(points)
|
||
|
print(tx)
|
||
|
print(txhalb)
|
||
|
|
||
|
if wobble_pos > txhalb:
|
||
|
wobble_site = "left"
|
||
|
else:
|
||
|
wobble_site = "right"
|
||
|
|
||
|
if wobble_way == "right":
|
||
|
wobble_pos += 1
|
||
|
if wobble_site == "right":
|
||
|
points += 1
|
||
|
else:
|
||
|
points -= 1
|
||
|
else:
|
||
|
wobble_pos -= 1
|
||
|
if wobble_site == "right":
|
||
|
points -= 1
|
||
|
else:
|
||
|
points += 1
|
||
|
|
||
|
if wobble_pos >= tx - 4:
|
||
|
wobble_way = "left"
|
||
|
elif wobble_pos == 0:
|
||
|
wobble_way = "right"
|
||
|
|
||
|
sleep(wobble_speed)
|
||
|
clear()
|
||
|
|
||
|
if running == "finito":
|
||
|
exit()
|
||
|
|
||
|
#tx halb = max points #in ausgerechneten bruch und an in bruch mit nenner 100 ergibt zähler mit punktewert
|
||
|
|
||
|
for a in range(int(points*2)):
|
||
|
print("-" * a + "🐄️", end="\r")
|
||
|
sleep(0.01)
|
||
|
|
||
|
points = int((points/txhalb)*100)
|
||
|
print("\n", points, "%")
|
||
|
|
||
|
feld = genfeld()
|
||
|
# Randomly choose a cow
|
||
|
cows = "🐵🐒🦍🦧🐕🐯🦝🐩🐅🐴🐎🦄🦌🐗🐂🐃🐄🐪🐫🦙🦒🐹🦘🦡🐧🕊️ 🦅🦆🦉🐍🦎🐊🦜🦚🦩🐲🐉🦕"
|
||
|
cowlistlength = len(cows)
|
||
|
cow = cows[random.randint(0, cowlistlength - 1)]
|
||
|
# Needed: find our screensize. We are in textmode here
|
||
|
#termsize_xy = os.get_terminal_size()
|
||
|
### I m p o r t a n t p a r a m e t e r s ###
|
||
|
# X-Resolution of the display
|
||
|
xmax = tx-1 #termsize_xy[0] - 1
|
||
|
xsteps = 20#xmax
|
||
|
ymax = ty #termsize_xy[1]
|
||
|
ymin = 0
|
||
|
xmin = 0
|
||
|
startwinkel = 70
|
||
|
startgeschwindigkeit = 60
|
||
|
starthoehe = 0
|
||
|
schlafzeit = 0.05
|
||
|
###
|
||
|
# needed for erasing old position
|
||
|
xold = xmin
|
||
|
yold = ymin
|
||
|
x = xmin
|
||
|
y = xmin
|
||
|
# Call the function, which calculates the coordinates)
|
||
|
ergebnis = berechneflugbahn(xmax, ymax, xsteps, startwinkel, startgeschwindigkeit, starthoehe, gravitation=1, xstep=2)
|
||
|
|
||
|
feld = bg_char(feld,"-")
|
||
|
|
||
|
# here we draw the cow
|
||
|
for count in range(xmin, len(ergebnis), 2):
|
||
|
xold, yold = x, y
|
||
|
x, y = ergebnis[count], ergebnis[count + 1]
|
||
|
change_block(feld,"@",[x, y])
|
||
|
sleep(schlafzeit)
|
||
|
change_block(feld,"#",[xold, yold]) #☁️
|
||
|
print(strfeld(feld))
|
||
|
print()
|
||
|
sleep(2)
|
||
|
#sys.exit(home + curon)
|