def run(): global bloom, width max_width = min(t.window_width(), t.window_height()) if width <= 0 and not bloom: bloom = True if width >= max_width and bloom: bloom = False width += (1 if bloom else -1) t.clear() figures.square(-width // 2, -width // 2, width, "red", "red") t.update() t.ontimer(run, 1000 // 24) # 24 fps
import turtle as t import random import figures t.hideturtle(); t.speed("fastest"); t.colormode(1.0) for _ in range(100): w_width = t.window_width() w_height = t.window_height() x = random.randint(-w_width//2, w_width//2) y = random.randint(-w_height//2, w_height//2) width = min(random.randint(0, w_width//2 - x), random.randint(0, w_height//2 - y)) figures.square(x, y, width, (random.random(), random.random(), random.random()))
def doc(): fieldnames=('name', 'size', 'color') maxfield = max(len(f) for f in fieldnames) db = {} while True: var=input('Choose operation: \n1.See list of allowed figures \n2.Add new figure or change the old one' ' \n3.Delete figure \n4.Build figures \n5.Save document \n6.Open saved document ') if not var: break #Просмотр доступных фигур if var=='1': print("\nAllowed figures: \n1.Circle \n2.Square \n3.Triangle\n") #Отридактировать существующую фигуру, усли фигуры с таким именем нет, то создается фигура по умолчанию #Классы для создание экземпляров фигур хранятся в модуле redactor if var=='2': while True: key = input('\nFigure? => ') if not key: break #Создание круга if key == 'Circle': name = input('\nName? => ') if name in db: record = db[name] else: record = Circle(name='?', size=50, color='black') for field in fieldnames: currval = getattr(record, field) newtext = input('\t[%s]=%s\n\t\tnew?=>' %(field, currval)) if newtext: setattr(record, field, newtext) db[name] =record #Создание квадрата if key == 'Square': name = input('\nName? => ') if name in db: record = db[name] else: record = Square(name='?', size=50, color='black') for field in fieldnames: currval = getattr(record, field) newtext = input('\t[%s]=%s\n\t\tnew?=>' %(field, currval)) if newtext: setattr(record, field, newtext) #record.field=str(newtext) db[name] =record #Создание круга if key == 'Triangle': name = input('\nName? => ') if name in db: record = db[name] else: record = Triangle(name='?', size=50, color='black') for field in fieldnames: currval = getattr(record, field) newtext = input('\t[%s]=%s\n\t\tnew?=>' %(field, currval)) if newtext: setattr(record, field, newtext) #record.field=str(newtext) db[name] =record #rec[key]=record #rec[key]=record #dbn.close() #2db.close() #return rec #Удалить фигуру из документа if var=='3': while True: key = input('\nName? => ') if not key: break if key in db: del db[key] #Прорисовка фигур на документе, Функции для рисования фигур хранятся в модуле figures if var=='4': print(db) fig=turtle.Turtle() scr=turtle.Screen() for key in db: #print(db[key].__class__.__name__) if db[key].__class__.__name__=='Circle': figures.circle(fig, db[key].size, db[key].color) elif db[key].__class__.__name__=='Square': figures.square(fig, db[key].size, db[key].color) elif db[key].__class__.__name__=='Triangle': figures.triangle(fig, db[key].size, db[key].color) scr.exitonclick() #Сохранение документа в базу figures-shelve. Если такой документ уже есть в базе, предлагается его заменить. if var=='5': dbn = shelve.open('figures-shelve') name = input('\nName? => ') if name in dbn: answer=input('File with such name has already been excisting, save anyway(Y/N)?') if answer=='Y': dbn[name]=db else: pass else: dbn[name]=db dbn.close() #Открытие сохраненного документа if var=='6': dbn = shelve.open('figures-shelve') name = input('\nName? => ') if name in dbn: for key in dbn[name]: db[key]=dbn[name][key] else: print('\nSuch document does not excists\n')
def main(): print('Triangle: ', figures.triangle_field(2, 3)) print('Circle: ', figures.circle(3)) print('Square: ', figures.square(5)) print('Rectangle: ', figures.rectangle(4, 3))
import turtle as t import figures t.hideturtle() t.tracer(False) width = 30 for i in range(8): for j in range(8): color = ("blue" if (i + j) % 2 == 0 else "green") figures.square(i * width, j * width, width, color, color) t.update()
import figures import test print('Triangle: ', figures.triangle_field(2, 3)) print('Circle: ', figures.circle(3)) print('Square: ', figures.square(5)) print('Rectangle: ', figures.rectangle(4, 3)) print(__name__)