Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

객체지향 프로그래밍(LoL 가상 대결)

No description
by

Cheon YoungMo

on 1 June 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of 객체지향 프로그래밍(LoL 가상 대결)

Class
(LoL) 5/7 클래스기초
class Champ_Record
{
private
:

char Champ_name;
void Select_Champ();

public
:

int
Champ_hp;
int
Champ_mp;
void
Value_Champ_Power();
void
Battle_Cal();

void
set_Hp()
{Champ_HP=10;}
void
set_Mp()
{Champ_Mp=10;}
}
;
접근 지정자
클래스 이름
맴버 함수
[프로토타입]
int
main()
{

int
Select_Num;

Champ_Record
Player_1;
Champ_Record
Player_2;
//CUP


Player1.set_Hp();
Player1.set_Mp();

cout<<
"League of Legends Battle"
<<endl;
cout<<
"Select Your Champ!(1 to 3) "
;
cin>>Select_Num;

Player1.Select_Champ(Select_Num);
Player1.Select_Champ(2);

return
0;
}
Champ_Record의 객체 생성
void
Champ_Record
::
Select_Champ(
int
Select_num);
{
string Champ[3];

Champ[0]="애쉬";
Champ[1]="신짜오";
Champ[2]="탈론";


switch
(Select_num)
{

case
0:
cout<<
"당신의 챔프는 애쉬입니다."
<<endl;
break
;
case
1:
cout<<
"당신의 챔프는 신짜오입니다."
<<endl;
break
;
case
2:
cout<<
"당신의 챔프는 탈론입니다."
<<endl;
break
;
defult
:
cout<<
"!챔프 선택오류!"
<<endl;
}
}
범위지정 연산자
(일반 전역변수와 구분)
Class
(LoL) 5/10 헤더파일 모듈화
(LoL) 5/14 프렌드 함수
Class
class

Champ_Record

{
.
.
.

클래스 정의

friend void
Battle_Cal();
};
프렌드 함수 선언
void
Battle_Cal()
{

Champ_Record
Player,CPU

Player.Power=(item1)*(avility1);
Player.Def==(item2)*(avility2);

CPU.Power=(item1)*(avility1);
CPU.Def==(item2)*(avility2);


}
접근 지정자 불필요
새로운 객체 필요
Class
(LoL) 5/21 생성자
5. class (LoL)5/31 정적변수,함수(static)
int

main(){
Item_Shop
Player1_item(2000);

while
(Player1_item.Money>0)
{
cout<<
"Item Select(1->Wepon,2->Armour): "
;
cin>>Player1_Item;
cout<<endl;
Player1_item.Item_buy(Player1_Item);
}
}
class
Item_Shop
{
private:
int
Item_num,Select;
public:
int
Money;

Item_Shop(
int
a)
{Money=a;}

Item_Shop()
{Money=2000;}

void
Item_buy(
int
Item_num);
};
6.class (LoL)6/04 개체 상속
Private 맴버 변수 사용 가능
생성자(Class 이름과 같다)
객체 생성시 자동 호출
Private 맴버 변수 접근함수
오버로딩 및 디폴트 값

class
Champ_Record
{
private
:
static int
Champ_Hp;
static int
Champ_Mp;

.

.

.
protected
:
static void
Battle_Cal();
};

int
Champ_Record::Champ_Hp=10;
int
Champ_Record::Champ_Mp=10;
정적 변수 선언
정적 함수 선언
클래스 외부에서 초기화
class
Item_Shop
:
public
Champ_Record
{
public
:
void
Item_buy(
int
Item_num);
}
void
Item_Shop
::Item_buy(
int
Item_num)
{
switch
(Item_num)
{
case
1:cout<<
"Wepon 1)Doran's Sword 2)Doran's Ring :"
;

cin>>Select;

if
(Select==1){

Money-=500;
cout<<
"Remain Money:"
<<Money<<endl;
Champ_Power+=3;
cout<<
"Champ_Power:"
<<Champ_Power<<endl;
}
Champ_Record 를 부모로 상속
부모 클래스의 Champ_Power 맴버 변수 사용
class
Champ_Record
{
private
:
static int
Champ_Hp;
static int
Champ_Mp;
public
:
void
Select_Champ(
int
Select_num);
protected
:
int
Champ_Power;
int
Champ_Def;
void
Champ_Abil();
virtual void
Battle_Cal(
const int
&a,
const int
&b);

void
setAbil()
{Champ_Power=10;Champ_Def=10;}
};
가상함수
8.class 추상 클래스
7.class (LOL)가상 함수


class
유저
{
public
:
유저()
{
cout<<
"ID를 만듭니다"
<<endl;
}
virtual void
계정유형()=0;
};

class
일반유저
:
public
유저
{
public
:
일반유저(){
cout<<
"ID를 생성합니다"
<<endl;
}
virtual
~일반유저(){
cout<<
"일반유저 ID를 삭제합니다"
<<endl;
}
virtual void
계정유형(){
cout<<
"생성된 ID를 DB에 저장"
<<endl;
}
};

void
main()
{
유저* N유저=
new
일반유저;
N유저->계정유형();
delete
N유저;

cout<<endl;

N유저=
new
운영자;
N유저->계정유형();
delete
N유저;
cout<<endl;
}


추상클래스 생성
추상 클래스 상속 받음
9.class (LoL) 순수가상함수
class
GameEnd
{
public
:
virtual int
Exit(
int
exit)=0{
cout<<
"게임을 계속 ->0이외의 수 입력"
<<endl;
}
};

class
INPUT:
public

GameEnd
{
public
:
virtual int
Exit(
int
exit){
GameEnd
::Exit(
int
exit);
if
(exit==0)
return
0;
else
cout<<
"게임을 계속합니다"
<<endl;
}
};

void
main()
{
INPUT
s;
int
exit;

cout<<
"Continue -> Input Any Num\nExit -> Num 0 Input\n"
;
cin>>exit;

s.Exit(exit);
}
순수 가상함수
자식 클래스에서 내용 구현
1.
2.
3.
4.
객체 지향 프로그래밍
자신만의 클래스 만들기

20124892
컴퓨터 공학부
천영모

프로그램 설명

온라인 게임 Leage of Legend 의 등장 케릭터들을
이용하여 Player가 아이템 구매를 통해 능력치를
상승시켜서 CUP의 케릭터와 대결을 하는 프로그램

간단한 알고리즘

원래대로 구현하려고 했던 프로그램은 구현 할 수 없었지만 많은 공부를 할 수 있었던 과제였습니다.
한 학기동안 수고하셨습니다.

본래 프로그램 작동 화면
Full transcript