美文网首页
Python黑客帝国代码雨

Python黑客帝国代码雨

作者: 大龙10 | 来源:发表于2022-02-27 03:56 被阅读0次

      用Python生成黑客帝国代码雨


    一、random模块

    import random
    import string

      random中常见的函数如下:

    1、 随机整数:

    print( random.randint(1,50))

    2、 随机选取0到100间的偶数:

    print( random.randrange(0, 101, 2))

    3、 随机浮点数:

    print (random.random())
    print( random.uniform(1, 10))

    4、随机字符:

    print (random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()'))

    5、 多个字符中生成指定数量的随机字符:

    print( random.sample('zyxwvutsrqponmlkjihgfedcba',5))

    6、 从a-zA-Z0-9生成指定数量的随机字符:

    ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8))
    print( ran_str)

    7、多个字符中选取指定数量的字符组成新字符串:

    print (''.join(random.sample(['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'], 5)))

    8、 随机选取字符串:

    print (random.choice(['剪刀', '石头', '布']))

    9、 打乱排序

    items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
    print (random.shuffle(items))

    二、程序

    import random
    import pygame
     
    
    size = width, height = 500, 400
    FONT_PX = 15
     
    pygame.init()
     
    # 创建一个窗口
    winSur = pygame.display.set_mode(size)
    pygame.display.set_caption("黑客帝国代码雨") 
    font = pygame.font.SysFont("123.ttf", 25)
     
    bg_suface = pygame.Surface(size, flags=pygame.SRCALPHA)
     
    pygame.Surface.convert(bg_suface)
     
    bg_suface.fill(pygame.Color(0, 0, 0, 28))
     
    winSur.fill((0, 0, 0))
     
    # 数字版
    # texts = [font.render(str(i), True, (0, 255, 0)) for i in range(10)]
     
    # 字母版
    letter = ['1', '2', '3', '4', '5', '6', '8', '7', '9', '0', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c',
              'v', 'b', 'n', 'm' ,'o' ,':' ,'/' ,']' ,'[' ,'~' ,'""']
    texts = [
        font.render(str(letter[i]), True, (0, 255, 0)) for i in range(26)
    ]
     
    # 按屏幕的宽带计算可以在画板上放几列坐标并生成一个列表
    column = int(width / FONT_PX)
    drops = [0 for i in range(column)]
     
    while True:
        # 从队列中获取事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exit()
            elif event.type == pygame.KEYDOWN:
     
                chang = pygame.key.get_pressed()
                if(chang[32]):
                    exit()
     
        # 将暂停一段给定的毫秒数
        pygame.time.delay(30)
     
        # 重新编辑图像第二个参数是坐上角坐标
        winSur.blit(bg_suface, (0, 0))
     
        for i in range(len(drops)):
            text = random.choice(texts)
     
            # 重新编辑每个坐标点的图像
            winSur.blit(text, (i * FONT_PX, drops[i] * FONT_PX))
     
            drops[i] += 1
            if drops[i] * 10 > height or random.random() > 0.95:
                drops[i] = 0
     
        pygame.display.flip()
    
    

    相关文章

      网友评论

          本文标题:Python黑客帝国代码雨

          本文链接:https://www.haomeiwen.com/subject/fxlcrrtx.html