Cowyeet/parabeltest.py
2023-11-13 13:47:02 +01:00

62 lines
1.5 KiB
Python
Executable file

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import os, sys, termios, tty, time, random
from math import sin, cos, sqrt
from time import sleep
# Randomly choose a cow
cows = "🐵🐒🦍🦧🐕🐯🦝🐩🐅🐴🐎🦄🦌🐗🐂🐃🐄🐪🐫🦙🦒🐹🦘🦡🐧🕊️🦅🦆🦉🐍🦎🐊🦜🦚🦩🐲🐉🦕"
cowlistlength = len(cows)
cow = cows[random.randint(0, cowlistlength - 1)]
# cow = "🐄"
# cow = "*"
cowlength=len(cow)
# Needed: find our screensize
termsize_xy = os.get_terminal_size()
xmax = termsize_xy[0] - 1
xmitte = xmax / 2
ymax = termsize_xy[1]
# CTRL and ESC-codes for the used outputdevice. Probably a terminal.
clear, home, curoff, curon = "'\x1b[2J\x1b[H", "\x1b[H", "\x1b[?25l", "\x1b[?25h"
# pi is not defined by default
pi = 3.1416
deg2rad = pi / 180
# position cursor at x,y - where x=0 y=0 is the left lower corner like in mathematical diagrams
def curpos(x, y):
print("\033[%d;%dH" % (ymax - y, x), end="", flush=True)
# some scales, we need
# not everything has to be recomputed in loops.
angle = 80 * deg2rad
sinangle = sin(angle)
cosangle = cos(angle)
power = sin(50 * deg2rad)
xsteps = xmax
gravitation = 10
x = 0
y = x**2
# init screen and wait for userinput
print(clear, curoff)
print(xsteps)
a = input("CR please:")
curpos(1, ymax)
for x in range(1, xsteps, cowlength):
# parameters to fit the screen
y = (x - xmitte) ** 2 /xmitte
if y < ymax:
curpos(x, ymax- y)
print(cow, end="")
time.sleep(0.01)
curpos(1, 1)
sys.exit(curon + "Schulz nun.")