본문 바로가기
재미로 하는 코딩

random모듈을 사용해 롤 라인 정하기

by 헬푸밍 2022. 12. 26.

모두 롤 많이 하시나요?

 

저는 사일러스 승모근이 지린다고 생각합니다 ㅎㅎ

(사진출처: 게임 공식 홈페이지)

대학시절에는 프로게이머 모드로 했었을 때도 있었지만

 

지금은 가끔씩 합니다 ㅎㅎ

 

저는 5인 자유랭크와 10명을 모아 5:5 내전을 주로 하는데여...

 

오늘은 코딩으로 라인을 정해보기로 해봐요!

 

먼저 자유랭크 라인 정하기를 한 번 해봅시다.

 

먼저 대충 구상을 해보면...

1. 5명의 이름을 입력받는다.

2. 입력 받은 이름을 빈 리스트에 추가한다.

3. 리스트 순서를 무작위로 섞는다.

우선 이 정도만 생각을 해봤습니다!

import random #랜덤 모듈 호출

names = []

for i in range(5) : #이름을 5번 입력해야함
  name = input('이름을 입력하세요 : ')
  names.append(name) #빈 리스트에다 순서대로 이름을 추가

random.shuffle(names) #시퀀스의 순서를 뒤죽박죽 섞음
print(names)

결과는?

입력한 순서와 상관 없이 랜덤으로 순서가 바뀌었습니다!

 

이제 한 번 예쁘게 출력해 볼까요?

 

긴장감도 줄 겸 3초를 세고 출력하기로 해봅시다!

import random
import time

names = []

for i in range(5) :
  name = input('이름을 입력하세요 : ')
  names.append(name)

random.shuffle(names)

print(3)
time.sleep(1)
print(2)
time.sleep(1)
print(1)
time.sleep(1)

print('탐은', names[0] + '님 입니다.')
print('정글은', names[1] + '님 입니다.')
print('미드는', names[2] + '님 입니다.')
print('원딜은', names[3] + '님 입니다.')
print('서폿은', names[4] + '님 입니다.')

결과는...? 두둥

저는 황족 미드가 걸렸군요 ㅎㅎ 막내집 재벌 포스 납니다 ㅎㅎ


이번에는 10명이서 5:5내전을 하는 경우 라인 정하기를 해봐요ㅎㅎ

 

코드를 그대로 하고 10명으로 늘려서 팀을 나누는 것은 재미없으니까...

 

먼저 2팀으로 쪼개고 각 팀에서 다시 랜덤함수를 돌려 라인을 정하는 것으로 결정했어요!

 

먼저 팀을 나누는 코드를 짜볼게요..

import random

names = []

for i in range(10) :
  name = input('이름을 입력하세요 : ')
  names.append(name)

team1 = set(random.sample(names, k = 5)) #셋 형태로 반환
team2 = set(names)-team1 #차집합으로 나머지 인원을 team2로 설정

team1 = list(team1) 
team2 = list(team2) #다시 리스트로 변환

print('1팀은', team1[0]+',', team1[1]+',', team1[2]+',', team1[3]+',', team1[4]+'입니다.')
print('2팀은', team2[0]+',', team2[1]+',', team2[2]+',', team2[3]+',', team2[4]+'입니다.')

 

저는 10명 중 5명을 랜덤으로 뽑아 1팀으로 하고 남은 사람들을 2팀으로 하는 방법으로 코드를 구성했습니다.

 

결과를 보니...

메날두 한팀 ㅎㄷㄷ 지리네여...

 

이제 같은 팀끼리 무작위로 섞어 라인을 정하는 코드를 짜봅시다!

import random
import time

names = []

for i in range(10) :
  name = input('이름을 입력하세요 : ')
  names.append(name)

team1 = set(random.sample(names, k = 5)) #셋 형태로 반환
team2 = set(names)-team1 #차집합으로 나머지 인원을 team2로 설정

team1 = list(team1) 
team2 = list(team2) #다시 리스트로 변환

print('1팀은', team1[0]+',', team1[1]+',', team1[2]+',', team1[3]+',', team1[4]+'입니다.')
print('2팀은', team2[0]+',', team2[1]+',', team2[2]+',', team2[3]+',', team2[4]+'입니다.')

random.shuffle(team1)
random.shuffle(team2)

print(3)
time.sleep(1)
print(2)
time.sleep(1)
print(1)
time.sleep(1)
print('라인은...?')
time.sleep(1)
print('1팀')
print('1팀의 탑은', team1[0]+'입니다')
print('1팀의 정글은', team1[1]+'입니다')
print('1팀의 미드는', team1[2]+'입니다')
print('1팀의 원딜은', team1[3]+'입니다')
print('1팀의 서폿은', team1[4]+'입니다')
print('2팀')
print('2팀의 탑은', team2[0]+'입니다')
print('2팀의 정글은', team2[1]+'입니다')
print('2팀의 미드는', team2[2]+'입니다')
print('2팀의 원딜은', team2[3]+'입니다')
print('2팀의 서폿은', team2[4]+'입니다')

코드를 다시 돌리면 팀도 바뀌겠죠...?

코드를 다시 돌려봅시다!

두둥...

저는 역시 황족미드에 걸렸군요...

 

탑에서는 메호대전 지리네여 ㅎㄷㄷ

 

미드에서는 빅토르로 음바페 울게 만들겠습니다 ㅋㅋㅋㅋ

 

딜량 5만 갑니다ㅎㅎㅎ

 


오늘은 간단하게 random모듈을 활용한 롤 라인 정하기 코드를 작성해봤습니다...

 

재미...?로 했지만 팀 짜진 것을 보니 만족스럽군요 ㅎㅎ

 

그럼 저는 다음에 오겠습니다.. 모두 월요팅!

댓글