【发布时间】:2022-01-14 11:20:10
【问题描述】:
如果我要画马里奥的像素艺术,例如,有很多正方形(请参阅下面的像素艺术),那么最有效的方法是什么?我试过了,但是代码很长,甚至尽我所能用函数把它删减了。
这是我的代码,它可以工作,但效率不高:
import turtle
from turtle import *
speed(0)
def redSquare():
fillcolor("red")
begin_fill()
for i in range(4):
forward(30)
right(90)
end_fill()
def blueSquare():
fillcolor("royalblue")
begin_fill()
for i in range(4):
forward(30)
right(90)
end_fill()
def yellowSquare():
fillcolor("yellow")
begin_fill()
for i in range(4):
forward(30)
right(90)
end_fill()
def skinSquare():
fillcolor("sandybrown")
begin_fill()
for i in range(4):
forward(30)
right(90)
end_fill()
def brownSquare():
fillcolor("saddlebrown")
begin_fill()
for i in range(4):
forward(30)
right(90)
end_fill()
def blackSquare():
fillcolor("black")
begin_fill()
for i in range(4):
forward(30)
right(90)
end_fill()
penup()
goto(100, -150)
pendown()
brownSquare()
penup()
goto(70, -150)
pendown()
brownSquare()
penup()
goto(40, -150)
pendown()
brownSquare()
penup()
goto(10, -150)
pendown()
brownSquare()
penup()
goto(10, -120)
pendown()
brownSquare()
penup()
goto(40, -120)
pendown()
brownSquare()
penup()
goto(70, -120)
pendown()
brownSquare()
penup()
goto(40, -90)
pendown()
blueSquare()
penup()
goto(10, -90)
pendown()
blueSquare()
penup()
goto(-20, -90)
pendown()
blueSquare()
penup()
goto(-20, -60)
pendown()
blueSquare()
penup()
goto(-50, -60)
pendown()
blueSquare()
penup()
goto(10, -60)
pendown()
blueSquare()
penup()
goto(40, -60)
pendown()
blueSquare()
penup()
goto(70, -60)
pendown()
skinSquare()
penup()
goto(100, -60)
pendown()
skinSquare()
penup()
goto(100, -30)
pendown()
skinSquare()
penup()
goto(70, -30)
pendown()
skinSquare()
penup()
goto(40, -30)
pendown()
skinSquare()
penup()
goto(10, -30)
pendown()
blueSquare()
penup()
goto(-20, -30)
pendown()
blueSquare()
penup()
goto(-50, -30)
pendown()
blueSquare()
penup()
goto(-50, 0)
pendown()
blueSquare()
penup()
goto(-20, 0)
pendown()
yellowSquare()
penup()
goto(10, 0)
pendown()
blueSquare()
penup()
goto(40, 0)
pendown()
redSquare()
penup()
goto(70, 0)
pendown()
skinSquare()
penup()
goto(100, 0)
pendown()
skinSquare()
penup()
goto(100, 30)
pendown()
redSquare()
penup()
goto(70, 30)
pendown()
redSquare()
penup()
goto(40, 30)
pendown()
redSquare()
penup()
goto(10, 30)
pendown()
redSquare()
penup()
goto(-20, 30)
pendown()
blueSquare()
penup()
goto(-50, 30)
pendown()
blueSquare()
penup()
goto(-50, 60)
pendown()
redSquare()
penup()
goto(-20, 60)
pendown()
blueSquare()
penup()
goto(10, 60)
pendown()
redSquare()
penup()
goto(40, 60)
pendown()
redSquare()
penup()
goto(70, 60)
pendown()
redSquare()
penup()
goto(10, 90)
pendown()
redSquare()
penup()
goto(-20, 90)
pendown()
redSquare()
penup()
goto(-50, 90)
pendown()
redSquare()
penup()
goto(-50, 120)
pendown()
skinSquare()
penup()
goto(-50, 120)
pendown()
skinSquare()
penup()
goto(-20, 120)
pendown()
skinSquare()
penup()
goto(10, 120)
pendown()
skinSquare()
penup()
goto(40, 120)
pendown()
skinSquare()
penup()
goto(70, 120)
pendown()
skinSquare()
penup()
goto(100, 150)
pendown()
blackSquare()
penup()
goto(70, 150)
pendown()
blackSquare()
penup()
goto(40, 150)
pendown()
blackSquare()
penup()
goto(10, 150)
pendown()
blackSquare()
penup()
goto(-20, 150)
pendown()
skinSquare()
penup()
goto(-50, 150)
pendown()
skinSquare()
penup()
goto(-50, 180)
pendown()
skinSquare()
penup()
goto(-20, 180)
pendown()
skinSquare()
penup()
goto(10, 180)
pendown()
skinSquare()
penup()
goto(40, 180)
pendown()
blackSquare()
penup()
goto(70, 180)
pendown()
skinSquare()
penup()
goto(100, 180)
pendown()
skinSquare()
penup()
goto(130, 180)
pendown()
skinSquare()
penup()
goto(100, 210)
pendown()
skinSquare()
penup()
goto(70, 210)
pendown()
skinSquare()
penup()
goto(40, 210)
pendown()
skinSquare()
penup()
goto(10, 210)
pendown()
blackSquare()
penup()
goto(-20, 210)
pendown()
skinSquare()
penup()
goto(-50, 210)
pendown()
skinSquare()
penup()
goto(-50, 240)
pendown()
skinSquare()
penup()
goto(-20, 240)
pendown()
skinSquare()
penup()
goto(10, 240)
pendown()
blackSquare()
penup()
goto(40, 240)
pendown()
skinSquare()
penup()
goto(100, 270)
pendown()
redSquare()
penup()
goto(70, 270)
pendown()
redSquare()
penup()
goto(40, 270)
pendown()
redSquare()
penup()
goto(10, 270)
pendown()
redSquare()
penup()
goto(-20, 270)
pendown()
redSquare()
penup()
goto(-50, 270)
pendown()
redSquare()
penup()
goto(-50, 300)
pendown()
redSquare()
penup()
goto(-20, 300)
pendown()
redSquare()
penup()
goto(10, 300)
pendown()
redSquare()
penup()
goto(-80, 300)
pendown()
redSquare()
penup()
goto(-110, 300)
pendown()
redSquare()
penup()
goto(-140, 300)
pendown()
redSquare()
penup()
goto(-80, 270)
pendown()
redSquare()
penup()
goto(-110, 270)
pendown()
redSquare()
penup()
goto(-140, 270)
pendown()
redSquare()
penup()
goto(-170, 270)
pendown()
redSquare()
penup()
goto(-170, 240)
pendown()
brownSquare()
penup()
goto(-140, 240)
pendown()
brownSquare()
penup()
goto(-110, 240)
pendown()
brownSquare()
penup()
goto(-80, 240)
pendown()
skinSquare()
penup()
goto(-80, 210)
pendown()
skinSquare()
penup()
goto(-110, 210)
pendown()
skinSquare()
penup()
goto(-140, 210)
pendown()
brownSquare()
penup()
goto(-170, 210)
pendown()
skinSquare()
penup()
goto(-200, 210)
pendown()
brownSquare()
penup()
goto(-200, 180)
pendown()
brownSquare()
penup()
goto(-170, 180)
pendown()
skinSquare()
penup()
goto(-140, 180)
pendown()
brownSquare()
penup()
goto(-110, 180)
pendown()
brownSquare()
penup()
goto(-80, 180)
pendown()
skinSquare()
penup()
goto(-80, 180)
pendown()
skinSquare()
penup()
goto(-80, 150)
pendown()
skinSquare()
penup()
goto(-110, 150)
pendown()
skinSquare()
penup()
goto(-140, 150)
pendown()
skinSquare()
penup()
goto(-170, 150)
pendown()
brownSquare()
penup()
goto(-200, 150)
pendown()
brownSquare()
penup()
goto(-140, 120)
pendown()
skinSquare()
penup()
goto(-110, 120)
pendown()
skinSquare()
penup()
goto(-80, 120)
pendown()
skinSquare()
penup()
goto(-80, 90)
pendown()
redSquare()
penup()
goto(-110, 90)
pendown()
blueSquare()
penup()
goto(-140, 90)
pendown()
redSquare()
penup()
goto(-170, 90)
pendown()
redSquare()
penup()
goto(-200, 60)
pendown()
redSquare()
penup()
goto(-170, 60)
pendown()
redSquare()
penup()
goto(-140, 60)
pendown()
redSquare()
penup()
goto(-110, 60)
pendown()
blueSquare()
penup()
goto(-80, 60)
pendown()
redSquare()
penup()
goto(-80, 30)
pendown()
blueSquare()
penup()
goto(-110, 30)
pendown()
blueSquare()
penup()
goto(-140, 30)
pendown()
redSquare()
penup()
goto(-170, 30)
pendown()
redSquare()
penup()
goto(-200, 30)
pendown()
redSquare()
penup()
goto(-230, 30)
pendown()
redSquare()
penup()
goto(-230, 0)
pendown()
skinSquare()
penup()
goto(-200, 0)
pendown()
skinSquare()
penup()
goto(-170, 0)
pendown()
redSquare()
penup()
goto(-140, 0)
pendown()
blueSquare()
penup()
goto(-110, 0)
pendown()
yellowSquare()
penup()
goto(-80, 0)
pendown()
blueSquare()
penup()
goto(-80, -30)
pendown()
blueSquare()
penup()
goto(-110, -30)
pendown()
blueSquare()
penup()
goto(-140, -30)
pendown()
blueSquare()
penup()
goto(-170, -30)
pendown()
skinSquare()
penup()
goto(-200, -30)
pendown()
skinSquare()
penup()
goto(-230, -30)
pendown()
skinSquare()
penup()
goto(-230, -60)
pendown()
skinSquare()
penup()
goto(-200, -60)
pendown()
skinSquare()
penup()
goto(-170, -60)
pendown()
blueSquare()
penup()
goto(-140, -60)
pendown()
blueSquare()
penup()
goto(-110, -60)
pendown()
blueSquare()
penup()
goto(-80, -60)
pendown()
blueSquare()
penup()
goto(-110, -90)
pendown()
blueSquare()
penup()
goto(-140, -90)
pendown()
blueSquare()
penup()
goto(-170, -90)
pendown()
blueSquare()
penup()
goto(-140, -120)
pendown()
brownSquare()
penup()
goto(-170, -120)
pendown()
brownSquare()
penup()
goto(-200, -120)
pendown()
brownSquare()
penup()
goto(-230, -150)
pendown()
brownSquare()
penup()
goto(-200, -150)
pendown()
brownSquare()
penup()
goto(-170, -150)
pendown()
brownSquare()
penup()
goto(-140, -150)
pendown()
brownSquare()
exitonclick()
【问题讨论】:
标签: python pixel turtle-graphics python-turtle coding-efficiency