Python代码编程基础第11课 寻宝之旅

知识要点

  1. 函数的返回值
  2. bgpic()函数
  3. distance()函数
  4. write()函数
  5. 监听屏幕点击事件

一、PPT课件

二、知识要点

1.函数的返回值

有些时候我们想要在函数外的代码中用函数里代码块执行的结果,这就需要函数在被调用的时候返回执行的结果。这种情况下,函数代码块执行的结果就是返回值。

1
2
3
4
5
6
7
8
import turtle as t

def move(a,b,c):
return a+b+c # return + 返回值 返回需要的结果。
print(a + b * c) # return之后的语句不会被执行。这句话不会被执行。

step = move(20,5,10) # 需要用变量“接收”函数的返回值。
t.forward(step)

2.bgpic()函数

bgpic() 函数把图片设置为背景图案。

1
turtle.bgpic("pic2.png")

3. distance()函数

distance() 获取海龟与某个坐标点或者与另一个海龟之间的距离。

1
2
dist1 = t1.distance(0,0)
dist2 = t1.distance(t2)

4.write()函数

write() 在屏幕上显示文本。

1
turtle.write('你好', align="left",font=("微软雅黑",16,"bold")) # align 水平对齐方式

5.监听屏幕点击事件

onscreenclick() 监听屏幕点击事件

1
2
3
4
5
6
7
8
# 点击屏幕上任意一点,海龟会移动到该点坐标。

import turtle as t

def moveTurtle(x,y):
t.goto(x,y)

t.onscreenclick(moveTurtle)

三、代码示例

1.case

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# -*- coding: utf-8
# P211 寻宝之旅项目参考代码
import turtle as t
import random

t.bgpic("pic2.png")
t.color("white")

t.shape("turtle")
t.color('white')

# 限定探测器的个数
total = 20

goldX = random.randint(-470, 470)
goldY = random.randint(-400, 400)

findTreasure = False


def detector(x, y):
global findTreasure, total
t.goto(x, y)
dis = t.distance(goldX, goldY)
total -= 1
if total >= 0:
if findTreasure == False:
if dis > 500:
return "在探测范围之外,还剩下探测器个数: " + str(total)
elif dis > 350:
return "距离宝藏的位置十分遥远,还剩下探测器个数: " + str(total)
elif dis > 200:
return "距离宝藏有一些距离,还剩下探测器个数: " + str(total)
elif dis > 100:
return "距离宝藏十分近,还剩下探测器个数: " + str(total)
else:
findTreasure = True
t.color("yellow")
t.goto(goldX, goldY)
t.begin_fill()
for i in range(4):
t.forward(30)
t.right(90)
t.end_fill()
return "宝藏就在这里,还剩下探测器个数:" + str(total)
else:
return "宝藏已经被拿走了" + ',还剩下探测器的个数是 ' + str(total)
else:
return "你没有探测器啦!"


t2 = t.Turtle()
t2.hideturtle()


def message(x, y):
msg = detector(x, y)
t.tracer(0)
t2.clear()
t2.color('gold')
t2.pu()
t2.goto(-200, 200)
t2.write(msg, align="left", font=("微软雅黑", 10, "bold"))
t.tracer(1)


t.onscreenclick(message)

t.done()

2.homework

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# -*- coding: utf-8
import turtle as t1

t1.colormode(255)
t1.bgcolor(255, 255, 255)
t2 = t1.Turtle()
t1.color(0, 0, 0)
t2.color(0, 0, 0)


def colorRed():
t1.color(255, 0, 0)
t2.color(255, 0, 0)


def colorGreen():
t1.color(0, 255, 0)
t2.color(0, 255, 0)


def colorBlue():
t1.color(0, 0, 255)
t2.color(0, 0, 255)


def drawing(x, y):
t1.goto(x, y)
t2.goto(-x, y)
print(x, y)
return x, y


def changeColor(x, y):
xPos,yPos = drawing(x, y)
xPos = int(xPos)
if xPos > 0:
if xPos > 255:
t1.bgcolor(xPos -255, 40, 40)

else:
t1.bgcolor(xPos, 40, 40)
else:
if xPos < -255:
t1.bgcolor(-xPos-255, 40, 40)
else:
t1.bgcolor(-xPos, 40, 40)


t1.onscreenclick(changeColor)
t1.onkeypress(colorRed, 'r')
t1.onkeypress(colorGreen, 'g')
t1.onkeypress(colorBlue, 'b')
t1.listen()

t1.done()