프로그램

[파이썬] 문제 : 터틀(turle) 여러개의 좌표가 있는 리스트를 파일에 저장 후 읽기 사각형 그리기

오디세이99 2023. 4. 12. 18:12
728x90
반응형

파일에 저장하

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()

728x90
반응형