python烟花表白源代码
pythonimport random
import time
# 设置屏幕大小
SCREEN_WIDTH = 80
SCREEN_HEIGHT = 20
# 定义烟花字符
FIREWORK_CHAR = '*'
EMPTY_CHAR = ' '
# 定义烟花颜色
COLORS = ['red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white']
# 定义烟花类型
FIREWORK_TYPES = ['simple', 'double', 'triple']
# 定义烟花的最大高度和速度
MAX_HEIGHT = 10
MIN_SPEED = 0.1
MAX_SPEED = 0.3
# 函数:在指定位置打印字符
def print_at(x, y, char, color='3[37m'):
print("3[%d;%dH%s%s3[0m" % (y, x, color, char), end='', flush=True)
# 函数:烟花效果
def firework(x, y, color):
# 选择烟花类型
firework_type = random.choice(FIREWORK_TYPES)
if firework_type == 'simple':
sparks = [(0, 1)]
elif firework_type == 'double':
sparks = [(-1, 1), (1, 1)]
else:
sparks = [(-1, 1), (0, 1), (1, 1)]
# 发射烟花
for _ in range(MAX_HEIGHT):
for dx, dy in sparks:
print_at(x, y, FIREWORK_CHAR, '3[{}m'.format(color))
x += dx
y -= dy
time.sleep(random.uniform(MIN_SPEED, MAX_SPEED))
print_at(x, y, EMPTY_CHAR)
y += 1
# 主程序
if __name__ == "__main__":
try:
# 清屏
print("3[2J")
# 设置光标隐藏
print("3[?25l")
# 循环显示烟花
while True:
# 随机选择烟花位置和颜色
x = random.randint(1, SCREEN_WIDTH)
y = random.randint(MAX_HEIGHT + 2, SCREEN_HEIGHT - 2)
color = random.choice(COLORS)
# 显示烟花效果
firework(x, y, color)
time.sleep(1) # 每个烟花之间间隔一秒
except KeyboardInterrupt:
# 恢复光标显示
print("3[?25h")
# 清除屏幕
print("3[2J3[H")
这段代码会在终端上显示烟花效果,每次按下键盘的 Ctrl + C 组合键可以退出程序。这个程序是一个简单的烟花效果,你可以根据自己的需求进行修改和定制。
pythonimport random
import time
# 设置屏幕大小
SCREEN_WIDTH = 80
SCREEN_HEIGHT = 20
# 定义烟花字符
FIREWORK_CHAR = '*'
EMPTY_CHAR = ' '
# 定义烟花颜色
COLORS = ['3[31m', '3[32m', '3[33m', '3[34m', '3[35m', '3[36m', '3[37m']
# 定义烟花类型
FIREWORK_TYPES = ['simple', 'double', 'triple']
# 定义烟花的最大高度和速度
MAX_HEIGHT = 10
MIN_SPEED = 0.1
MAX_SPEED = 0.3
# 函数:在指定位置打印字符
def print_at(x, y, char, color='3[37m'):
print("3[%d;%dH%s%s3[0m" % (y, x, color, char), end='', flush=True)
# 函数:烟花效果
def firework(x, y, color):
# 选择烟花类型
firework_type = random.choice(FIREWORK_TYPES)
if firework_type == 'simple':
sparks = [(0, 1)]
elif firework_type == 'double':
sparks = [(-1, 1), (1, 1)]
else:
sparks = [(-1, 1), (0, 1), (1, 1)]
# 发射烟花
for _ in range(MAX_HEIGHT):
for dx, dy in sparks:
print_at(x, y, FIREWORK_CHAR, random.choice(COLORS))
x += dx
y -= dy
time.sleep(random.uniform(MIN_SPEED, MAX_SPEED))
print_at(x, y, EMPTY_CHAR)
y += 1
# 主程序
if __name__ == "__main__":
try:
# 清屏
print("3[2J")
# 设置光标隐藏
print("3[?25l")
# 循环显示烟花
while True:
# 随机选择烟花位置和颜色
x = random.randint(1, SCREEN_WIDTH)
y = random.randint(MAX_HEIGHT + 2, SCREEN_HEIGHT - 2)
color = random.choice(COLORS)
# 显示烟花效果
firework(x, y, color)
time.sleep(1) # 每个烟花之间间隔一秒
# 显示表白文本
print("3[2J3[H") # 清除屏幕
print_at(SCREEN_WIDTH // 2 - 10, SCREEN_HEIGHT // 2, "I LOVE YOU!", "3[91m")
time.sleep(3) # 表白文本显示3秒
# 清除表白文本
print("3[2J3[H") # 清除屏幕
except KeyboardInterrupt:
# 恢复光标显示
print("3[?25h")
# 清除屏幕
print("3[2J3[H")
在这个程序中,当烟花效果结束后,会在屏幕中间显示 "I LOVE YOU!" 的表白文本,并持续显示3秒钟,然后清除屏幕。你可以根据自己的需求修改表白文本的内容和显示时间。