공부가 하기 싫어서 진짜 간단하게 짜본 롤 5:5 팀짜기 🦍
일단 파이썬에서 지원하는 random 을 import 해준다. 이는 랜덤으로 팀을 섞기 위함이다.
그리고 사람 이름이 담긴 txt 파일을 load 한다. 이는 아래와 같다.
그 다음 각 라인을 담은 list 를 생성한다.
롤은 블루팀, 레드팀으로 나뉘고 각 탑,정글,미드,원딜,서폿으로 라인이 정해져 있다. 따라서 이를 모두 선언해준다.
다음으로 random 으로 indexing 을 해준다. for loop를 사용하여 순서를 random.randint 를 사용하여 random 으로 0~9까지의 수를 넣어준다. 그리고 order 가 team_index 에 존재한다면 다른 수를 넣어야 하기 때문에 while 문을 통해서 유무를 판별한다. 있다면 없을때 team_index 에 없을 때까지 random 값을 설정한다. while 문을 빠져 나온다면 team_index 에 append 해준다.
list 에서 append 를 한다면 list 의 마지막에 삽입을 해준다. 삽입 구조는 스택과 유사한 과정을 나타낸다. -> (후입)
랜덤인 수가 삽입된 team_index list 를 가지고 각각을 접근하며 team_rand_line list 를 통해 team_line 을 random으로 삽입해준다.
마지막으로 랜덤으로 짜여진 line 에 대해 load 한 name 데이터를 test list에 같이 삽입해준다. 그 후 보기 좋으라고 정렬을 해준다. 이는 원하는 정렬은 아니지만 귀찮기 때문에 그냥 sort() 함수를 사용한다.
마무리로 test list 를 출력하면 완료이다. output 을 확인해 보자.
6번 출력해보았는데 모두 적절히 섞이는 것을 확인 할 수 있었다. 또한 red_team / blue_team 모두 적절히 섞이는 것 역시 확인 할 수 있었다.
전체 코드 😊
import random
if __name__ == '__main__':
#file load
file_path = './member.txt'
with open(file_path, 'r',encoding='UTF-8') as f:
name = f.read().splitlines()
#line list
team_line = ['blue top','blue jg','blue mid','blue ad','blue sup',
'red top', 'red jg', 'red mid', 'red ad', 'red sup']
#random index set
team_index = []
for i in range(10):
order = random.randint(0,9)
while order in team_index:
order = random.randint(0,9)
team_index.append(order)
#random team line list
team_rand_line = []
for k in team_index:
team_rand_line.append(team_line[k])
test = []
#team set
for j in team_index:
test.append("%s %s" % (team_rand_line[j], name[j]))
test.sort()
for v in range(0,10):
print(test[v])
평가 🔦
그냥 공부가 하기 싫어서 짜본거긴 한데 적당히 잘 나온것 같다. 그리고 코딩하면서 즐겁게 코드친거는 오랜만이다 정말로.
아쉬운 점이 있다면 롤 라인은 탑, 정글, 미드, 원딜, 서폿 순으로 출력하지 않은점. GUI 까지 짜진 않은점. 등등 인 것 같다.
파이썬은 Tkinter 라는 GUI 를 지원하는데 한번 해볼까? 하고 짧게 코드를 치다가 내가 front 를 때려친 이유를 상기시켜주는 좋은 계기가 되었다. 그리고 너무 하드코딩 한건 아닌가 싶은 생각도 든다. 그래도 재밌게 코딩한 것 같다.
본 코딩을 하면서 알게 된 점은 파이썬에서 list 의 append 는 후입이라는 점이다. 이건 정말 몰랐다. 그리고 확실히 C언어나 java 보다 언어가 쉽다는 점이다. 재밌는 언어다 정말.
뭐 언젠가 친구들과 내전할때 사용하지 않을까 ?? ㅎㅎ
'학부생나부랭이 > _with_Python' 카테고리의 다른 글
Replacing the main language with Python (1) (0) | 2022.10.05 |
---|---|
Replacing the main language with Python (0) (0) | 2022.10.03 |
댓글