cowyeet_terminal/v2.py

128 lines
3 KiB
Python
Raw Normal View History

#!/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)