Planet sim and Etch added, working properly AFAIK
This commit is contained in:
commit
88f86dc04f
19 changed files with 638 additions and 0 deletions
101
Turtle/Etch/etch_a_sketch_turtle.py
Normal file
101
Turtle/Etch/etch_a_sketch_turtle.py
Normal file
|
@ -0,0 +1,101 @@
|
|||
from turtle import Turtle, mainloop
|
||||
|
||||
|
||||
class Etch:
|
||||
def __init__(self):
|
||||
self.__t = Turtle()
|
||||
self.__screen = self.__t.screen
|
||||
self.__color_list = ['#35b070', 'black', 'white', 'red', 'orange', 'yellow', 'green', 'blue', 'purple', 'pink']
|
||||
self.__color_index = 0
|
||||
self.__t.color(self.__color_list[self.__color_index])
|
||||
self.__t.pensize(1)
|
||||
self.__t.speed(0)
|
||||
self.__distance = 10
|
||||
self.__turn = 10
|
||||
|
||||
# Add callbacks
|
||||
self.__screen.onkey(self.__fwd, 'w')
|
||||
self.__screen.onkey(self.__back, 's')
|
||||
self.__screen.onkey(self.__left, 'a')
|
||||
self.__screen.onkey(self.__right, 'd')
|
||||
self.__screen.onkey(self.__increase_distance, 'e')
|
||||
self.__screen.onkey(self.__decrease_distance, 'q')
|
||||
self.__screen.onkey(self.__increase_turn, 'r')
|
||||
self.__screen.onkey(self.__decrease_turn, 'f')
|
||||
self.__screen.onkey(self.__toggle_pen, 'z')
|
||||
self.__screen.onkey(self.__color, 'c')
|
||||
self.__screen.onkey(self.__clear, 'x')
|
||||
self.__screen.onkey(self.__quit, 'Escape')
|
||||
self.__screen.listen()
|
||||
|
||||
|
||||
def main(self):
|
||||
mainloop()
|
||||
|
||||
# Callback methods
|
||||
def __increase_distance(self):
|
||||
if self.__distance == 100:
|
||||
pass
|
||||
elif self.__distance < 5:
|
||||
self.__distance += 1
|
||||
else:
|
||||
self.__distance += 5
|
||||
|
||||
def __decrease_distance(self):
|
||||
if self.__distance == 1:
|
||||
pass
|
||||
elif self.__distance <= 5:
|
||||
self.__distance -= 1
|
||||
else:
|
||||
self.__distance -= 5
|
||||
|
||||
def __increase_turn(self):
|
||||
if self.__turn == 180:
|
||||
pass
|
||||
elif self.__turn < 5:
|
||||
self.__turn += 1
|
||||
else:
|
||||
self.__turn += 5
|
||||
|
||||
def __decrease_turn(self):
|
||||
if self.__turn == 1:
|
||||
pass
|
||||
elif self.__turn <= 5:
|
||||
self.__turn -= 1
|
||||
else:
|
||||
self.__turn -= 5
|
||||
|
||||
def __fwd(self):
|
||||
self.__t.forward(self.__distance)
|
||||
|
||||
def __back(self):
|
||||
self.__t.backward(self.__distance)
|
||||
|
||||
def __left(self):
|
||||
self.__t.left(self.__turn)
|
||||
|
||||
def __right(self):
|
||||
self.__t.right(self.__turn)
|
||||
|
||||
def __toggle_pen(self):
|
||||
if self.__t.isdown():
|
||||
self.__t.penup()
|
||||
else:
|
||||
self.__t.pendown()
|
||||
|
||||
def __clear(self):
|
||||
self.__t.clear()
|
||||
|
||||
def __color(self):
|
||||
if self.__color_index == 9:
|
||||
self.__color_index = -1
|
||||
self.__color_index += 1
|
||||
self.__t.color(self.__color_list[self.__color_index])
|
||||
|
||||
def __quit(self):
|
||||
exit(0)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
draw = Etch()
|
||||
draw.main()
|
Loading…
Add table
Add a link
Reference in a new issue