cowyeet_terminal/v2.py
2024-01-16 14:53:01 +01:00

139 lines
No EOL
3.9 KiB
Python

#!/usr/bin/python3
#import os
from tengine.main import *#ty,tx,scene.clear,genscene,strscene,change_char,bg_char
from pynput import keyboard
from time import sleep
from physics.parabelfunc import berechneflugbahn
import ascii
import random
def on_press(key):
global key_space
if key == keyboard.Key.space:
key_space = True
def on_release(key):
global running,key_space
if key == keyboard.Key.space:
key_space = False
if key == keyboard.Key.esc:
# Stop listener
running = "finito"
key_space = None
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
startscreen = True
running = True
if not ty >= 11 :
running = False
print("please resize you teerminal over 11 lines")
if __name__ == "__main__" and running == True:
scene = tengine()
scene.set_block(ascii.logo,[0,int(tx/2-21)])
while startscreen == True:
scene.set_block(ascii.start_screen_text,[ty,int(tx/2-5)])
scene.print()
sleep(0.2)
scene.clear()
if key_space == True:
while not key_space == False:
startscreen = False
scene.viereck([ty,int(tx/2-4)],11,1," ")
scene.print()
sleep(0.2)
scene.clear()
if key_space == True:
while not key_space == False:
startscreen = False
scene.bg_char(" ")
scene.set_block(ascii.cowsay,[int(ty/2)-2,int (tx/2)-12])
cows = "🐵🐒🦍🦧🐕🐯🦝🐩🐅🐴🐎🦄🦌🐗🐂🐃🐄🐪🐫🦙🦒🐹🦘🦡🐧🕊️ 🦅🦆🦉🐍🦎🐊🦜🦚🦩🐲🐉🦕"
cowlistlength = len(cows)
cow = "#" #cows[random.randint(0, cowlistlength - 1)]
scene.clear()
#scene[ty][tx] ### 2zeichen kuhh mach probleme
while running == True:
wobl = "-" * (tx - wobble_pos - 5)
wobr = "-" * wobble_pos
wobbl = f"{wobr}{cow}{wobl}"
scene.set_block(" " * txhalb+"",[ty-1,0])
scene.set_block(f"[{wobbl}]",[ty,0])
scene.print()
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 - 5:
wobble_way = "left"
elif wobble_pos == 0:
wobble_way = "right"
sleep(wobble_speed)
scene.clear()
if key_space == True:
break
points_prozent = int((points/txhalb)*100)
scene.clear()
for a in range(int(points*2)-2):
scene.set_block("-"*a+cow,[0,0])#🐄️
scene.set_block(str(points_prozent)+"%",[1,int(tx/2-2)])
scene.print()
sleep(0.01)
scene.clear()
scene.print()
exit()
xsteps = int((tx+2)/2) #20#xmax
xmax = tx-1 #termsize_xy[0] - 1
ymax = ty #termsize_xy[1]
ymin = 0
xmin = 0
startwinkel = 70#+180
startgeschwindigkeit = 30
starthoehe = 0#int(ty/2)
####
## needed for erasing old position
## Call the function, which calculates the coordinates)
ergebnis = berechneflugbahn(xmax, ymax, xsteps, startwinkel, startgeschwindigkeit, starthoehe, gravitation=1, xstep=2)
#
## here we draw the cow
xold = xmin
yold = ymin
x = xmin
y = xmin
for count in range(2, len(ergebnis), 2):
xold, yold = x, y
x, y = ergebnis[count], ergebnis[count + 1]
set_block(scene,"@",[x, y])
sleep(0.1)
set_block(scene,"-",[xold, yold]) #☁️
scene.print()