改变python乌龟的脸和情绪

时间:2019-03-24 21:49:10

标签: python python-3.x

应该通过以下菜单提示用户更改面孔:

Change My Face
1) Make me frown
2) Make me angry
3) Make my eyes blue
0) Quit

如果用户选择1,则将笑脸重新绘制,皱眉变成微笑,菜单将更改为:

Change My Face
1) Make me smile
2) Make me angry
3) Make my eyes blue
0) Quit

如果用户选择2,则将笑脸重新绘制并用皱眉填充为红色,菜单将更改为:

Change My Face
1) Make me smile
2) Make me happy
3) Make my eyes blue
0) Quit

我们获得了可以在该项目上使用的入门代码(在要添加一行代码或部分代码行的所有地方使用 )。我们还需要并且可以根据需要向此现有代码添加方法和数据。我很难理解类和对象,事实证明这对我来说比我原本想的要困难得多。这是我们得到的入门代码(为方便起见,我们在与主函数相同的文件中定义类):

import turtle

class Face:

    def __init__(self):
        self.__smile = True
        self.__happy = True
        self.__dark_eyes = True

    def draw_face(self):
        turtle.clear()
        self.__draw_head()
        self.__draw_eyes()
        self.__draw_mouth()

    def is_smile(self):
        ___<Fill-In>___

    def is_happy(self):
        ___<Fill-In>___

    def is_dark_eyes(self):
        ___<Fill-In>___

    def change_mouth(self):
        ___<Fill-In>___
        self.draw_face()

    def change_emotion(self):
        ___<Fill-In>___
        self.draw_face()

    def change_eyes(self):
        ___<Fill-In>___
        self.draw_face()


def main():

    face = ___<Fill-In>___
    face.___<Fill-In>___

    done = False

    while not done:
        print("Change My Face")
        mouth = "frown" ____<Fill-In>___ "smile"
        emotion = "angry" ____<Fill-In>___ "happy"
        eyes = "blue" ____<Fill-In>___ "black"
        print("1) Make me", mouth)
        print("2) Make me", emotion)
        print("3) Make my eyes", eyes)
        print("0) Quit")

        menu = eval(input("Enter a selection: "))

        if menu == 1:
            ___<Fill-In>___
        elif menu == 2:
            ___<Fill-In>___
        elif menu == 3:
            ___<Fill-In>___
        else:
            break

    print("Thanks for Playing")

    turtle.hideturtle()
    turtle.done()


main()

我想应该在填充中使用其他方式,但是除此之外,我不确定其他任何填充方式。

while not done:
    print("Change My Face")
    mouth = "frown" ____<Fill-In>___ "smile"
    emotion = "angry" ____<Fill-In>___ "happy"
    eyes = "blue" ____<Fill-In>___ "black"
    print("1) Make me", mouth)
    print("2) Make me", emotion)
    print("3) Make my eyes", eyes)
    print("0) Quit")

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

从上到下:

def is_smile(self):
        ___<Fill-In>___

在python中,以'is'开头的方法应在经过一些评估后返回布尔值。 我猜想您的讲师希望您如果face .smile属性为true,则返回true;如果false,则返回false。

def change_mouth(self):
        ___<Fill-In>___
        self.draw_face()

此功能似乎希望您改变乌龟嘴。由于它不接受要更改的值,因此可以放心地假设他希望您将微笑的值从其当前值更改为逻辑替代值。由于微笑是布尔值,因此请将其从true更改为false或将false更改为true。

def main():

    face = ___<Fill-In>___
    face.___<Fill-In>___
好的,现在已经在主应用程序中了,要想玩一张脸,您需要实例化Face类的新对象。 然后,由于Face类的init方法没有做任何事情来在屏幕上绘制面孔,因此他似乎希望您调用绘制面孔的方法。

while not done:
    print("Change My Face")
    mouth = "frown" ____<Fill-In>___ "smile"
    emotion = "angry" ____<Fill-In>___ "happy"
    eyes = "blue" ____<Fill-In>___ "black"
    print("1) Make me", mouth)
    print("2) Make me", emotion)
    print("3) Make my eyes", eyes)
    print("0) Quit")

如果不是这样的话,应该很好用。尝试调用您在上面所做的is_xxx函数。

if menu == 1:
            ___<Fill-In>___
        elif menu == 2:
            ___<Fill-In>___
        elif menu == 3:
            ___<Fill-In>___
        else:
            break

您需要调用上面所做的更改方法。