using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study0121
{
class App
{
//생성자
public App()
{
Console.WriteLine("App 생성자");
//탱크를 생성하고
SiegeTank tank = new SiegeTank();
tank.damage = 30; //tank의 damage는 siegetank 맴버 변수에서 할당된 damage
tank.modeType = SiegeTank.ModeType.Tank;
//탱크 생성완료
Console.WriteLine(tank.damage); //30
Console.WriteLine(tank.modeType); //Tank
tank.Move();
tank.ChangeMode();
tank.ChangeMode();
tank.ChangeMode(); //시즈모드
tank.Move();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study0121
{
class SiegeTank
{
public enum ModeType
{
Tank,
Siege
}
public ModeType modeType;
public int damage;
//생성자
public SiegeTank()
{
this.modeType = ModeType.Tank;
}
//모드 변경
public void ChangeMode()
{
//현재 모드가 탱크 모드라면 공성모드로
//공성모드라면 탱크 모드로 변경
if(this.modeType == ModeType.Tank)
{
this.modeType = ModeType.Siege;
this.damage = 70;
}
else
{
this.modeType = ModeType.Tank;
this.damage = 30;
}
Console.WriteLine("현재모드 : {0}, 공격력 : {1}", this.modeType, damage);
//공성모드일경우 공격력 : 70
//탱크모드일경우 공격력 : 30
Console.WriteLine();
}
public void Move()
{
//공성모드일경우 이동불가
//탱크모드일경우 이동가능
if (this.modeType == ModeType.Tank)
{
Console.WriteLine("이동했습니다.");
}
else
{
Console.WriteLine("이동할수 없습니다.");
}
Console.WriteLine();
}
}
}