(Python) 문제: 여러 좌표가 있는 목록을 파일에 저장한 후 읽기 직사각형 그리기


파일에 저장

traps = ((-500,500), (-400,400),(-300,300),(-100,400),(-200,100),
        (-500,-400),(-500,-100),(-300,-200),(-300,-50),(-100,-500),
        (500,100),(400,250),(300,100),(200,500),(100,350),
        (500,-500),(400,-100),(300,-300),(200,-100),(100,-400))

f = open('traps.txt','w')                 # 텍스트 파일 쓰기용으로 열기
for i in range(len(traps)):               # 요소수 만큼 반복
    print(traps(i)(0),traps(i)(1))         # 출력. 없어도 됨
    f.write(str(traps(i)(0)) + ',' + str(traps(i)(1)) + '\n')   # 파일에 쓰기. -500,500 과 같은 형때로 한 줄씩 씀.
f.close()                                  # 파일 닫기


직사각형을 그리다

import turtle

f = open('traps.txt','r')               # 파일 읽기용으로 열기
lines = f.readlines()                   # 읽기
f.close()                               # 파일 닫기

data = ()                               # 데이터용 리스트 변수 선언
for L in lines:                         # 한줄씩 데이터 가져오기
    d = L.split(',')                     # ''-500,500'과 같은 형태여서 ','로 분리
    data.append((int(d(0)), int(d(1))))  # 정수로 변환 후 (-500,500)과 같은 리스트 요소로 만들어 리스트에 추가. ((-500,500,(-4400,400)...))
# print(data)

t=turtle.Turtle()           # 터틀
t.shape('turtle')
t.speed(0)                  # 속도 빠르게

def draw(x, y):            # 사각형 그리기 함수. 좌표x,y인수로 받음
    t.penup()              # 좌표 이동시 그려지지 않도록 펜 들음
    t.goto(x,y)             # 좌표 이동
    t.pendown()             # 그려지게 하기 위해 펜 내림
    t.color('yellow')       # 색 지정
    t.begin_fill()          # 색 채우기 시작
    length = 100            # 길이 선언
    for i in range(4):     # 사각형 4번 반복
        t.forward(length)   # 이동하면 그리기
        t.right(90)         # 오른쪽으로 90도 회전
    t.end_fill()            # 채우기 종료
    
x = 0                       #  좌표 변수 선언
y = 0
for pos in data:            # 텍스트 파일에서 읽어 리스트에 저장한 좌표정보 가져오기. 요소수 만큼 반복
    draw(pos(0), pos(1))     # 그리기 함수 실행
    
turtle.done()