수업전 질문
•Component가 변수일 수도 있고, 함수일 수도 있는지가 궁금하고,
Component와 Class에서 사용하는 멤버변수와 멤버함수를 구별해야 하는
지 궁금합니다~!
혹시 ppt자료도 올려주실 수 있나요???
와우에서는 플레이어가 인벤토리 대신에 가방을 들고 있는데요, 이 가방
이 인벤토리역할 말고도 닫아서 아이템처럼 다른 가방에도 들어갈 수 있
는데, 이런 것은 어떤 방식으로 구현이 되는건가요?
class Item
{
};...
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"
#incl...
class Player
배 객체들을 가지고 있다
•Aircraft, Battleship, Cruiser, Destroyer(x2)
내 배들을 배치한다.
상대방의 공격에 피격 체크 결과를 알려준다.
맵 객체들을 가지고 있...
class Player
내 배들을 배치한다.
/// 게임을 진행하는 플레이어 클래스
class Player
{
public:
Player();
~Player();
void SetupShips();
void Player:...
class Player
내 배들을 배치한다.
• 랜덤한 위치와, 랜덤한 방향으로 배치한다.
• 배의 위치는 맵의 제한(8x8)을 넘어서면 안된다.
• 배의 위치는 서로 겹치면 안된다.
class Player
내 배들을 배치한다.
1. 우선은 수동 배치 부터 해보자.
2. 일단은 Aircraft만 배치 해보자.
class Ship
{
public:
void AddPosition(Position pos);
class Player
내 배들을 배치한다.
1. 우선은 수동 배치 부터 해보자.
2. 일단은 Aircraft만 배치 해보자.
void Player::SetupShips()
{
// 가지고 있는 배들을 배치한다
// 우...
함수 오버로딩
• 함수 이름은 같으나, 인자가 다른 별개의 함수
• 들어오는 인자에 따라서, 어떤 함수가 호출될지 결정된다. (함수의 다형성!)
class Ship
{
public:
void AddPosition(Pos...
함수 오버로딩 void Player::SetupShips()
{
// 가지고 있는 배들을 배치한다
// 우선은 수동 배치
Position pos;
pos.x = 'c';
pos.y = '3';
m_Aircraft.Add...
함수 오버로딩
void Ship::AddPosition(Position pos)
{
for (int i = 0; i < m_Hp; ++i)
{
if (m_Pos[i].x == 0)
{
m_Pos[i] = pos;
bre...
class Player
내 배들의 위치를 출력하자.
int _tmain(int argc, _TCHAR* argv[])
{
Player player;
player.SetupShips();
player.PrintShips(...
class Player
내 배들의 위치를 출력하자.
void Player::PrintShips()
{
m_Aircraft.Print();
m_Battleship.Print();
m_Cruiser.Print();
m_De...
과제
STL의 Vector, List, Map의 사용법에
대해서 학습하고, 샘플을 제작하여 발
표하여라.
(~8.4)
수업후 질문
[Pl in c++] 9. battleship game 4
[Pl in c++] 9. battleship game 4
[Pl in c++] 9. battleship game 4
[Pl in c++] 9. battleship game 4
Upcoming SlideShare
Loading in …5
×

[Pl in c++] 9. battleship game 4

922 views

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
922
On SlideShare
0
From Embeds
0
Number of Embeds
52
Actions
Shares
0
Downloads
8
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

[Pl in c++] 9. battleship game 4

  1. 1. 수업전 질문
  2. 2. •Component가 변수일 수도 있고, 함수일 수도 있는지가 궁금하고, Component와 Class에서 사용하는 멤버변수와 멤버함수를 구별해야 하는 지 궁금합니다~!
  3. 3. 혹시 ppt자료도 올려주실 수 있나요???
  4. 4. 와우에서는 플레이어가 인벤토리 대신에 가방을 들고 있는데요, 이 가방 이 인벤토리역할 말고도 닫아서 아이템처럼 다른 가방에도 들어갈 수 있 는데, 이런 것은 어떤 방식으로 구현이 되는건가요? class Item { }; class Inventory : public Item { public: Item m_Items[32]; }; Item innerWear; Item pants; Inventory bag1; Inventory bag2; bag1.m_Items[0] = innerWear; bag1.m_Items[1] = pants; bag2.m_Items[0] = bag1;
  5. 5. class Player 배 객체들을 가지고 있다 •Aircraft, Battleship, Cruiser, Destroyer(x2) 내 배들을 배치한다. 상대방의 공격에 피격 체크 결과를 알려준다. 맵 객체들을 가지고 있다. 상대방을 공격 한다.
  6. 6. class Player 배 객체들을 가지고 있다 •Aircraft, Battleship, Cruiser, Destroyer(x2) 내 배들을 배치한다. 상대방의 공격에 피격 체크 결과를 알려준다. 맵 객체들을 가지고 있다. 상대방을 공격 한다.
  7. 7. #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]; };
  8. 8. class Player 배 객체들을 가지고 있다 •Aircraft, Battleship, Cruiser, Destroyer(x2) 내 배들을 배치한다. 상대방의 공격에 피격 체크 결과를 알려준다. 맵 객체들을 가지고 있다. 상대방을 공격 한다.
  9. 9. class Player 내 배들을 배치한다. /// 게임을 진행하는 플레이어 클래스 class Player { public: Player(); ~Player(); void SetupShips(); void Player::SetupShips() { // 가지고 있는 배들을 배치한다 }
  10. 10. class Player 내 배들을 배치한다. • 랜덤한 위치와, 랜덤한 방향으로 배치한다. • 배의 위치는 맵의 제한(8x8)을 넘어서면 안된다. • 배의 위치는 서로 겹치면 안된다.
  11. 11. class Player 내 배들을 배치한다. 1. 우선은 수동 배치 부터 해보자. 2. 일단은 Aircraft만 배치 해보자. class Ship { public: void AddPosition(Position pos);
  12. 12. class Player 내 배들을 배치한다. 1. 우선은 수동 배치 부터 해보자. 2. 일단은 Aircraft만 배치 해보자. void Player::SetupShips() { // 가지고 있는 배들을 배치한다 // 우선은 수동 배치 Position pos; pos.x = 'c'; pos.y = '3'; m_Aircraft.AddPosition(pos); pos.x = 'c'; pos.y = '4'; m_Aircraft.AddPosition(pos); pos.x = 'c'; pos.y = '5'; m_Aircraft.AddPosition(pos); pos.x = 'c'; pos.y = '6'; m_Aircraft.AddPosition(pos); pos.x = 'c'; pos.y = '7'; m_Aircraft.AddPosition(pos); }
  13. 13. 함수 오버로딩 • 함수 이름은 같으나, 인자가 다른 별개의 함수 • 들어오는 인자에 따라서, 어떤 함수가 호출될지 결정된다. (함수의 다형성!) class Ship { public: void AddPosition(Position pos); void AddPosition(char x, char y); void Ship::AddPosition(Position pos) { for (int i = 0; i < m_Hp; ++i) { if (m_Pos[i].x == 0) { m_Pos[i] = pos; break; } } } void Ship::AddPosition(char x, char y) { // 별개의 함수로 구현 }
  14. 14. 함수 오버로딩 void Player::SetupShips() { // 가지고 있는 배들을 배치한다 // 우선은 수동 배치 Position pos; pos.x = 'c'; pos.y = '3'; m_Aircraft.AddPosition(pos); pos.x = 'c'; pos.y = '4'; m_Aircraft.AddPosition(pos); pos.x = 'c'; pos.y = '5'; m_Aircraft.AddPosition(pos); pos.x = 'c'; pos.y = '6'; m_Aircraft.AddPosition(pos); pos.x = 'c'; pos.y = '7'; m_Aircraft.AddPosition(pos); } void Player::SetupShips() { // 가지고 있는 배들을 배치한다 // 우선은 수동 배치 m_Aircraft.AddPosition('c', '3'); m_Aircraft.AddPosition('c', '4'); m_Aircraft.AddPosition('c', '5'); m_Aircraft.AddPosition('c', '6'); m_Aircraft.AddPosition('c', '7'); }
  15. 15. 함수 오버로딩 void Ship::AddPosition(Position pos) { for (int i = 0; i < m_Hp; ++i) { if (m_Pos[i].x == 0) { m_Pos[i] = pos; break; } } } void Ship::AddPosition(char x, char y) { Position pos; pos.x = x; pos.y = y; AddPosition(pos); }
  16. 16. class Player 내 배들의 위치를 출력하자. int _tmain(int argc, _TCHAR* argv[]) { Player player; player.SetupShips(); player.PrintShips(); getchar(); return 0; }
  17. 17. class Player 내 배들의 위치를 출력하자. void Player::PrintShips() { m_Aircraft.Print(); m_Battleship.Print(); m_Cruiser.Print(); m_Destroyer[0].Print(); m_Destroyer[1].Print(); } void Ship::Print() { std::string strPrint; strPrint = m_Name; strPrint += " : "; for (int i = 0; i < m_Hp; ++i) { strPrint += m_Pos[i].x; strPrint += m_Pos[i].y; strPrint += " "; } std::cout << strPrint << std::endl; }
  18. 18. 과제 STL의 Vector, List, Map의 사용법에 대해서 학습하고, 샘플을 제작하여 발 표하여라. (~8.4)
  19. 19. 수업후 질문

×