> App.cs
더보기
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _20200413
{
class App
{
public App()
{
Factory factory = new Factory();
SiegeTank siegeTank = factory.CreateSiegeTank();
siegeTank.CreateTank();
siegeTank.Move();
siegeTank.SiegeMode();
siegeTank.Move();
siegeTank.UnSiegeMode();
siegeTank.Move();
}
}
}
> SiegeTank.cs
더보기
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _20200413
{
enum eAttactMode { TankMode, SizeMode }
class SiegeTank
{
eAttactMode attactMode;
public SiegeTank()
{
this.attactMode = eAttactMode.TankMode;
}
public SiegeTank CreateTank()
{
SiegeTank siegeTank = new SiegeTank();
Console.WriteLine("시즈탱크 생성");
return siegeTank;
}
public void SiegeMode()
{
this.attactMode = eAttactMode.SizeMode;
Console.WriteLine("시즈모드로 변경했습니다.");
}
public void UnSiegeMode()
{
this.attactMode = eAttactMode.TankMode;
Console.WriteLine("탱크모드로 변경했습니다.");
}
public void Move()
{
if (this.attactMode != eAttactMode.SizeMode)
{
Console.WriteLine("시즈탱크가 이동합니다.");
}
else
{
Console.WriteLine($"{this.attactMode}에서는 이동할수 없습니다.");
}
}
}
}
> 강사님코드 - 모드변경 한곳에서 처리
더보기
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study_008
{
class Factory
{
//생성자
public Factory()
{
Console.WriteLine("팩토리가 생성되었습니다.");
}
//시즈탱크 생성
public SiegeTank CreateSiegeTank()
{
return new SiegeTank();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Study_008
{
public enum eAttackMode
{
TankMode, SiegeMode
}
class SiegeTank
{
public eAttackMode attackMode;
//생성자
public SiegeTank()
{
Console.WriteLine("시즈탱크가 생성되었습니다.");
this.attackMode = eAttackMode.TankMode;
}
//이동
public void Move()
{
if (this.attackMode == eAttackMode.TankMode)
{
Console.WriteLine("이동 합니다.");
}
else if ( this.attackMode == eAttackMode.SiegeMode)
{
Console.WriteLine("{0}에서는 이동 할수 없습니다.", this.attackMode);
}
}
//모드 변환
public eAttackMode ChangeAttackMode()
{
eAttackMode prevMode = this.attackMode;
if (this.attackMode == eAttackMode.SiegeMode)
{
this.attackMode = eAttackMode.TankMode;
}
else
{
this.attackMode = eAttackMode.SiegeMode;
}
Console.WriteLine("{0} -> {1}", prevMode, this.attackMode);
return this.attackMode;
}
}
}
'c# 강의 > 과제' 카테고리의 다른 글
20200414 - 테란~아카데미까지 (0) | 2020.04.14 |
---|---|
20200413 - 슈팅 게임 (0) | 2020.04.13 |
20200410 - 주말 과제 (0) | 2020.04.12 |
20200409 - Enum 활용(강화 기능) (0) | 2020.04.10 |
20200409 - while,switch(장비 착용,해제,습득,삭제 등 분기처리) (0) | 2020.04.09 |