import turtle
import time
#初始化
def init():
global question_list, answer_list, option_list, position_list, question_index, question, answer
# 题目列表
question_list = [’[整数在Python中是用什么表示的?]’, ‘[怎样在Python中输出?]’,
‘[条件判断在Python中是怎么写的?]’]
# 选项列表
option_list = [[‘A.int’, ‘B.float’, ‘C.str’], [‘A.while’, ‘B.print’, ‘C.input’], [‘A.if’, ‘B.list’, ‘C.turtle’]]
# 答案列表
answer_list = [‘int’, ‘print’, ‘if’]
# 选项位置列表
position_list = [[-180,-100],[0,-100],[200,-100]]
# 问题画笔
#问题序号
question_index = 0
#创建画笔
question = turtle.Pen()
question.hideturtle()
# 结果画笔
answer = turtle.Pen()
answer.hideturtle()
answer.penup()
answer.goto(-100,-50)
#在屏幕上绘制出相应文字
def drawText(p, color , text, size=40):
p.pencolor(color)
p.pensize(size)
p.write(text, font=(‘宋体’,size, ‘normal’))
#在屏幕上显示出下一个问题
def getQuestion(p, index):
# 注意清空屏幕!!!!!!!!!!!!
p.clear()
# global init
p.penup()
p.goto(-300, 150)
# 检测题目是否回答完
if index > 2:
p.goto(-50, 0)
drawText(p, ‘green’, ‘通关了!’)
else:
drawText(p,‘black’,question_list[index])
for a in range(3):
p.up()
p.goto(position_list[a][0], position_list[a][1])
# p.down()
drawText(p,‘black’ ,option_list[index][a])
index += 1
#############参考代码段#############################
#注意点:
1、每次点击屏幕,onscreenclick都会把坐标传给checkPos让他去判断,所以checkPos只需要对当前这个题目的选项来循环检查可以啦
#2、33行加了清空屏幕的功能
#检查点击的坐标是否为正确选项
def checkPos(x, y):
global question_index
#将获得的坐标和本题的每个选项逐一比较,用来先确定是哪个选项,再确定选项是否正确
#多点击几次,总归能选择正确
for i in range(len(option_list)):
#判断是否为某选项的坐标
if position_list[i][0] - 80 < x < position_list[i][0]+30 and position_list[i][1] < y < position_list[i][1] + 80:
#将选项(例如A.int)分割获得 int ,再和答案列表进行比较
if option_list[question_index][i].split(’.’)[1] == answer_list[question_index]:
#回答正确后要做的事情!!!!!!!!
#1、显示提示
result(answer, 'right')
#2、修改题目序号,显示下一题
question_index += 1
getQuestion(question, question_index)
else:
result(answer, 'wrong')
#显示回答问题的结果
def result(p, r):
p.goto(-100, 100)
p.goto(-100, 100)
if r == ‘right’:
drawText(p, ‘green’, ‘恭喜你回答正确’, 30)
else:
drawText(p, ‘red’, ’ 再想想哦’, 30)
time.sleep(1)
#注意清空屏幕!!!!!!!!!!!!
p.clear()
###########################常郝自己即将完成的代码段#########################
#注意点:每次点击屏幕,onscreenclick都会把坐标传给checkPos让他去判断
#所以checkPos只需要对当前这一个题目的选项来循环检查可以啦
#通过判断坐标,检测用户点击选项是否正确
def checkPos(x, y):
answer = 0
global position_list,answer_list
if x >=-240 and x<=240 and -10<= y <=10:
if -240<=position_list[0]<=-80:
answer = 0
elif -80<=position_list[0]<=80:
answer = 1
elif 80<=position_list[0]<=240:
answer = 2
turtle.tracer(False)
init()
getQuestion(question, question_index)
turtle.onscreenclick(checkPos)
turtle.done()