猫史档案馆


【Python作品分享】新的作品【作业帖】

用户:基j-R4基j-R4查看:0 回复:1 评论:0 创建时间:2021-12-07T22:03:59


【作品展示】

center_image

 

【作品介绍】

123

 

【作品源代码】

import turtle
import random

screen = turtle.Screen()
screen.setup(1024, 768)
screen.title('Typing Game - PythonTurtle.Academy')
screen.bgcolor('blue')
screen.tracer(0, 0)
turtle.hideturtle()
turtle.up()
turtle.color('red')
score_turtle = turtle.Turtle()
score_turtle.color('red')
score_turtle.up()
score_turtle.hideturtle()
turtle.goto(350, 400)
turtle.write('Score: ', align='center', font=('Courier', 25, 'normal'))

min_speed = 5
max_speed = 30
letters = []
speeds = []
pos = []
lts = []
n = 10
game_over = False
score = 0


def increase_difficulty():
    global min_speed, max_speed
    min_speed += 1
    max_speed += 1
    screen.ontimer(increase_difficulty, 5000)


def draw_game_over():
    turtle.goto(0, 0)
    turtle.color('red')
    turtle.write('GAME OVER', align='center', font=('Courier', 50, 'normal'))
    turtle.goto(0, -150)
    turtle.color('orange')
    turtle.write('Your Score is {}'.format(score),
                 align='center', font=('Courier', 40, 'normal'))
    screen.update()


def draw_score():
    score_turtle.clear()
    score_turtle.goto(420, 400)
    score_turtle.write('{}'.format(score), align='center',
                       font=('Courier', 25, 'normal'))
    screen.update()


def draw_letters():
    global game_over
    for i in range(len(letters)):
        lts[i].clear()
        lts[i].goto(pos[i])
        lts[i].write(letters[i], align='center',
                     font=('courier', 20, 'normal'))
        pos[i][1] -= speeds[i]
        if pos[i][1] < -500:
            game_over = True
            draw_game_over()
            return
    screen.update()
    screen.ontimer(draw_letters, 50)


def f(c):  # handle keyboard press
    global score
    if c in letters:
        score += 1
        k = letters.index(c)
        while True:
            l = chr(ord('a')+random.randrange(26))
            if l not in letters:
                letters[k] = l
                break
        pos[k] = [random.randint(-450, 450), 500]
        speeds[k] = random.randint(min_speed, max_speed)
    else:
        score -= 1
    draw_score()


for _ in range(n):
    lts.append(turtle.Turtle())
    while True:
        l = chr(ord('a')+random.randrange(26))
        if l not in letters:
            letters.append(l)
            break
    speeds.append(random.randint(min_speed, max_speed))
    pos.append([random.randint(-450, 450), 500])

for i in range(n):
    lts[i].speed(0)
    lts[i].hideturtle()
    lts[i].up()
    lts[i].color('yellow')

draw_letters()
increase_difficulty()

screen.onkey(lambda: f('a'), 'a')
screen.onkey(lambda: f('b'), 'b')
screen.onkey(lambda: f('c'), 'c')
screen.onkey(lambda: f('d'), 'd')
screen.onkey(lambda: f('e'), 'e')
screen.onkey(lambda: f('f'), 'f')
screen.onkey(lambda: f('g'), 'g')
screen.onkey(lambda: f('h'), 'h')
screen.onkey(lambda: f('i'), 'i')
screen.onkey(lambda: f('j'), 'j')
screen.onkey(lambda: f('k'), 'k')
screen.onkey(lambda: f('l'), 'l')
screen.onkey(lambda: f('m'), 'm')
screen.onkey(lambda: f('n'), 'n')
screen.onkey(lambda: f('o'), 'o')
screen.onkey(lambda: f('p'), 'p')
screen.onkey(lambda: f('q'), 'q')
screen.onkey(lambda: f('r'), 'r')
screen.onkey(lambda: f('s'), 's')
screen.onkey(lambda: f('t'), 't')
screen.onkey(lambda: f('u'), 'u')
screen.onkey(lambda: f('v'), 'v')
screen.onkey(lambda: f('w'), 'w')
screen.onkey(lambda: f('x'), 'x')
screen.onkey(lambda: f('y'), 'y')
screen.onkey(lambda: f('z'), 'z')

screen.listen()
screen.mainloop()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
一缕余晖一缕余晖

你好呀-一缕余晖制造的0智商虫子

点赞0


评论