cowyeet_terminal/v2.py
2024-01-14 22:36:39 +01:00

151 lines
No EOL
4.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 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:
feld = genfeld()
feld = change_block(feld,ascii.logo,[0,int(tx/2-21)])
while startscreen == True:
feld = change_block(feld,ascii.start_screen_text,[ty,int(tx/2-5)])
prfeld(feld)
sleep(0.2)
clear()
if key_space == True:
while not key_space == False:
startscreen = False
feld = viereck(feld,[ty,int(tx/2-4)],11,1," ")
prfeld(feld)
sleep(0.2)
clear()
if key_space == True:
while not key_space == False:
startscreen = False
feld = bg_char(feld," ")
feld = change_block(feld,ascii.cowsay,[int(ty/2)-2,int (tx/2)-12])
cows = "🐵🐒🦍🦧🐕🐯🦝🐩🐅🐴🐎🦄🦌🐗🐂🐃🐄🐪🐫🦙🦒🐹🦘🦡🐧🕊️ 🦅🦆🦉🐍🦎🐊🦜🦚🦩🐲🐉🦕"
cowlistlength = len(cows)
cow = "#" cows[random.randint(0, cowlistlength - 1)]
clear()
#feld[ty][tx] ### 2zeichen kuhh mach probleme
while running == True:
wobl = "-" * (tx - wobble_pos - 5)
wobr = "-" * wobble_pos
wobbl = f"{wobr}{cow}{wobl}"
feld = change_block(feld," " * txhalb+"",[ty-1,0])
feld = change_block(feld,f"[{wobbl}]",[ty,0])
prfeld(feld)
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)
clear()
if key_space == True:
break
points_prozent = int((points/txhalb)*100)
clear()
for a in range(int(points*2)-2):
feld = change_block(feld,"-"*a+"🐄️",[0,0])
feld = change_block(feld,str(points_prozent)+"%",[1,int(tx/2-2)])
prfeld(feld)
sleep(0.01)
clear()
prfeld(feld)
## 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]) #☁️
# prfeld(feld)
# print()
#sleep(2)
##sys.exit(home + curon)