Прикреплённый файл «drles.py»

Загрузка

   1 #!/usr/bin/python
   2 # coding: UTF8
   3 '''
   4 Будем говорить, что для наблюдателя лес является дремучим, если из своего текущего положения наблюдатель видит только деревья. Вам дана карта леса и координаты точки, в которой находится наблюдатель. Требуется определить, кажется ли лес дремучим данному наблюдателю.
   5 
   6 На карте леса все деревья изображаются кругами.
   7 
   8 '''
   9 
  10 import pygame, sys
  11 from drlesF import *
  12 from drlesG import *
  13 
  14 pygame.init()
  15 screen=pygame.display.set_mode((1024,768))
  16 
  17 O=screen.get_rect().center
  18 
  19 Les=[l for l in gen_les(O,166,size=screen.get_rect().size)]
  20 
  21 for C, R in Les:
  22     pygame.draw.circle(screen,pygame.Color("peru"),C,R)
  23 
  24 Sheli=[s for s in kasat_les(O,Les)]
  25 
  26 for M,C,R in Sheli:
  27     pygame.draw.line(screen, pygame.Color("khaki"),O,M)
  28 
  29 for M,C1,R1 in Sheli:
  30     for C, R in Les:
  31         if C1 != C or R1 != R:
  32             M2=O[0]+(O[1]-C[1]),O[1]-(O[0]-C[0])
  33             if (M2[0]-O[0])*(M[1]-O[1])-(M2[1]-O[1])*(M[0]-O[0]) < 0: # Полупрямая
  34                 if rasst_do_pr(C,O,M)<R:    # прямая OM пересекает окружность C,R
  35                     break
  36     else:
  37         pygame.draw.line(screen, pygame.Color("green"),O,M,3)
  38         break
  39 else:
  40     S=screen.get_rect().size[0]/20
  41     pygame.draw.circle(screen,pygame.Color("black"),O,S)
  42     pygame.draw.line(screen,pygame.Color("red"),(O[0]-S,O[1]-S),(O[0]+S,O[1]+S),S/5)
  43     pygame.draw.line(screen,pygame.Color("red"),(O[0]-S,O[1]+S),(O[0]+S,O[1]-S),S/5)
  44 
  45 while True:
  46     event = pygame.event.wait()
  47     if   event.type == pygame.QUIT: sys.exit()
  48     elif event.type == pygame.KEYUP:
  49       if event.key == 27: sys.exit()
  50     pygame.display.flip()

Прикреплённые файлы

Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.

Вам нельзя прикреплять файлы к этой странице.