import sys
import time
import random
import subprocess
import platform
import os
höhe = 15
# von stackoverflow geklaut <3
ROT = '\033[91m'
GRÜN = '\033[92m'
GELB = '\033[93m'
BLAU = '\033[94m'
MAGENTA = '\033[95m'
CYAN = '\033[96m'
RESET = '\033[0m'
ornamente = [f'{ROT}o{RESET}', f'{GELB}@{RESET}', f'{MAGENTA}*{RESET}', f'{CYAN}o{RESET}', f'{GRÜN}@{RESET}']
breite_display = 40
def weihnachtsbaum():
"""Zeichne Weihnachtsbaum mit animierten Ornamenten und Schnee."""
ornament_positionen = {
3: [3],
5: [2, 8],
7: [4],
9: [2, 6, 10],
11: [4, 8],
13: [3, 7, 11],
}
schneeflocken = []
frame = 0
try:
while True:
print('\033[H\033[J', end='')
if random.random() < 0.4:
schneeflocken.append([random.randint(0, breite_display - 1), 0])
display = [[' ' for _ in range(breite_display)] for _ in range(höhe + 3)]
for i in range(höhe):
effective_i = i - (i // 5 * 4)
start_pos = höhe - effective_i - 1
breite = 2 * effective_i + 1
if i in ornament_positionen:
zeile = list('*' * breite)
for pos in ornament_positionen[i]:
if pos < len(zeile):
zeile[pos] = ornamente[frame % len(ornamente)]
for j, char in enumerate(zeile):
if start_pos + j < breite_display:
display[i][start_pos + j] = char
else:
for j in range(breite):
if start_pos + j < breite_display:
display[i][start_pos + j] = '*'
stamm_start = höhe - 2
for i in range(3):
for j in range(3):
if stamm_start + j < breite_display:
display[höhe + i][stamm_start + j] = '|'
neue_schneeflocken = []
for flocke in schneeflocken:
x, y = flocke
if y < höhe + 3:
if display[y][x] == ' ':
display[y][x] = '❄'
flocke[1] += 1
flocke[0] += random.choice([-1, 0, 0, 1])
flocke[0] = max(0, min(breite_display - 1, flocke[0]))
if flocke[1] < höhe + 3:
neue_schneeflocken.append(flocke)
schneeflocken = neue_schneeflocken
# Display ausgeben
for zeile in display:
print(''.join(zeile))
frame += 1
time.sleep(0.3)
except KeyboardInterrupt:
print(f'\n{GRÜN}Frohe Weihnachten! (bitte eine 1){RESET}')
try:
musik_pfad = 'musik.wav'
if platform.system() == 'Windows': # ich stalke sieeee <3
subprocess.Popen(['start', '', musik_pfad], shell=True)
elif platform.system() == 'Darwin':
subprocess.Popen(['afplay', musik_pfad])
else:
subprocess.Popen(['aplay', musik_pfad])
except Exception:
pass
sys.exit()
weihnachtsbaum()die musikdatei finden Sie hier
https://cdn.skysyrup.dev/nCkqJ.wav (muss in musik.wav umbenannt werden)
