python随机姓名

闲来无事,做了个可以在做游戏点名的时候用的小程序,太简单,就不讲解了,分享如下:

# -*- coding: utf-8 -*-
"""
Created on Thu Oct 15 10:08:10 2020

@author: Zengda Bo
"""
import pygame
from pygame import *
import sys
import threading
import time
import random

pygame.init()
font = pygame.font.Font("C:/Windows/Fonts/simhei.ttf", 20)
StartRect = pygame.Rect(55, 160, 40, 40)
EndRect = pygame.Rect(105, 160, 40, 40)
is_start = False
name_list = []
f = open("./name.txt", encoding="utf-8")
lines = f.readlines()
for line in lines:
    name_list.append(line.strip())
def main():
    global is_start
    screen = pygame.display.set_mode((200, 200)) 
    pygame.display.set_caption("随机点名器")  
    DrawScreen(screen)
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                pos_x, pos_y = event.pos
                if StartRect.collidepoint(pos_x, pos_y) and is_start == False:
                    is_start = True
                    t1 = threading.Thread(target=StartSelect, args=[screen])#开支线
                    t1.start()
                if EndRect.collidepoint(pos_x, pos_y) and is_start == True:
                    print("END")
                    is_start = False#停支线
            if event.type == KEYDOWN:
                if event.key == pygame.K_ESCAPE:
                    sys.exit()
                    

def DrawScreen(screen):
    screen.fill((255, 255, 255))
    screen.fill((0, 0, 0), StartRect)
    screen.fill((0, 0, 0), EndRect)
    start = font.render("开始", True, (255, 0, 0))
    end = font.render("停止", True, (255, 0, 0))
    start_rect = start.get_rect()
    end_rect = end.get_rect()
    start_rect.center = StartRect.center
    end_rect.center = EndRect.center
    screen.blit(start, start_rect)
    screen.blit(end, end_rect)
    pygame.display.update()
    
def StartSelect(screen):
    global is_start
    print("START")
    while True:
        if is_start == False:
            break
        screen.fill((255, 255, 255), (0, 0, 200, 160))
        temp = random.randint(0, len(name_list)-1)
        name = name_list[temp]
        font2 = pygame.font.Font("C:/Windows/Fonts/simhei.ttf", 50)
        msg = font2.render(name, True, (0, 0, 255))
        msg_rect = msg.get_rect()
        msg_rect.center = (100, 100)
        screen.blit(msg, msg_rect)
        pygame.display.update()
        time.sleep(0.01)
main()

注意要在py文件的同一目录放个name.txt,里面放名字,一行一个名字。
老师拿来给学生点名也是极好的哦(疯狂暗示)~~

你可能感兴趣的:(python随机姓名)