用户:
心纳海查看:0 回复:0 评论:0 创建时间:2021-08-28T11:56:00
【作品展示】

【作品介绍】
...
【作品源代码】
import turtle
import random
import time
screen = turtle.Screen()
screen_width, screen_height = 600, 600
screen.setup(screen_width, screen_height)
screen.bgcolor("dark green")
with open("word.txt", "r", encoding="utf-8") as f:
word_list = f.readlines()
words = {}
for item in word_list:
word_cn, word_en = item.split()
words[word_cn] = word_en
def random_word(words):
w_cn = random.choice(list(words.keys()))
w_en = words[w_cn]
del words[w_cn]
letter_info = {}
num = 0
for i in w_en:
x = random.randint(-250, 250)
y = random.randint(-250, 250)
letter_info[i+str(num)] = [x, y]
num += 1
return w_cn,w_en,letter_info
pen = turtle.Pen()
pen.hideturtle()
def new_goto(x, y):
pen.penup()
pen.goto(x, y)
pen.pendown()
res_str = ""
def flash_screen(w_cn, letter_info):
screen.clear()
screen.bgcolor("dark green")
screen.tracer(0)
new_goto(-screen_width//2+10, screen_height//2-30)
pen.color("white")
pen.write(w_cn, font=("FZY3JW.TTF", 20))
new_goto(-screen_width//2+10, screen_height//2-50)
pen.write(res_str, font=("FZY3JW.TTF", 20))
for i in letter_info.keys():
x,y = letter_info[i]
new_goto(x, y)
pen.color("gold")
pen.write(i[0], font=("FZY3JW.TTF", 20, "bold"))
w_cn, w_en, letter_info = random_word(words)
flash_screen(w_cn, letter_info)
def if_in(x, y, pos):
x_in = x >= pos[0] and x <= pos[0]+20
y_in = y >= pos[1] and y <= pos[1]+20
if x_in and y_in:
return True
else:
return False
def judge(res, w_en):
if res == w_en:
print(w_en, "拼为", res, ":结果正确!")
else:
print(w_en, "拼为", res, ":结果错误!")
res_str = ""
def if_right(x, y):
global res_str, w_cn, w_en, letter_info
letters = list(letter_info.keys())
new_goto(x, y)
for i in letters:
letter_pos = letter_info[i]
if if_in(x, y, letter_pos):
res_str += i[0]
pen.write("点中")
time.sleep(0.5)
pen.undo()
del letter_info[i]
flash_screen(w_cn, letter_info)
screen.onclick(if_right)
if len(letter_info) == 0:
time.sleep(0.5)
judge(res_str,w_en)
if words:
res_str = ""
w_cn, w_en, letter_info = random_word(words)
flash_screen(w_cn, letter_info)
screen.onclick(if_right)
else:
screen.clear()
screen.bgcolor("dark green")
new_goto(0, 0)
pen.write("测试结束", align="center", font=("FZY3JW.TTF", 40))
screen.onclick(if_right)
turtle.done()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn