Search

이차배열5_문제15_경마

대분류
STEP08 이차리스트
소분류
이차리스트5_문제

영상

문제

''' [경마] horse_race리스트는 경마 게임을 표현한 것이다. 숫자 1~5는 말 번호를 뜻한다. 한 번에 말들은 2~5칸을 랜덤으로 이동한다. 모든 말이 도착할 때까지 말의 이동 경로를 출력하시오. rank리스트에 등수를 저장하시오. [예시] 주사위 : [2,4,2,1,3] 이나왔다고하면, 아래와 같이 된다. [0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ''' horse_race = [ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ] rank = [0,0,0,0,0] position = [ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ] total = [0, 0, 0, 0, 0]
Python
복사

해설

''' [경마] horse_race리스트는 경마 게임을 표현한 것이다. 숫자 1~5는 말 번호를 뜻한다. 한 번에 말들은 2~5칸을 랜덤으로 이동한다. 모든 말이 도착할 때까지 말의 이동 경로를 출력하시오. rank리스트에 등수를 저장하시오. [예시] 주사위 : [2,4,2,1,3] 이나왔다고하면, 아래와 같이 된다. [0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ''' import random horse_race = [ [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ] rank = [0,0,0,0,0] position = [ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ] total = [0, 0, 0, 0, 0] count = 1 for i in range(20): for j in range(5): if total[j] == 19: continue position[j][i] = random.randint(2, 5) total[j] += position[j][i] if total[j] >= 19: total[j] = 19 rank[j] = count count += 1 for i in range(len(position)): for j in range(len(position[i])): print(position[i][j], end=" ") print() print() print(total) print(rank) print("---------------------------------------") view = [ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ] view_total = [0, 0, 0, 0, 0] j = 0 while j < len(view[0]): for i in range(len(horse_race)): if view_total[i] >= 19: view_total[i] = 19 else: view_total[i] += position[i][j] if view_total[i] >= 19: view_total[i] = 19 # 말 위치 표기 for i in range(len(horse_race)): view[i][view_total[i]] = 1 # 화면 출력 print(view_total) for i in range(len(view)): print(view[i]) print() # 말 위치 초기화 for i in range(len(horse_race)): view[i][view_total[i]] = 0 j += 1
Python
복사