**[계룡건설] GreenTech SW개발자 - Python 학습 노트 .11**

2025. 3. 5. 09:22·국비지원교육/[계룡건설] 빅데이터 기반 GreenTech SW개발자

이 카테고리는 국비지원 과정으로 [계룡건설] 빅데이터 기반 GreenTech SW개발자 과정에서 학습하는 내용을 정리하는 공간입니다.


1. bomb.py

  • 주요 기능 -- 물풍선의 설치, 타이머 관리, 폭발 처리 등을 담당한다.
  • 핵심 클래스 -- _Bomb와 Bomb 클래스로 구성된다.
    • _Bomb 클래스는 물풍선의 기본 정보(소유자, 파워, 타이머 등)를 관리한다.
    • Bomb 클래스는 물풍선 리스트를 관리하고, 틱마다 물풍선의 상태를 업데이트한다.
  • 주요 메서드 --
    • tick 메서드는 각 틱마다 물풍선의 타이머를 감소시키고, 폭발할 물풍선을 처리한다.
    • bomb_list는 현재 맵에 설치된 물풍선을 관리하는 딕셔너리다.
  • 실행 순서 --
    1. 물풍선이 설치되면 Bomb.bomb_list에 추가된다.
    2. 매 틱마다 Bomb.tick 메서드가 호출되어 물풍선의 타이머가 감소한다.
    3. 타이머가 0이 되면 물풍선이 폭발하고, bomb_list에서 제거된다.

2. box.py

  • 주요 기능 -- 박스의 상태 관리, 아이템 드롭, 통계 데이터 수집 등을 담당한다.
  • 핵심 클래스 -- Box 클래스로 구성된다.
  • 주요 메서드 --
    • damaged_by_bomb 메서드는 폭탄에 의해 박스가 피해를 입는 로직을 처리한다.
    • drop_item 메서드는 박스가 파괴될 때 아이템을 드롭하는 로직을 담당한다.
    • box_tick 메서드는 각 틱마다 박스의 상태를 업데이트하고, 통계 데이터를 수집한다.
  • 실행 순서 --
    1. 박스가 폭탄에 피해를 입으면 damaged_by_bomb 메서드가 호출된다.
    2. 박스의 체력이 0이 되면 drop_item 메서드가 호출되어 아이템을 드롭한다.
    3. 매 틱마다 box_tick 메서드가 호출되어 박스의 상태를 업데이트한다.

3. character.py

  • 주요 기능 -- 플레이어 캐릭터의 이동, 아이템 획득, 상태 관리 등을 담당한다.
  • 핵심 클래스 -- Character 클래스로 구성된다.
  • 주요 메서드 --
    • move_up, move_down, move_left, move_right 메서드는 캐릭터의 이동을 처리한다.
    • apply_item_effect 메서드는 아이템 효과를 캐릭터에 적용한다.
    • get_state 메서드는 현재 캐릭터의 상태를 반환한다.
  • 실행 순서 --
    1. 플레이어가 이동 명령을 입력하면 move_up, move_down, move_left, move_right 메서드가 호출된다.
    2. 아이템을 획득하면 apply_item_effect 메서드가 호출되어 아이템 효과가 적용된다.
    3. 매 틱마다 get_state 메서드가 호출되어 캐릭터의 상태를 업데이트한다.

4. item.py

  • 주요 기능 -- 아이템의 종류와 효과를 정의하고, 아이템 드롭 로직을 관리한다.
  • 핵심 클래스 -- Item 클래스로 구성된다.
  • 주요 메서드 --
    • return_effect 메서드는 아이템 이름을 받아 해당 효과를 반환한다.
    • to_csv 메서드는 아이템 드롭 결과를 CSV 파일로 저장한다.
  • 실행 순서 --
    1. 박스가 파괴되거나 몬스터가 죽을 때 아이템이 드롭된다.
    2. 플레이어가 아이템을 획득하면 return_effect 메서드가 호출되어 아이템 효과가 적용된다.
    3. 게임 종료 시 to_csv 메서드가 호출되어 아이템 드롭 결과가 CSV 파일로 저장된다.

5. main.py

  • 주요 기능 -- 게임의 메인 루프를 실행하고, 게임 시작 화면을 표시한다.
  • 핵심 로직 --
    • map_ = Map(): 맵 객체를 생성한다.
    • while True: 게임 루프를 실행한다.
  • 실행 순서 --
    1. 게임이 시작되면 Map 객체가 생성된다.
    2. while True 루프가 실행되어 게임이 진행된다.
    3. 게임 종료 시 통계가 출력된다.

6. map.py

  • 주요 기능 -- 게임 맵의 초기화, 플레이어와 몬스터의 상호작용, 게임 상태 관리 등을 담당한다.
  • 핵심 클래스 -- Map 클래스로 구성된다.
  • 주요 메서드 --
    • initialize 메서드는 맵을 초기화하고, 박스, 아이템, 몬스터 등을 배치한다.
    • play 메서드는 게임의 메인 루프를 실행한다.
    • statistics 메서드는 게임 종료 후 통계를 출력한다.
  • 실행 순서 --
    1. 게임이 시작되면 initialize 메서드가 호출되어 맵이 초기화된다.
    2. play 메서드가 호출되어 게임의 메인 루프가 실행된다.
    3. 게임 종료 시 statistics 메서드가 호출되어 통계가 출력된다.

7. mob.py

  • 주요 기능 -- 몬스터(보스와 미니언)의 상태 관리, 공격 패턴, 이동 로직 등을 담당한다.
  • 핵심 클래스 -- Boss와 Minion 클래스로 구성된다.
  • 주요 메서드 --
    • make_atk 메서드는 보스의 공격 패턴을 생성한다.
    • renew_min_coord 메서드는 미니언의 좌표를 갱신한다.
    • monster_tick 메서드는 각 틱마다 몬스터의 상태를 업데이트한다.
  • 실행 순서 --
    1. 보스와 미니언이 초기화된다.
    2. 매 틱마다 monster_tick 메서드가 호출되어 몬스터의 상태가 업데이트된다.
    3. 보스는 make_atk 메서드를 통해 공격 패턴을 생성하고, 미니언은 renew_min_coord 메서드를 통해 이동한다.

8. pos.py

  • 주요 기능 -- 좌표를 관리하는 클래스를 제공한다.
  • 핵심 클래스 -- Pos 클래스로 구성된다.
  • 주요 메서드 --
    • __add__ 메서드는 좌표 간의 덧셈 연산을 지원한다.
    • to_list 메서드는 좌표를 리스트로 변환한다.
    • from_list 메서드는 리스트를 좌표로 변환한다.
  • 실행 순서 --
    1. 좌표 객체가 생성되면 Pos 클래스의 메서드를 통해 좌표 연산이 수행된다.
    2. 좌표를 리스트로 변환하거나, 리스트를 좌표로 변환하는 작업이 필요할 때 to_list와 from_list 메서드가 사용된다.

전체 실행 순서

  1. 게임 시작 -- main.py에서 Map 객체를 생성하고, initialize 메서드를 호출하여 맵을 초기화한다.
  2. 게임 루프 -- play 메서드가 호출되어 게임의 메인 루프가 실행된다.
    • 플레이어가 이동하거나 물풍선을 설치하면 Character 클래스의 메서드가 호출된다.
    • 물풍선이 설치되면 Bomb 클래스의 tick 메서드가 호출되어 타이머가 감소한다.
    • 박스가 폭탄에 피해를 입으면 Box 클래스의 damaged_by_bomb 메서드가 호출된다.
    • 몬스터는 monster_tick 메서드를 통해 상태가 업데이트된다.
  3. 게임 종료 -- 게임이 종료되면 statistics 메서드가 호출되어 통계가 출력된다.

 

'국비지원교육 > [계룡건설] 빅데이터 기반 GreenTech SW개발자' 카테고리의 다른 글

**[계룡건설] GreenTech SW개발자 - Python 학습 노트 .13**  (0) 2025.03.21
**[계룡건설] GreenTech SW개발자 - Python 학습 노트 .12**  (0) 2025.03.21
**[계룡건설] GreenTech SW개발자 - SQL 학습 노트**  (0) 2025.02.17
**[계룡건설] GreenTech SW개발자 - JavaScript 학습 노트 .1**  (0) 2025.02.17
**[계룡건설] GreenTech SW개발자 - CSS 학습 노트 .1**  (0) 2025.02.17
'국비지원교육/[계룡건설] 빅데이터 기반 GreenTech SW개발자' 카테고리의 다른 글
  • **[계룡건설] GreenTech SW개발자 - Python 학습 노트 .13**
  • **[계룡건설] GreenTech SW개발자 - Python 학습 노트 .12**
  • **[계룡건설] GreenTech SW개발자 - SQL 학습 노트**
  • **[계룡건설] GreenTech SW개발자 - JavaScript 학습 노트 .1**
알뜰한대학생
알뜰한대학생
  • 알뜰한대학생
    ALT-LOG
    알뜰한대학생
  • 전체
    오늘
    어제
    • 분류 전체보기 (20)
      • TIL(Today I Learn) (0)
      • Coding Test (0)
        • programmers (0)
        • Baekjoon (0)
      • 국비지원교육 (14)
        • [계룡건설] 빅데이터 기반 GreenTech SW.. (13)
        • 관제시스템 GUI 구현을 통한 자바(JAVA)프로.. (1)
      • [혼공스]혼자 공부하는 자바 스크립트 (6)
        • 혼공학습단 숙제 (6)
      • 자격증 (0)
        • 정보처리기사 (0)
        • SQLD (0)
        • 빅데이터분석기사 (0)
        • 데이터분석준전문가 (0)
        • 웹디자인기능사 (0)
        • OCJP (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
알뜰한대학생
**[계룡건설] GreenTech SW개발자 - Python 학습 노트 .11**
상단으로

티스토리툴바