Дело было вечером, делать было нечего…
Код для сохранения начальных пределов:
import pickle
coord_max=(800,600)
max_len_figure={"circle":40,"square":42,"triangle":38}
data=[coord_max,max_len_figure]
filename="C:/Users/User/Desktop/file_figures_max.ff"
filesaves=open(filename, "wb")
pickle.dump(data, filesaves)
filesaves.close()
Код программы:
import pickle
import turtle
import random
import math
def turtle_circle(diameter,x,y):
turtle.up()
turtle.goto(x+diameter/2,y+diameter)
turtle.down()
turtle.circle(-diameter/2)
def turtle_square(length,x,y):
turtle.up()
turtle.goto(x,y)
turtle.down()
for counter in range(4):
turtle.forward(length)
turtle.left(90)
def turtle_triangle(length,x,y):
turtle.up()
turtle.goto(x,y)
turtle.down()
for counter in range(3):
turtle.forward(length)
turtle.left(120)
filenameset="C:/Users/User/Desktop/file_figures_max.ff"
filenamesave="C:/Users/User/Desktop/figures.txt"
fileopen=open(filenameset, "rb")
filesaves=open(filenamesave, "w")
coord_max,max_len_figure=pickle.load(fileopen)
fileopen.close()
window=turtle.Screen()
window.setup (width=coord_max[0]+40, height=coord_max[1]+40)
turtle.up()
turtle.goto(-coord_max[0]/2,-coord_max[1]/2)
turtle.down()
turtle.goto(coord_max[0]/2,-coord_max[1]/2)
turtle.goto(coord_max[0]/2,coord_max[1]/2)
turtle.goto(-coord_max[0]/2,coord_max[1]/2)
turtle.goto(-coord_max[0]/2,-coord_max[1]/2)
figure=("circle","square","triangle")
max=[0,0,0]
while True:
try:
number=int(input("Введите количество фигур: "))
if number>0:
break
else:
print ("Неправильный ввод, введите цифру не меньше 1")
except ValueError:
print ("Это не число, введите, пожалуйста, цифру не меньше 1.")
200
for index in range(number):
temp_fig=random.choice(figure)
length=random.randint(1,max_len_figure.get(temp_fig))
x_coor=random.randint(-coord_max[0]/2,coord_max[0]/2-length)
if temp_fig=="triangle":
y_coor=random.randint(-coord_max[1]/2,coord_max[1]/2-math.ceil(math.sqrt(3)/2*length))
else:
y_coor=random.randint(-coord_max[1]/2,coord_max[1]/2-length)
if temp_fig=="circle":
turtle_circle(length,x_coor,y_coor)
if length/2>max[0]:
max[0]=length/2
filesaves.write(str(index+1)+". Построен круг радиусом: "+str(length/2)+", с координатами центра: "+str(x_coor+length/2)+", "+str(y_coor+length/2)+"\n")
elif temp_fig=="square":
turtle_square(length,x_coor,y_coor)
if length>max[1]:
max[1]=length
filesaves.write(str(index+1)+". Построен квадрат со сторонами: "+str(length)+", с координатами левого нижнего угла: "+str(x_coor)+", "+str(y_coor)+"\n")
elif temp_fig=="triangle":
turtle_triangle(length,x_coor,y_coor)
if length>max[2]:
max[2]=length
filesaves.write(str(index+1)+". Построен равнобедренный треугольник со сторонами: "+str(length)+", с координатами левого нижнего угла: "+str(x_coor)+", "+str(y_coor)+"\n")
else:
print("Нет функции постройки фигуры: ",temp_fig)
filesaves.write(str(index+1)+". Не построена фигура: "+temp_fig+"\n")
filesaves.write("-"*40+"\n")
filesaves.write("Максимальный радиус круга: "+str(max[0])+"\nМаксимальная сторона квадрата: "+str(max[1])+"\nМаксимальная сторона треугольника: "+str(max[2]))
filesaves.close()