返回

用Python打造黑客帝国风格代码雨

见解分享

在 Python 中创造令人惊叹的“数字雨”效果

准备好踏入《黑客帝国》的数字世界了吗?使用 Python,你可以轻松地在自己的计算机上创建标志性的“数字雨”效果。让我们踏上这段技术之旅, khám phá ba phương pháp để tạo hiệu ứng mưa mã theo phong cách Ma trận trong Python。

方法一:数字代码雨

让我们从最简单的开始:用数字营造数字雨。

代码:

import random
import time

# Kích thước màn hình
screen_width = 80
screen_height = 50

# Tạo danh sách các ký tự mã
chars = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]

# Tạo màn hình
screen = [[" " for _ in range(screen_width)] for _ in range(screen_height)]

# Vòng lặp chính
while True:
    # Xóa màn hình
    for y in range(screen_height):
        for x in range(screen_width):
            screen[y][x] = " "

    # Tạo ngẫu nhiên các ký tự và thêm vào màn hình
    for i in range(100):
        x = random.randint(0, screen_width - 1)
        y = random.randint(0, screen_height - 1)
        screen[y][x] = random.choice(chars)

    # In màn hình
    for y in range(screen_height):
        for x in range(screen_width):
            print(screen[y][x], end="")
        print()

    # Trễ
    time.sleep(0.05)

Kết quả:

Một trận mưa mã số tràn ngập màn hình, tạo ra một bầu không khí bí ẩn và hấp dẫn.

Phương pháp hai: Mưa ký tự

Hãy nâng cấp trò chơi và sử dụng các chữ cái để tạo hiệu ứng mưa mã phong phú hơn.

代码:

import random
import time

# Kích thước màn hình
screen_width = 80
screen_height = 50

# Tạo danh sách các ký tự mã
chars = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]

# Tạo màn hình
screen = [[" " for _ in range(screen_width)] for _ in range(screen_height)]

# Vòng lặp chính
while True:
    # Xóa màn hình
    for y in range(screen_height):
        for x in range(screen_width):
            screen[y][x] = " "

    # Tạo ngẫu nhiên các ký tự và thêm vào màn hình
    for i in range(100):
        x = random.randint(0, screen_width - 1)
        y = random.randint(0, screen_height - 1)
        screen[y][x] = random.choice(chars)

    # In màn hình
    for y in range(screen_height):
        for x in range(screen_width):
            print(screen[y][x], end="")
        print()

    # Trễ
    time.sleep(0.05)

Kết quả:

Mưa ký tự tạo ra một hiệu ứng mã hóa mạnh mẽ, giống như thông điệp bí mật đang trôi xuống màn hình.

Phương pháp ba: Mưa hình ảnh

Hãy đưa hiệu ứng mưa mã lên một tầm cao mới bằng cách sử dụng hình ảnh làm ký tự.

Mã:

import random
import time
from PIL import Image

# Kích thước màn hình
screen_width = 80
screen_height = 50

# Tải hình ảnh
image = Image.open("path/to/image.png").convert("L")
image_width, image_height = image.size

# Tạo màn hình
screen = [[" " for _ in range(screen_width)] for _ in range(screen_height)]

# Vòng lặp chính
while True:
    # Xóa màn hình
    for y in range(screen_height):
        for x in range(screen_width):
            screen[y][x] = " "

    # Tạo ngẫu nhiên các ký tự và thêm vào màn hình
    for i in range(100):
        x = random.randint(0, screen_width - 1)
        y = random.randint(0, screen_height - 1)
        pixel = image.getpixel((x % image_width, y % image_height))
        if pixel > 128:
            screen[y][x] = "#"

    # In màn hình
    for y in range(screen_height):
        for x in range(screen_width):
            print(screen[y][x], end="")
        print()

    # Trễ
    time.sleep(0.05)

Kết quả:

Hình ảnh yêu thích của bạn trôi xuống màn hình dưới dạng mưa mã, tạo ra một hiệu ứng nghệ thuật độc đáo.

Kết luận

Với sức mạnh của Python, bạn có thể tạo ra hiệu ứng mưa mã令人惊叹, mang đến bầu không khí bí ẩn và quyến rũ cho máy tính của mình. Từ những con số đơn giản đến những ký tự phức tạp và thậm chí là những hình ảnh sống động, những phương pháp này cung cấp nhiều cách sáng tạo để khám phá thế giới kỹ thuật số. Hãy thoải mái thử nghiệm với các thông số khác nhau và tùy chỉnh hiệu ứng để phù hợp với sở thích của bạn.

Câu hỏi thường gặp

  1. Tôi có thể sử dụng bất kỳ hình ảnh nào cho mưa hình ảnh không?

Có, bạn có thể sử dụng bất kỳ hình ảnh nào miễn là nó ở định dạng đen trắng hoặc thang độ xám.

  1. Làm cách nào để thay đổi tốc độ của mưa mã?

Điều chỉnh thời gian trễ trong vòng lặp chính để thay đổi tốc độ. Thời gian trễ càng ngắn, mưa càng nhanh.

  1. Làm cách nào để thay đổi kích thước của mưa mã?

Thay đổi kích thước màn hình (screen_width và screen_height) để thay đổi kích thước của mưa mã.

  1. Có thể tạo mưa mã nhiều màu không?

Có thể, nhưng cần chỉnh sửa mã một chút. Hãy nghiên cứu về thư viện Python "Pillow" để tìm hiểu cách làm việc với màu sắc.

  1. Làm thế nào để lưu hiệu ứng mưa mã thành video?

Bạn có thể sử dụng các thư viện như OpenCV hoặc ffmpeg để ghi lại màn hình và lưu hiệu ứng dưới dạng video.