Commit 533ef5c8 by 최애림

INNODEV-2902 Seminar-프로그래밍 연습_야구 게임 객체 만들어보기

- Player 클래스 정의
	- 이름, 등번호, 나이, 키 몸무게 정보 생성
	- 대전 횟수 정보 저장하는 메소드 생성
	- 이름(등번호) 형태로 출력되도록 함
- Team 클래스 정의
	- 구단명, 연고지, 소속 선수 목록 생성
	- 메소드 생성
		소속 선수 목록 조회, 선수 객체 추가, 제거
	- 구단명(연고지) 형태로 출력되도록 함
parent 882087d2
class Player:
"""
선수 정보를 관리하는 클래스입니다.
"""
def __init__(self, name, num, age, height, weight):
"""
객체를 초기화하고 선수들의 정보를 입력하는 메소드입니다.
:param name: 선수 이름
:param num: 등번호
:param age: 나이
:param height: 키
:param weight: 몸무게
"""
self.name = name
self.num = num
self.age = age
self.height = height
self.weight = weight
def member(self, match_n):
"""
기존 선수 정보에 대전 횟수를 추가합니다.
:param match_n: 대전 횟수
:return: None
"""
self.match_n = match_n
def __str__(self):
"""
객체를 문자열로 반환합니다.
:return: '선수 이름(선수 등번호)' 형태로 반환
"""
return f'{self.name}({self.num})'
# 선수 명단 리스트 만들기
class Team:
"""
구단 정보를 관리하는 클래스입니다.
"""
def __init__(self, name, location):
"""
객체를 초기화하고 구단 이름, 연고지를 정보를 입력하는 메소드입니다.
:param name: 구단 이름
:param location: 구단 연고지
"""
self.name = name
self.location = location
self.player_list = []
def __str__(self):
"""
객체를 문자열로 반환합니다.
:return: '구단명(연고지)' 형태로 반환
"""
return f'{self.name}({self.location})'
def check_player(self):
"""
구단 내 선수들을 조회합니다.
:return: 선수 이름 목록
"""
return [player.name for player in self.player_list]
def add_player(self, player):
"""
구단 내 선수를 추가합니다.
:param player: 추가할 선수 객체
:return: None
"""
player_inform = player
self.player_list.append(player_inform)
print(f'"{player}" 선수가 선수 명단에서 추가 되었습니다.')
def remove_player(self, player_name):
"""
구단 내 선수를 삭제합니다.
:param player_name: 삭제할 선수 이름
:return: None
"""
player_idx = [idx for idx, obj in enumerate(self.player_list) if obj.name == player_name ][0]
self.player_list.pop(player_idx)
print(f'"{player_name}" 선수가 선수 명단에서 제거 되었습니다.')
#######################################################################################################################
import random
team_kiwoom = Team('키움','서진울')
player_kiwoom_li = {
'name': ['이정후', '러셀', '이용규', '후라도', '임병욱', '오윤', '노병오', '박도현', '양현', '안우'],
'num': [random.randint(1,70) for _ in range(10)],
'age': [random.randint(20,40) for _ in range(10)],
'height': [random.randint(170,190) for _ in range(10)],
'weight': [random.randint(70,90) for _ in range(10)],
}
# 선수 추가
for idx in range(10):
information = [value[idx] for value in player_kiwoom_li.values()]
player = Player(*information)
team_kiwoom.add_player(player)
# 명단 확인
print(team_kiwoom.check_player())
# 선수 삭제
team_kiwoom.remove_player('러셀')
# 명단 확인
print(team_kiwoom.check_player())
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment