BS1IN AEuP Eixner BW4

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)