2016-04-01 25 views
0

私はこのプログラムを作成してフラグを作成しましたが、最近実行しようとしましたが、もともとコード化していたにもかかわらず何らかの理由で動作しませんでした。縞模様は上手く描けるが、青い正方形と星になるとカメのポインタはどこにも動かない。私はPython 2.7.11を使用していますが、これは1年前に書かれたので、それがうまくいかない理由です。私は使用していたPythonのバージョンを覚えていません。Python Turtleが正しく描画されない

import turtle 

def draw_stripes(length, height, color): 
    turtle.speed('fast') 
    turtle.color(color) 
    turtle.begin_fill() 
    turtle.pendown() 
    turtle.forward(length) 
    turtle.left(90) 
    turtle.forward(height) 
    turtle.left(90) 
    turtle.forward(length) 
    turtle.left(90) 
    turtle.forward(height) 

    for i in range(0,6): 
     turtle.penup() 
     turtle.left(180) 
     turtle.forward(height*2) 
     turtle.pendown() 
     turtle.right(90) 
     turtle.forward(length) 
     turtle.left(90) 
     turtle.forward(height) 
     turtle.left(90) 
     turtle.forward(length) 
     turtle.left(90) 
     turtle.forward(height) 

    turtle.end_fill() 

def draw_canton(length, height, color): 
    turtle.speed('fast') 
    turtle.left(180) 
    turtle.forward(height/13) 
    turtle.color(color) 
    turtle.begin_fill() 
    turtle.right(90) 
    turtle.pendown() 
    turtle.forward(length*(2/5)) 
    turtle.right(90) 
    turtle.forward(height*(7/13)) 
    turtle.right(90) 
    turtle.forward(length*(2/5)) 
    turtle.right(90) 
    turtle.forward(height*(7/13)) 
    turtle.end_fill() 

def draw_star_row_six(length, height, size): 
    turtle.speed('fast') 
    turtle.right(90) 
    turtle.forward(length) 
    turtle.right(90) 
    turtle.forward(length) 
    turtle.right(180) 
    turtle.forward(size) 
    turtle.right(163) 

    for i in range (6): 
     draw_star(size, 'white') 
     turtle.left(73) 
     turtle.forward(length*2) 
     turtle.right(73) 

    turtle.left(253) 
    turtle.forward((length*2)*6) 
    turtle.left(90) 
    turtle.forward(height*2) 
    turtle.right(180) 
    turtle.right(163) 

    for i in range (6): 
     draw_star(size, 'white') 
     turtle.left(73) 
     turtle.forward(length*2) 
     turtle.right(73) 

    turtle.left(253) 
    turtle.forward((length*2)*6) 
    turtle.left(90) 
    turtle.forward(height*2) 
    turtle.right(180) 
    turtle.right(163) 

    for i in range (6): 
     draw_star(size, 'white') 
     turtle.left(73) 
     turtle.forward(length*2) 
     turtle.right(73) 

    turtle.left(253) 
    turtle.forward((length*2)*6) 
    turtle.left(90) 
    turtle.forward(height*2) 
    turtle.right(180) 
    turtle.right(163) 

    for i in range (6): 
     draw_star(size, 'white') 
     turtle.left(73) 
     turtle.forward(length*2) 
     turtle.right(73) 

    turtle.left(253) 
    turtle.forward((length*2)*6) 
    turtle.left(90) 
    turtle.forward(height*2) 
    turtle.right(180) 
    turtle.right(163) 

    for i in range (6): 
     draw_star(size, 'white') 
     turtle.left(73) 
     turtle.forward(length*2) 
     turtle.right(73) 

    turtle.left(253) 
    turtle.forward((length * 2)*6) 
    turtle.right(90) 
    turtle.forward(height*7) 

def draw_star_row_five(length, height, size): 
    turtle.right(90) 
    turtle.forward(length) 
    turtle.right(73) 

    for i in range (5): 
     draw_star(size, 'white') 
     turtle.left(73) 
     turtle.forward(length*2) 
     turtle.right(73) 

    turtle.left(253) 
    turtle.forward((length*2)*5) 
    turtle.left(90) 
    turtle.forward(height*2) 
    turtle.right(180) 
    turtle.right(163) 

    for i in range (5): 
     draw_star(size, 'white') 
     turtle.left(73) 
     turtle.forward(length*2) 
     turtle.right(73) 

    turtle.left(253) 
    turtle.forward((length*2)*5) 
    turtle.left(90) 
    turtle.forward(height*2) 
    turtle.right(180) 
    turtle.right(163) 

    for i in range (5): 
     draw_star(size, 'white') 
     turtle.left(73) 
     turtle.forward(length*2) 
     turtle.right(73) 

    turtle.left(253) 
    turtle.forward((length*2)*5) 
    turtle.left(90) 
    turtle.forward(height*2) 
    turtle.right(180) 
    turtle.right(163) 

    for i in range (5): 
     draw_star(size, 'white') 
     turtle.left(73) 
     turtle.forward(length*2) 
     turtle.right(73) 

    turtle.home() 

def draw_star(size, color): 
    turtle.color(color) 
    turtle.begin_fill() 
    turtle.pendown() 

    for i in range(5): 
     turtle.forward(size) 
     turtle.right(144) 

    turtle.end_fill() 
    turtle.penup() 

def get_color(): 
    return r,g,b 



def draw_flag(height): 
    turtle.speed('fast') 
    turtle.setx(-150) 
    turtle.color('black') 
    turtle.pendown() 
    turtle.forward(height*1.9) 
    turtle.left(90) 
    turtle.forward(height) 
    turtle.left(90) 
    turtle.forward(height*1.9) 
    turtle.left(90) 
    turtle.forward(height) 
    turtle.penup() 
    turtle.left(90) 
    draw_stripes((height*1.9), height/13, 'red') 
    draw_canton((height*1.9), height, 'blue') 
    draw_star_row_six(((height*1.9)*(2/5))/12,(height*(7/13))/10, ((height/13)*(4/5))/2) 
    draw_star_row_five(((height*1.9)*(2/5))/12,(height*(7/13))/10, ((height/13)*(4/5))/2) 

height = float(input('Enter The Height of Your Flag: ')) 
draw_flag(height) 

答えて

0

ここにあなたの問題です:

私はこのプログラムは、そのため除算演算子は、Python 2とPython 3の間に働く別の方法でのpython 2.7.11

をします使用していますPython3で動作する場合にのみ正しく動作します。証明: enter image description here

Python2では、除算は切り捨て:

3/2 => 1.5ちょうどのpython3でコードを実行し、それが動作するはずです:のpython3で3/2 => 1
は、部門は常にfloatを生成します。

+0

...ファイルの先頭に '__future__ import division'を追加してください。 – Gerrat

+0

@Gerrat:これはうまくいきますが、Python2で動作する理由がない限り、私はそれをしません。 – Functino

+0

プログラムに1行追加するのを避けるために、全く新しいPythonバージョンをインストールしません。 Python2.7を使っていると彼は言いました。 – Gerrat

関連する問題