[Pl in c++] 10. battleship game 5

824 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
824
On SlideShare
0
From Embeds
0
Number of Embeds
38
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

[Pl in c++] 10. battleship game 5

  1. 1. 수업전 질문
  2. 2. 헤더파일의 Include 제거 Player.h Player.cpp 헤더 파일의 Include는 적을 수록 좋다!! • 컴파일 속도가 빨라진다. (Include는 파일의 내용을 삽입(!) 하는 것) • 각 파일간의 의존도(커플링)을 제거 한다.
  3. 3. class Player 배 객체들을 가지고 있다 •Aircraft, Battleship, Cruiser, Destroyer(x2) 내 배들을 배치한다. 상대방의 공격에 피격 체크 결과를 알려준다. 맵 객체들을 가지고 있다. 상대방을 공격 한다.
  4. 4. class Player 배 객체들을 가지고 있다 •Aircraft, Battleship, Cruiser, Destroyer(x2) 내 배들을 배치한다. 상대방의 공격에 피격 체크 결과를 알려준다. 맵 객체들을 가지고 있다. 상대방을 공격 한다.
  5. 5. #pragma once /// 게임을 진행하는 플레이어 클래스 class Player { public: Player(); ~Player(); }; #pragma once #include "Aircraft.h" #include "Battleship.h" #include "Cruiser.h" #include "Destroyer.h" /// 게임을 진행하는 플레이어 클래스 class Player { public: Player(); ~Player(); protected: // 배 객체들 Aircraft m_Aircraft; Battleship m_Battleship; Cruiser m_Cruiser; Destroyer m_Destroyer[2]; };
  6. 6. class Player 배 객체들을 가지고 있다 •Aircraft, Battleship, Cruiser, Destroyer(x2) 내 배들을 배치한다. 상대방의 공격에 피격 체크 결과를 알려준다. 맵 객체들을 가지고 있다. 상대방을 공격 한다.
  7. 7. class Player 내 배들의 위치를 출력하자. int _tmain(int argc, _TCHAR* argv[]) { Player player; player.SetupShips(); player.PrintShips(); getchar(); return 0; }
  8. 8. class Player 배 객체들을 가지고 있다 •Aircraft, Battleship, Cruiser, Destroyer(x2) 내 배들을 배치한다. 상대방의 공격에 피격 체크 결과를 알려준다. 맵 객체들을 가지고 있다. 상대방을 공격 한다.
  9. 9. class GameManager
  10. 10. class GameManager { public: GameManager(); ~GameManager(); void Init(); void Start(); protected: // 우선 1단계. // 어택커와 디펜더를 구별하고, 한쪽은 공격만, 한쪽은 히트체크만 한다. Player m_Attacker; Player m_Defender; };
  11. 11. 결과값의 추가
  12. 12. 그런데??
  13. 13. 그런데?? CShip::HitCheck() CShip이 자식 클래스의 종류를 알아야만 한다. 부모가 태어날 자식들을 다 미리 알고 만들어져야 한다는게 말이 될까??
  14. 14. 오버라이딩 - 정의 • 부모 클래스의 메소드를 호출한 후에 내용을 추가한다. • 자식 클래스의 내용을 먼저 처리하고, 부모 메소드를 호출 • 완전히 다른 내용으로 바꾸기
  15. 15. class GameManager Attacker와 Defender Attacker는 랜덤으로 공격 한다 Defender는 히트 체크를 한다 진행 상황을 출력한다. 한쪽의 배가 모두 격추 될 때까지 반복한다. 몇턴이 걸렸는지 출력한다.
  16. 16. 수업후 질문

×