[英]How to convert a numpy array [(x1,y1),(x2,y2),(x3,y3),…(xn,yn)] to [(x1,y1,x1^2,y1^2),(x2,y2,x2^2,y2^2),…(xn,yn,xn^2,yn^2)]
[英]Find distance X1 and Y1
我正在创建一个游戏,其中乌龟是猎物,箭头是猎人。 它们位于屏幕中央的 500 X 500“围栏”中。 当猎人到达猎物一定距离内时游戏结束。它说距离有误
import turtle
import random
import math
def difficulty():
global easy , medium , hard
level= input("Select your Difficulty")
easy=100
medium=50
hard=25
def position_prey():
prey.penup()
prey.forward(random.randint(50,100))
prey.shape("turtle")
def create_fence():
fence=turtle.Turtle()
fence.penup()
fence.goto(-250,-250)
fence.pendown()
fence.forward(500)
fence.left(90)
fence.forward(500)
fence.left(90)
fence.forward(500)
fence.left(90)
fence.forward(500)
fence.hideturtle()
def find_distance(hunter,prey):
prey = x1
hunter = x2
distance=((x2-x1)**2 + (y1-y2)**2)**0.5
def move_hunter(x,y):
hunter.penup()
hunter.goto(x,y)
find_distance(hunter,prey)
def move_prey():
prey.forward(random.randint(100,100))
find_distance(hunter,prey)
def Main():
global hunter, prey
hunter = turtle.Turtle()
prey = turtle.Turtle()
playground=turtle.Screen()
playground.onclick(move_hunter)
find_distance(hunter,prey)
difficulty()
position_prey()
create_fence()
move_prey()
Main()
除了@AaronBerger 指出的参数问题之外,我还发现您的find_distance()
函数find_distance()
两个问题:
def find_distance(hunter,prey):
prey = x1
hunter = x2
distance=((x2-x1)**2 + (y1-y2)**2)**0.5
首先,它实际上什么都不做。 由于distance
未声明为全局变量,因此它只是一个局部变量。 所以这会计算一个距离并且不做任何处理。
其次,您正在(重新)定义乌龟内置的功能,即distance()
方法。 我会这样做:
if hunter.distance(prey) < CERTAIN_DISTANCE:
# do something
根据 此处的文档:
为了获得“猎人”和“猎物”的位置,您需要使用turtle.pos()
,它将返回一个包含x 和y 位置的元组。
因此,您的find_distance
函数应如下所示:
def find_distance(hunter, prey):
xHunter, yHunter = hunter.pos()
xPrey, yPrey = prey.pos()
distance=((xPrey-xHunter)**2 + (yPrey-yHunter)**2)**0.5
您最初的问题是在该方法中未正确设置 x 和 y 位置。 祝你好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.