2024-01-13 19:55:47 +01:00
|
|
|
#!/usr/bin/python3
|
2024-01-14 13:48:08 +01:00
|
|
|
#import os
|
2024-01-13 19:55:47 +01:00
|
|
|
from tengine.main import *#ty,tx,clear,genfeld,strfeld,change_char,bg_char
|
|
|
|
from pynput import keyboard
|
|
|
|
from time import sleep
|
2024-01-14 22:36:39 +01:00
|
|
|
#from physics.parabelfunc import berechneflugbahn
|
2024-01-14 13:48:08 +01:00
|
|
|
import ascii
|
2024-01-14 22:36:39 +01:00
|
|
|
import random
|
2024-01-13 19:55:47 +01:00
|
|
|
|
|
|
|
def on_press(key):
|
2024-01-14 13:48:08 +01:00
|
|
|
global key_space
|
2024-01-13 19:55:47 +01:00
|
|
|
if key == keyboard.Key.space:
|
2024-01-14 13:48:08 +01:00
|
|
|
key_space = True
|
2024-01-13 19:55:47 +01:00
|
|
|
|
|
|
|
|
|
|
|
def on_release(key):
|
2024-01-14 13:48:08 +01:00
|
|
|
global running,key_space
|
|
|
|
if key == keyboard.Key.space:
|
|
|
|
key_space = False
|
2024-01-13 19:55:47 +01:00
|
|
|
if key == keyboard.Key.esc:
|
|
|
|
# Stop listener
|
|
|
|
running = "finito"
|
|
|
|
|
2024-01-14 13:48:08 +01:00
|
|
|
key_space = None
|
2024-01-13 19:55:47 +01:00
|
|
|
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
|
2024-01-14 13:48:08 +01:00
|
|
|
startscreen = True
|
2024-01-13 19:55:47 +01:00
|
|
|
running = True
|
2024-01-14 22:36:39 +01:00
|
|
|
if not ty >= 11 :
|
|
|
|
running = False
|
|
|
|
print("please resize you teerminal over 11 lines")
|
2024-01-13 19:55:47 +01:00
|
|
|
|
2024-01-14 13:48:08 +01:00
|
|
|
if __name__ == "__main__" and running == True:
|
|
|
|
feld = genfeld()
|
2024-01-14 22:36:39 +01:00
|
|
|
feld = change_block(feld,ascii.logo,[0,int(tx/2-21)])
|
2024-01-14 13:48:08 +01:00
|
|
|
|
|
|
|
while startscreen == True:
|
2024-01-14 22:36:39 +01:00
|
|
|
feld = change_block(feld,ascii.start_screen_text,[ty,int(tx/2-5)])
|
|
|
|
prfeld(feld)
|
2024-01-14 13:48:08 +01:00
|
|
|
sleep(0.2)
|
2024-01-14 22:36:39 +01:00
|
|
|
clear()
|
|
|
|
if key_space == True:
|
|
|
|
while not key_space == False:
|
|
|
|
startscreen = False
|
|
|
|
|
|
|
|
feld = viereck(feld,[ty,int(tx/2-4)],11,1," ")
|
|
|
|
prfeld(feld)
|
2024-01-14 13:48:08 +01:00
|
|
|
sleep(0.2)
|
|
|
|
clear()
|
|
|
|
if key_space == True:
|
|
|
|
while not key_space == False:
|
|
|
|
startscreen = False
|
|
|
|
|
|
|
|
feld = bg_char(feld," ")
|
2024-01-14 14:56:11 +01:00
|
|
|
feld = change_block(feld,ascii.cowsay,[int(ty/2)-2,int (tx/2)-12])
|
2024-01-14 22:36:39 +01:00
|
|
|
cows = "🐵🐒🦍🦧🐕🐯🦝🐩🐅🐴🐎🦄🦌🐗🐂🐃🐄🐪🐫🦙🦒🐹🦘🦡🐧🕊️ 🦅🦆🦉🐍🦎🐊🦜🦚🦩🐲🐉🦕"
|
|
|
|
cowlistlength = len(cows)
|
|
|
|
cow = "#" cows[random.randint(0, cowlistlength - 1)]
|
|
|
|
clear()
|
|
|
|
#feld[ty][tx] ### 2zeichen kuhh mach probleme
|
2024-01-14 13:48:08 +01:00
|
|
|
while running == True:
|
|
|
|
wobl = "-" * (tx - wobble_pos - 5)
|
|
|
|
wobr = "-" * wobble_pos
|
2024-01-14 22:36:39 +01:00
|
|
|
wobbl = f"{wobr}{cow}{wobl}"
|
|
|
|
feld = change_block(feld," " * txhalb+"↓",[ty-1,0])
|
|
|
|
feld = change_block(feld,f"[{wobbl}]",[ty,0])
|
|
|
|
prfeld(feld)
|
2024-01-14 13:48:08 +01:00
|
|
|
if wobble_pos > txhalb:
|
|
|
|
wobble_site = "left"
|
2024-01-13 19:55:47 +01:00
|
|
|
else:
|
2024-01-14 13:48:08 +01:00
|
|
|
wobble_site = "right"
|
|
|
|
|
|
|
|
if wobble_way == "right":
|
|
|
|
wobble_pos += 1
|
|
|
|
if wobble_site == "right":
|
|
|
|
points += 1
|
|
|
|
else:
|
|
|
|
points -= 1
|
2024-01-13 19:55:47 +01:00
|
|
|
else:
|
2024-01-14 13:48:08 +01:00
|
|
|
wobble_pos -= 1
|
|
|
|
if wobble_site == "right":
|
|
|
|
points -= 1
|
|
|
|
else:
|
|
|
|
points += 1
|
2024-01-13 19:55:47 +01:00
|
|
|
|
2024-01-14 13:48:08 +01:00
|
|
|
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)
|
2024-01-14 22:36:39 +01:00
|
|
|
clear()
|
|
|
|
for a in range(int(points*2)-2):
|
|
|
|
feld = change_block(feld,"-"*a+"🐄️",[0,0])
|
2024-01-14 13:48:08 +01:00
|
|
|
feld = change_block(feld,str(points_prozent)+"%",[1,int(tx/2-2)])
|
2024-01-14 22:36:39 +01:00
|
|
|
prfeld(feld)
|
2024-01-14 13:48:08 +01:00
|
|
|
sleep(0.01)
|
|
|
|
clear()
|
2024-01-14 22:36:39 +01:00
|
|
|
prfeld(feld)
|
2024-01-13 19:55:47 +01:00
|
|
|
|
|
|
|
|
2024-01-14 13:48:08 +01:00
|
|
|
## 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]) #☁️
|
2024-01-14 22:36:39 +01:00
|
|
|
# prfeld(feld)
|
2024-01-14 13:48:08 +01:00
|
|
|
# print()
|
|
|
|
#sleep(2)
|
|
|
|
##sys.exit(home + curon)
|