作业2–面向对象的乌龟赛跑课程:BTH000Python编程I1简介该作业的目的是让您证明您掌握了面向对象建模的基础知识,并且您掌握了将Python程序与一些用户定义的类和对象组合在一起的能力。2任务–TurtleRace任务是实现一个游戏,几个人可以通过输入他们的名字和他们最喜欢的颜色来注册比赛。此后,每个玩家都得到一只具有所选颜色的乌龟,乌龟在从起跑线到终点线的比赛中相互竞争。使用海龟图形包使海龟和赛道在屏幕上可见。使用面向对象的概念来设计您的程序。你应该在这个作业中实现至少两个不同的类。一个用于玩家,一个用于比赛游戏本身。这就是一场比赛的样子:图1:游戏设置1图2:游戏运行图3:Presentresult2.1classPlayer您的Player类至少应具有以下私有属性:名称颜色起始位置Turtle对象初始化为所选颜色和正确的起始位置如果需要,您可以自由添加更多属性。例如,您可以有一个带有数字的变量,用于跟踪移动方法是否应该实际向前移动海龟。我们不希望它在到达球门线后继续移出窗口。如果你选择实现这样一个属性,那么实现一个对应于该属性的getter方法可能会很方便。该类还应该有一个类变量来跟踪到目前为止有多少玩家注册了游戏。该类变量可用于在创建新的Player对象时计算当前海龟的起始位置。2构造函数应有两个输入参数,名称和颜色。至少应使用以下方法在类中实现:将乌龟向前移动随机数量的像素的方法返回名称的getter方法返回颜色的getter方法在开始位置旁边的文本中写入名称的方法2.2类GameYourGame类应该至少具有以下私有属性:一个包含玩家的列表一个表示游戏结果的列表(也可以是一个包含在比赛结果后排序的玩家的列表)至少应在类中实现以下方法:绘制赛道的方法在屏幕上(一条起跑线和一条球门线)一个注册玩家的方法(将名称和颜色作为交互输入,创建玩家对象并添加到玩家列表)一个检查比赛是否结束的方法(所有海龟都停止了)比赛本身,即重复移动玩家,直到比赛结束一种呈现比赛结果列表的方法2.3赛道定义赛道边界的常量可能是全局定义并为所有类和方法/函数所知。2.4运行比赛的脚本编写一个脚本,创建一个游戏对象并调用其注册方法、比赛方法和结果呈现方法。32.5海龟图形海龟包中的以下方法可能很有用。python.org上有所有乌龟方法的完整描述:https://docs.python.org/3.3/l...forward(distance)将乌龟向前移动指定的距离,乌龟前进的方向。参数:distance–一个数字(整数或浮点数)left(angle)Turnturtleleftbyangledegrees.right(angle)Turnturtlerightbyangledegrees.setpos(x,y=None)将乌龟移动到一个绝对位置。参数:x-一个数字或一对数字/向量,y-一个数字或Nonexcor()返回乌龟的x坐标。pendown()将笔往下拉——移动时画画。penup()将笔向上拉——移动时不画画。color(name)除其他外,它将海龟颜色设置为一个规格由name.Parameters:name确定——一个字符串,它是一个有效的颜色名称。可以在此处找到有效的颜色名称:http://www.science.smith.edu/...TKinter4write(arg)的图表写入文本-arg的字符串表示形式-在当前海龟位置根据对齐('left','center'or'right')hideturtle()Maketheturtleinvisible.showturtle()Maketheturtlevisible.shape(name=None)Setturtleshapetoshapewithgivenname.Parameters:name–一个字符串,它是一个有效的形状名称.有效的形状名称是:'turtle','arrow','circle','square','triangle','classic'WX:codehelp
