abs() : 절대값을 반환해주는 함수
import random
# set EV
BOX = 7
ev = [[0]*15 for i in range(3)]
no = ["EV1004","EV1005","EV1006"]
on = [0,0,0]
for i in range(len(ev)):
r = random.randint(0,len(ev[0])-1)
ev[i][r] = BOX
# set Me
me = [0]*len(ev[0])
now = random.randint(0,len(ev[0])-1)
# run
while True:
# update Me
me[now] = 1
# print1
print("------- The Grand Budapest Hotel --------")
for y in range(len(ev)):
if on[y] == 0:
print(end="off ")
elif on[y] == 1:
print(end="on ")
print(no[y], end=" ")
for x in range(len(ev[i])):
if ev[y][x] == BOX:
print(end="■■")
elif ev[y][x] == 0:
print(end="==")
print()
print("-----------------------------------------")
print(end=" ")
for x in range(len(me)):
if me[x] == 1:
print(end=" ↑")
else:
print(end=" ")
print()
# print Button
print("나는 지금 %d층에 있다." % (now+1))
print("1) 위로 \n2) 아래로")
sel = int(input("입력: "))
# call BOX
min = len(ev[0])
idx1 = -1
idx2 = -1
for y in range(len(ev)):
for x in range(len(ev[i])):
if ev[y][x] == BOX and abs(now-x) < min:
min = abs(now-x)
idx1 = y
idx2 = x
on[idx1] = 1
print(no[idx1], "승강기가 이동합니다>>")
# move
dir = 0
if sel == 1:
dir = int(input("층수입력[%d~15]: " % (now+2)))
if dir > now and dir <= len(ev[0]):
ev[idx1][idx2] = 0
ev[idx1][dir-1] = BOX
me[now] = 0
now = dir-1
me[now] = 1
print("%d층에 도착했습니다." % dir)
else:
print("BEEP!")
elif sel == 2:
dir = int(input("층수입력[1~%d]: " % now))
if dir > 0 and dir < now:
ev[idx1][idx2] = 0
ev[idx1][dir-1] = BOX
me[now] = 0
now = dir-1
me[now] = 1
print("%d층에 도착했습니다." % dir)
else:
print("BEEP!")
# print2
print("------- The Grand Budapest Hotel --------")
for y in range(len(ev)):
if on[y] == 0:
print(end="off ")
elif on[y] == 1:
print(end="on ")
print(no[y], end=" ")
for x in range(len(ev[i])):
if ev[y][x] == BOX:
print(end="■■")
elif ev[y][x] == 0:
print(end="==")
print()
print("-----------------------------------------")
print(end=" ")
for x in range(len(me)):
if me[x] == 1:
print(end=" ↑")
else:
print(end=" ")
print()
# 초기화 및 랜덤 (탑승한 승강기 제외)
on[idx1] = 0
for y in range(len(ev)):
for x in range(len(ev[y])):
if y != idx1 and ev[y][x] == BOX:
ev[y][x] = 0
r = random.randint(0, len(ev[0])-1)
ev[y][r] = BOX
'Python > ☞' 카테고리의 다른 글
[44]-A. 사다리 게임 (0) | 2020.07.24 |
---|---|
[44] 사다리 게임 (0) | 2020.07.24 |
[43] 승강기 제어시스템 (0) | 2020.07.24 |
[42]-A. 캐릭터 이동 (0) | 2020.07.24 |
[42] 캐릭터 이동 (0) | 2020.07.24 |
댓글