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

Mais conteúdo relacionado

Mais procurados

우분투 커널 컴파일
우분투 커널 컴파일우분투 커널 컴파일
우분투 커널 컴파일he4722
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱Jong Wook Kim
 
도커 학습과 Boot2Docker
도커 학습과 Boot2Docker도커 학습과 Boot2Docker
도커 학습과 Boot2Dockerpyrasis
 
파일시스템 관련 명령어
파일시스템 관련 명령어파일시스템 관련 명령어
파일시스템 관련 명령어Chulgyu Shin
 
ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)Chulgyu Shin
 
Linux 강의자료 ed10
Linux 강의자료 ed10Linux 강의자료 ed10
Linux 강의자료 ed10hungrok
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_startSukjin Yun
 
Ch7,8. Configmaps, Secrets and API
Ch7,8. Configmaps, Secrets and APICh7,8. Configmaps, Secrets and API
Ch7,8. Configmaps, Secrets and APIHongmin Park
 
리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"
리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"
리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"리얼리눅스
 
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법pyrasis
 

Mais procurados (13)

우분투 커널 컴파일
우분투 커널 컴파일우분투 커널 컴파일
우분투 커널 컴파일
 
이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱이것이 리눅스다 - 김종욱
이것이 리눅스다 - 김종욱
 
도커 학습과 Boot2Docker
도커 학습과 Boot2Docker도커 학습과 Boot2Docker
도커 학습과 Boot2Docker
 
1.intro to k8s
1.intro to k8s1.intro to k8s
1.intro to k8s
 
파일시스템 관련 명령어
파일시스템 관련 명령어파일시스템 관련 명령어
파일시스템 관련 명령어
 
ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)ITs 2주차_기본명령어(발표)
ITs 2주차_기본명령어(발표)
 
Linux 강의자료 ed10
Linux 강의자료 ed10Linux 강의자료 ed10
Linux 강의자료 ed10
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_start
 
RZDESK-Docker hackday
RZDESK-Docker hackdayRZDESK-Docker hackday
RZDESK-Docker hackday
 
Ch7,8. Configmaps, Secrets and API
Ch7,8. Configmaps, Secrets and APICh7,8. Configmaps, Secrets and API
Ch7,8. Configmaps, Secrets and API
 
Node.js 첫걸음
Node.js 첫걸음Node.js 첫걸음
Node.js 첫걸음
 
리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"
리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"
리얼리눅스 제 1 회 세미나: "리눅스, 제대로 알고 코딩하자!"
 
Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법
 

Destaque

[Pl in c++] 9. 다형성
[Pl in c++] 9. 다형성[Pl in c++] 9. 다형성
[Pl in c++] 9. 다형성MinGeun Park
 
[Pl in c++] 5. 객체지향 프로그래밍
[Pl in c++] 5. 객체지향 프로그래밍[Pl in c++] 5. 객체지향 프로그래밍
[Pl in c++] 5. 객체지향 프로그래밍MinGeun Park
 
Unit Testing and Test Driven Development in Unity3D
Unit Testing and Test Driven Development in Unity3DUnit Testing and Test Driven Development in Unity3D
Unit Testing and Test Driven Development in Unity3DAndrew Fray
 
[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들
[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들
[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들MinGeun Park
 
[141015] cedec 2014 참관기 & 강연 리뷰 #2
[141015] cedec 2014 참관기 & 강연 리뷰 #2[141015] cedec 2014 참관기 & 강연 리뷰 #2
[141015] cedec 2014 참관기 & 강연 리뷰 #2MinGeun Park
 
[Pl in c++] 12. learning
[Pl in c++] 12. learning[Pl in c++] 12. learning
[Pl in c++] 12. learningMinGeun Park
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1MinGeun Park
 
[SCON9] 커뮤니케이션 in Game
[SCON9] 커뮤니케이션 in Game[SCON9] 커뮤니케이션 in Game
[SCON9] 커뮤니케이션 in GameMinGeun Park
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기MinGeun Park
 
Unity3D 5 의 ugui #1
Unity3D 5 의 ugui #1Unity3D 5 의 ugui #1
Unity3D 5 의 ugui #1Hong-Gi Joe
 
취미로 엔진 만들기
취미로 엔진 만들기취미로 엔진 만들기
취미로 엔진 만들기Jiho Choi
 
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발MinGeun Park
 
[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기MinGeun Park
 
게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴예림 임
 
[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기MinGeun Park
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술MinGeun Park
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개MinGeun Park
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리MinGeun Park
 

Destaque (20)

[Pl in c++] 9. 다형성
[Pl in c++] 9. 다형성[Pl in c++] 9. 다형성
[Pl in c++] 9. 다형성
 
[Pl in c++] 5. 객체지향 프로그래밍
[Pl in c++] 5. 객체지향 프로그래밍[Pl in c++] 5. 객체지향 프로그래밍
[Pl in c++] 5. 객체지향 프로그래밍
 
Unit Testing and Test Driven Development in Unity3D
Unit Testing and Test Driven Development in Unity3DUnit Testing and Test Driven Development in Unity3D
Unit Testing and Test Driven Development in Unity3D
 
[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들
[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들
[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들
 
[141015] cedec 2014 참관기 & 강연 리뷰 #2
[141015] cedec 2014 참관기 & 강연 리뷰 #2[141015] cedec 2014 참관기 & 강연 리뷰 #2
[141015] cedec 2014 참관기 & 강연 리뷰 #2
 
[Pl in c++] 12. learning
[Pl in c++] 12. learning[Pl in c++] 12. learning
[Pl in c++] 12. learning
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
 
[SCON9] 커뮤니케이션 in Game
[SCON9] 커뮤니케이션 in Game[SCON9] 커뮤니케이션 in Game
[SCON9] 커뮤니케이션 in Game
 
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
[150124 박민근] 모바일 게임 개발에서 루아 스크립트 활용하기
 
Unity3D 5 의 ugui #1
Unity3D 5 의 ugui #1Unity3D 5 의 ugui #1
Unity3D 5 의 ugui #1
 
Tdd in unity
Tdd in unityTdd in unity
Tdd in unity
 
취미로 엔진 만들기
취미로 엔진 만들기취미로 엔진 만들기
취미로 엔진 만들기
 
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
[스마트벤처 창업학교] 스타트업 프로젝트를 위한 유니티 게임 개발
 
[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기[160404] 유니티 apk 용량 줄이기
[160404] 유니티 apk 용량 줄이기
 
게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴
 
[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기[데브루키160409 박민근] UniRx 시작하기
[데브루키160409 박민근] UniRx 시작하기
 
[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술[150523] live2d 그녀들을 움직이게 하는 기술
[150523] live2d 그녀들을 움직이게 하는 기술
 
[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개[160402_데브루키_박민근] UniRx 소개
[160402_데브루키_박민근] UniRx 소개
 
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리[Unite2015 박민근] 유니티 최적화 테크닉 총정리
[Unite2015 박민근] 유니티 최적화 테크닉 총정리
 
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
 

Mais de MinGeun Park

[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdfMinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6MinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5MinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3MinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2MinGeun Park
 
[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석MinGeun Park
 
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이MinGeun Park
 
[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐MinGeun Park
 
[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBRMinGeun Park
 
[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OTMinGeun Park
 
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.MinGeun Park
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correctionMinGeun Park
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & TrickMinGeun Park
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)MinGeun Park
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법MinGeun Park
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 MinGeun Park
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현MinGeun Park
 
[Pl in c++] 11. chapter
[Pl in c++] 11. chapter[Pl in c++] 11. chapter
[Pl in c++] 11. chapterMinGeun Park
 

Mais de MinGeun Park (18)

[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
[CSStudy] 코딩인터뷰 완전 분석 #7.pdf
 
[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6[Cs study] 코딩인터뷰 완전 분석 #6
[Cs study] 코딩인터뷰 완전 분석 #6
 
[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5[Cs study] 코딩인터뷰 완전 분석 #5
[Cs study] 코딩인터뷰 완전 분석 #5
 
[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3[Cs study] 코딩인터뷰 완전 분석 #3
[Cs study] 코딩인터뷰 완전 분석 #3
 
[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2[Cs study] 코딩인터뷰 완전 분석 #2
[Cs study] 코딩인터뷰 완전 분석 #2
 
[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석[Cs study] 코딩인터뷰 완전 분석
[Cs study] 코딩인터뷰 완전 분석
 
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이[데브루키_언리얼스터디_0525] 애니메이션 노티파이
[데브루키_언리얼스터디_0525] 애니메이션 노티파이
 
[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐[데브루키] 이벤트 드리븐 아키텍쳐
[데브루키] 이벤트 드리븐 아키텍쳐
 
[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR[데브루키 언리얼 스터디] PBR
[데브루키 언리얼 스터디] PBR
 
[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT[데브루키 언리얼 스터디] 스터디 안내 OT
[데브루키 언리얼 스터디] 스터디 안내 OT
 
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
[데브루키/페차쿠차] 유니티 프로파일링에 대해서 알아보자.
 
[데브루키] Color space gamma correction
[데브루키] Color space gamma correction[데브루키] Color space gamma correction
[데브루키] Color space gamma correction
 
유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick유니티 팁&트릭 Unity Tip & Trick
유니티 팁&트릭 Unity Tip & Trick
 
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
Live2D with Unity - 그녀들을 움직이게 하는 기술 (알콜코더 박민근)
 
[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법[RAPA/C++] 1. 수업 내용 및 진행 방법
[RAPA/C++] 1. 수업 내용 및 진행 방법
 
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용 [Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
[Unite17] 유니티에서차세대프로그래밍을 UniRx 소개 및 활용
 
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
유니티의 툰셰이딩을 사용한 3D 애니메이션 표현
 
[Pl in c++] 11. chapter
[Pl in c++] 11. chapter[Pl in c++] 11. chapter
[Pl in c++] 11. chapter
 

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

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