# import turtle # import random # import sys #system # import time # import threading # # # Для генерации мелодии на Windows # try: # import winsound # SOUND_AVAILABLE = True # except ImportError: # SOUND_AVAILABLE = False # # # Для получения погоды # import requests # # # Сдвиг вниз для всех рисунков, чтобы меню оставалось видно # OFFSET_Y = -100 # # # def draw_random_spirals(): # """ # Рисует несколько спиралей разных цветов, расположенных ниже меню. # """ # turtle.penup() # turtle.home() # turtle.sety(OFFSET_Y) # turtle.pendown() # # несколько спиралей # for s in range(3): # length = random.randint(5, 15) # for i in range(50): # turtle.color(random.random(), random.random(), random.random()) # turtle.forward(length + i) # turtle.left(45) # turtle.penup() # turtle.forward(100) # turtle.pendown() # # # def calculate_expression(): # expr = turtle.textinput("Калькулятор", "Введите пример для расчета:") # try: # result = eval(expr) # except Exception as e: # result = f"Ошибка: {e}" # #turtle.clear() # turtle.penup() # turtle.home() # turtle.sety(OFFSET_Y) # turtle.write(f"{expr} = {result}", align="center", font=("Arial", 16, "normal")) # turtle.pendown() # # # def generate_melody(): # """ # Генерирует простую случайную мелодию в течение ~5 секунд. # """ # if not SOUND_AVAILABLE: # turtle.clear() # turtle.penup() # turtle.home() # turtle.sety(OFFSET_Y) # turtle.write("Audio module not available on this system.", align="center", font=("Arial", 14, "normal")) # turtle.pendown() # return # # # Параметры мелодии # notes = [262, 294, 330, 349, 392, 440, 494] # частоты нот C D E F G A B # durations = [200, 300, 400] # длительности в мс # end_time = time.time() + 5 # #turtle.clear() # turtle.penup() # turtle.home() # turtle.sety(OFFSET_Y) # turtle.write("Играет мелодию...", align="center", font=("Arial", 16, "normal")) # turtle.pendown() # # воспроизведение в отдельном потоке, чтобы не блокировать GUI # def play(): # while time.time() < end_time: # freq = random.choice(notes) # dur = random.choice(durations) # winsound.Beep(freq, dur) # threading.Thread(target=play).start() # # # def get_and_draw_weather(): # """ # Запрашивает город, получает погоду через OpenWeatherMap и рисует соответствующую иконку. # """ # api_key = "e9091c7b53e643ea41bffc394402b920" # Вставьте ваш OpenWeatherMap API key # city = turtle.textinput("Погода", "Введите город:") # if not city: # return # url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&units=metric&lang=ru&appid={api_key}" # try: # data = requests.get(url).json() # temp = data['main']['temp'] # desc = data['weather'][0]['description'] # icon = data['weather'][0]['main'].lower() # except Exception as e: # temp, desc, icon = None, f"Ошибка: {e}", None # # #turtle.clear() # turtle.penup() # turtle.home() # turtle.sety(OFFSET_Y) # turtle.pendown() # # # Рисуем иконку погоды # if icon == 'clear': # # солнце # turtle.color('yellow') # turtle.begin_fill() # turtle.circle(40) # turtle.end_fill() # elif icon == 'clouds': # # облако # turtle.color('lightgrey') # for _ in range(2): # turtle.begin_fill() # turtle.circle(40) # turtle.end_fill() # turtle.penup() # turtle.forward(60) # turtle.pendown() # elif icon in ('rain', 'drizzle'): # # облако + капли # turtle.color('lightgrey') # turtle.begin_fill(); turtle.circle(40); turtle.end_fill() # turtle.penup(); turtle.forward(60); turtle.pendown() # turtle.begin_fill(); turtle.circle(40); turtle.end_fill() # # капли # turtle.color('blue') # for x in [-20, 0, 20]: # turtle.penup(); turtle.goto(x, OFFSET_Y - 80); turtle.pendown() # turtle.write('💧', align='center', font=(None, 24, 'normal')) # elif icon in ('snow',): # # снежинка # turtle.color('white') # for _ in range(6): # turtle.penup(); turtle.goto(0, OFFSET_Y - 20); turtle.pendown() # turtle.forward(50) # turtle.backward(50) # turtle.left(60) # else: # # неопознанно # turtle.write("Нет иконки для этой погоды", align="center", font=("Arial", 14, "normal")) # # # Вывод текста # text = f"{city}: {desc}, {temp}°C" if temp is not None else desc # turtle.penup() # turtle.goto(0, OFFSET_Y - 120) # turtle.write(text, align="center", font=("Arial", 16, "normal")) # turtle.pendown() # # # def show_menu(): # #turtle.clear() # turtle.penup() # turtle.goto(-200, 260) # menu_text = ( # "Команды:\n" # "1. нарисуй - сложные цветные спирали\n" # "2. посчитай - простой калькулятор\n" # "3. мелодия - генерирует случайную мелодию 5с\n" # "4. погода - показывает погоду с рисунком\n" # "5. выход - завершить программу" # ) # turtle.write(menu_text, font=("Arial", 14, "normal")) # turtle.goto(0, 0) # turtle.pendown() # # # def main(): # turtle.setup(600, 600) # turtle.title("Чат-бот на Turtle") # turtle.hideturtle() # turtle.speed(0) # # while True: # show_menu() # cmd = turtle.textinput("Меню", "Введите команду:") # if not cmd: # continue # cmd = cmd.strip().lower() # if cmd == "нарисуй": # draw_random_spirals() # elif cmd == "посчитай": # calculate_expression() # elif cmd == "мелодия": # generate_melody() # elif cmd == "погода": # get_and_draw_weather() # elif cmd in ("выход", "exit", "5"): # turtle.bye() # sys.exit() # else: # #turtle.clear() # turtle.penup() # turtle.home() # turtle.sety(OFFSET_Y) # turtle.write("Неизвестная команда! Попробуйте снова.", align="center", font=("Arial", 16, "normal")) # turtle.pendown() # # if __name__ == "__main__": # main() # # from turtle import * # scr = Screen() # t = Turtle() # # t.speed(100) # # sides = 360 # # angle = 360 /sides # # # # for i in range(sides): # # t.forward(i+1) # # t.left(angle) # t.speed(1) # t.goto(0,100) # t.goto(50,10) # t.goto(-90,-30) # # # # scr.mainloop() # import turtle # t = turtle.Turtle() # t.speed(100) # # for i in range(360): # t.forward(i) # t.left(91) # x = int(input("1: ")) # b = "123123" # b = int(b) # print(x + b)