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

2025. 3. 5. 09:22·국비지원교육/[계룡건설] 빅데이터 기반 GreenTech SW개발자
목차
  1. 1. bomb.py
  2. 2. box.py
  3. 3. character.py
  4. 4. item.py
  5. 5. main.py
  6. 6. map.py
  7. 7. mob.py
  8. 8. pos.py
  9. 전체 실행 순서

이 카테고리는 국비지원 과정으로 [계룡건설] 빅데이터 기반 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
  1. 1. bomb.py
  2. 2. box.py
  3. 3. character.py
  4. 4. item.py
  5. 5. main.py
  6. 6. map.py
  7. 7. mob.py
  8. 8. pos.py
  9. 전체 실행 순서
'국비지원교육/[계룡건설] 빅데이터 기반 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**
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.