我想用python的海龟来有效地模拟乐高机器人。乐高机器人有能力采样机器人所定位的颜色。考虑到这一点,我想创建一个背景迷宫,让机器人在迷宫中找到自己的路。我希望能和10年级的编程学生一起使用。
到目前为止,我可以创建一个简单的画布使用tkinter和彩色矩形在画布上。我可以把海龟放在帆布上,让它们共存。海龟可以放在彩色的长方形上。
现在我只需要用某种方法对颜色进行取样。这可以通过获取海龟的位置,然后采样坐标来完成。但我现在陷入了困境。
这是我目前的代码:

from tkinter import Tk, Canvas, Frame, BOTH
import turtle

top = Tk()
C = Canvas(top, height=500, width=600)

Doug = turtle.RawTurtle(C)

rectangle = C.create_rectangle(30, 10, 120, 80, outline="#fb0", fill="#fb0")

Doug.fd(50)
Doug.rt(90)
Doug.fd(50)

C.pack(fill=BOTH, expand=1)
top.mainloop()

我确实注意到,当我运行代码时,海龟的“踪迹”在矩形后面,这表明存在分层问题。

最佳答案

从文档中关于海龟的描述来看,它没有任何功能来获取当前位置的颜色。我的方法是使用二进制地图作为步行指示器,但这可能太静态,无法模拟乐高机器人的环境。
如果你在windows上,你可以使用win32gui库,它将给你一个像素颜色从你的屏幕上的像素(Is it possible to get the color of a particular pixel on the screen with it's X and Y coordinates?)。将其与turtle.hideturtle()turtle.pos()相结合,并为父窗口添加一些偏移,您可能会获得所需的功能。
如果这对你有用,我建议你创建自己的模块来提供这个功能,这样学生们就可以专注于解决迷宫问题,而不是windows api。

09-10 07:33
查看更多