以下是一個簡單的Python動態流星代碼示例:
import random
import time
import os
def create_meteor():
width, height = os.get_terminal_size()
meteor = {
'x': random.randint(0, width - 1),
'y': 0,
'length': random.randint(3, 10),
'speed': random.uniform(0.1, 0.5)
}
return meteor
def move_meteor(meteor):
meteor['y'] += 1
def draw_meteor(meteor):
print('\033[91m', end='') # 設置顏色為紅色
for i in range(meteor['length']):
print('\033[{};{}H{}'.format(meteor['y'] - i, meteor['x'] + i, '*'))
print('\033[0m', end='') # 恢復默認顏色
def clear_meteor(meteor):
for i in range(meteor['length']):
print('\033[{};{}H{}'.format(meteor['y'] - i, meteor['x'] + i, ' '))
def main():
meteors = []
while True:
if random.random() < 0.1:
meteors.append(create_meteor())
for meteor in meteors:
clear_meteor(meteor)
move_meteor(meteor)
if meteor['y'] > os.get_terminal_size().lines:
meteors.remove(meteor)
else:
draw_meteor(meteor)
time.sleep(0.05)
if __name__ == '__main__':
main()
此代碼使用了ANSI轉義序列來控制終端的輸出,以實現動態流星效果。代碼中的\033[91m
設置輸出顏色為紅色,\033[0m
恢復默認顏色。代碼中的os.get_terminal_size().lines
用于獲取終端的行數,以便判斷流星是否超出屏幕。