2017-11-13 15 views
0

色で図形を塗りつぶしていますが、実行すると表示されません。 私はこのためにクラスを使用することになっていませんか?私のpython-3と熟練していないですし、まだあなたのプログラムでクラスpython turtleで色を塗りつぶし

import turtle 

t=turtle.Turtle() 
t.speed(0) 


class Star(turtle.Turtle): 
    def __init__(self, x=0, y=0): 
     turtle.Turtle.__init__(self) 
     self.shape("") 
     self.color("") 
#Creates the star shape  
    def shape(self, x=0, y=0): 
     self.fillcolor("red") 
     for i in range(9): 
     self.begin_fill() 
     self.left(90) 
     self.forward(90) 
     self.right(130) 
     self.forward(90) 
     self.end_fill() 
#I was hoping this would fill the inside   
    def octagon(self, x=0.0, y=0.0): 
     turtle.Turtle.__init__(self) 

    def octa(self): 
     self.fillcolor("green") 
     self.begin_fill() 
     self.left(25) 
     for x in range(9): 
      self.forward(77) 
      self.right(40) 

#doesn't run with out this 
a=Star() 

答えて

0

の問題を使用する方法を学ぶ:あなたが作成し、実際に使用していない亀の速度を設定します。 turtle.pyは既にshape()メソッドを持っていますので、他のものを意味するようにオーバーライドしないでください。新しい名前を指定してください。 begin_fill()end_fill()をループ内に入れずにループの周りに囲む必要はありません。無効な引数を使用して独自のshape()メソッドを呼び出します。

あなたのコードの以下のリワークは、上記の問題に対処:「NotImplementedError:スーパーはまだ実装されていない、報告してください、私はエラーを取得しておくプログラムを実行しようとすると

from turtle import Turtle, Screen 

class Star(Turtle): 
    def __init__(self, x=0, y=0): 
     super().__init__(visible=False) 
     self.speed('fastest') 
     self.draw_star(x, y) 

    def draw_star(self, x=0, y=0): 
     """ Creates the star shape """ 

     self.penup() 
     self.setposition(x, y) 
     self.pendown() 

     self.fillcolor("red") 

     self.begin_fill() 

     for _ in range(9): 
      self.left(90) 
      self.forward(90) 
      self.right(130) 
      self.forward(90) 

     self.end_fill() 

t = Star() 

screen = Screen() 
screen.exitonclick() 

enter image description here

+0

を5行目のgithubの問題としてのユースケースどのようにしてsuper() – geek2001

+0

@ geek2001を実装するのですか? 'super().__ init __(visible = False)'の行に 'Turtle .__ init __(self、visible = False) 'を代入してみてください。あなたの質問にPython-3.xというタグが付いているので、私は新しい構文を使用しました。 – cdlane

+0

これを新しいタブで実行して他のコードに追加するにはどうすればよいですか? – geek2001

関連する問題