728x90
반응형
(문제)
140~170사이에서 랜덤값을 while True를 통해 무한 추출하여
(-200,200)에서 시작하여 무한으로 forward 시킨 후
각각 400, 600, 1000만큼을 이동했을 때마다 right 90을 시켜주려 합니다.
이때 랜덤값이 400, 600, 1000에 정확하게 도달하지 않기 때문에
xcor 등으로는 right를 시켜줄 수가 없는데
정확하게 해당 값에서 right를 시켜주려면 어떻게 해야 할까요?
(방법)
import turtle as t
import random
t.shape('turtle')
t.speed(4)
t.up()
t.goto(-200,200) # -200, 200 으로 이동
t.down()
pos = [400, 600, 1000] # 이동거리
pos_idx = 0 # pos를 구분
n_sum = 0 # 총 이동거리. 400, 600, 1000 확인 용
while True: # 무한 반복
n = random.randint(140, 170) # 140~170에서 임의의 값
if n_sum + n < pos[pos_idx]: # 총이동거리와 이번 이동거리의 합이 현제 목표 이동거리보다 작으면
n_sum += n
t.forward(n) # 이번 이동 거리만큼 이동
print('sum=',n_sum, ' /n=',n)
else: # 총이동거리와 이번 이동거리의 합이 현재 목표 이동거리보다 크면
np = pos[pos_idx] - n_sum # 목표이동거리 만큼만 더 이동거리 계산
t.forward(np)
print('sum=',np, ' / 90')
t.right(90) # right
n_sum = 0 # 총이동거리 초기화
pos_idx += 1 # 다음 목표이동거리로 변경
if n_sum > 1000 or pos_idx > len(pos)-1: # 총 이동거리가 1000 이 넘거나 목표 인덱스가 벗어나면 종료
break
t.done()
결과
sum= 152 /n= 152
sum= 307 /n= 155
sum= 93 / 90
sum= 247 /n= 154
sum= 410 /n= 163
sum= 577 /n= 167
sum= 23 / 90
sum= 177 /n= 154
sum= 340 /n= 163
sum= 508 /n= 168
sum= 661 /n= 153
sum= 813 /n= 152
sum= 976 /n= 163
sum= 24 / 90

728x90
반응형
'프로그램' 카테고리의 다른 글
| [파이썬] 문제 : 문자열 내의 모음 개수 Count (0) | 2022.12.20 |
|---|---|
| [파이썬] 문제 : 문자열 내 가운데 글자를 추출 (0) | 2022.12.20 |
| [파이썬] 문제 : pandas 딕셔너리 요소 추출해 Column 추가 (0) | 2022.12.20 |
| [파이선] 문제 : 리스트의 요소 중 2,3의 배수 찾아 리스트 만들기 (0) | 2022.12.20 |
| [파이썬] 문제 : 숫자로 역삼각형 모양으로 출력 (0) | 2022.12.20 |
댓글