일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 개발
- 유니티 GUI
- 드래곤 플라이트
- 포트폴리오
- 유니티
- CGV
- Oculus
- meta xr
- 앱 배포
- 연습
- input system
- 드래곤 플라이트 모작
- 오브젝트 풀링
- Photon Fusion
- 오큘러스
- meta
- VR
- 팀프로젝트
- HAPTIC
- 유니티 UI
- OVR
- 개발일지
- 유니티 Json 데이터 연동
- 팀 프로젝트
- ChatGPT
- XR
- 모작
- 길건너 친구들
- 멀티플레이
- 가상현실
Archives
- Today
- Total
EasyCastleUNITY
스타크래프트 테란 커맨드센터/SCV/SiezeTank(OOP 및 클래스 연습) 본문
TerranCommandCenter
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class TerranCommandCenter
{
//열거형식 정의
enum eState
{
Land,Liftoff
}
//멤버 변수(데이터)
int maxHp = 1500;
int hp;
eState state; //상태
//생성자 메서드
public TerranCommandCenter()
{
state = eState.Land;
hp = maxHp;
Console.WriteLine("커맨드 센터가 생성되었습니다.({0}/{1})",this.hp,this.maxHp);
Console.WriteLine("state: {0}", state);
Console.WriteLine("--------------");
}
//멤버 메서드(기능)
public void Liftoff()
{
if (state == eState.Land)
{
Console.WriteLine("커맨드 센터가 올라갑니다.");
state = eState.Liftoff;
}
else
{
Console.WriteLine("커맨드 센터가 올라갈수 없습니다.");
}
}
public void Land()
{
if (state == eState.Liftoff)
{
Console.WriteLine("커맨드 센터가 내려왔습니다.");
state = eState.Land;
}
else
{
Console.WriteLine("커맨드 센터가 내려갈수 없습니다.");
}
}
}
}
TerranSCV
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class TerranSCV
{
//멤버 변수(데이터)
int maxHp = 60;
int hp;
int damage ;
int armor ;
//생성자 메서드
public TerranSCV()
{
hp = maxHp;
damage = 6;
armor = 0;
Console.WriteLine("SCV가 생성되었습니다.");
Console.WriteLine("체력: {0}/{1}", hp, maxHp);
Console.WriteLine("공격력:{0}",damage);
Console.WriteLine("방어력:{0}",armor);
Console.WriteLine("--------------");
}
//멤버 메서드(기능)
public void Move()
{
Console.WriteLine("SCV가 이동합니다");
}
}
}
TerranSiegeTank
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class TerranSiegeTank
{
enum eState
{
TankMode,SiezeMode
}
//멤버 변수(데이터)
int maxHp = 150;
int hp;
int siezeAttack = 70;
int tankAttack = 30;
int tankDamage;
eState state;
//생성자
public TerranSiegeTank()
{
state= eState.TankMode;
hp = maxHp;
tankDamage = tankAttack;
Console.WriteLine("시즈탱크가 생성되었습니다 ({0}/{1}) 현재 공격력:{2}",hp,maxHp,tankDamage);
Console.WriteLine("현재 {0} 입니다.",state);
Console.WriteLine("--------------");
}
//멤버 메서드
public void Move()
{
if (state == eState.TankMode)
{
Console.WriteLine("시즈 탱크가 이동했습니다.");
}
else
{
Console.WriteLine("{0}에서는 이동할 수 없습니다.",eState.SiezeMode);
}
}
public void ChangeToSeizeMode()
{
state = eState.SiezeMode;
tankDamage = siezeAttack;
Console.WriteLine("모드를 변경했습니다. {0} -> {1}", eState.TankMode, eState.SiezeMode);
Console.WriteLine("공격력 {0} -> {1} 변경되었습니다.", tankAttack, siezeAttack);
Console.WriteLine("현재 {0} 입니다.", state);
}
public void ChangeToTankMode()
{
state = eState.TankMode;
tankDamage = tankAttack;
Console.WriteLine("모드를 변경했습니다. {1} -> {0}", eState.TankMode, eState.SiezeMode);
Console.WriteLine("공격력 {1} -> {0} 변경되었습니다.", tankAttack, siezeAttack);
Console.WriteLine("현재 {0} 입니다.", state);
}
}
}
App
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class App
{
//생성자
public App()
{
Console.WriteLine("================커맨드센터 출력====================");
TerranCommandCenter terranCommandCenter = new TerranCommandCenter();
terranCommandCenter.Liftoff();
terranCommandCenter.Liftoff();
terranCommandCenter.Land();
terranCommandCenter.Land();
terranCommandCenter.Land();
Console.WriteLine("================SCV 출력====================");
TerranSCV terranSCV = new TerranSCV();
terranSCV.Move();
Console.WriteLine("================SiegeTank 출력====================");
TerranSiegeTank terranSiegeTank = new TerranSiegeTank();
terranSiegeTank.ChangeToSeizeMode();
terranSiegeTank.Move();
terranSiegeTank.ChangeToTankMode();
terranSiegeTank.Move();
Console.WriteLine("--------------");
}
}
}
Program
using System;
namespace LearnDotnet
{
internal class Program
{
static void Main(string[] args)
{
new App(); //new: 클래스의 인스턴스를 생성하고 생성자를 호출
}
//매개변수를 받는 메서드
//매개변수를 받고 값을 반환하는 메서드
//매개변수가 없지만 값을 반환하는 메서드
}
}
결과
'C#프로그래밍' 카테고리의 다른 글
2023/07/24- 클래스 및 메서드 활용 (0) | 2023.07.24 |
---|---|
플레이어,무기,몬스터 (OOP 연습 및, 반환값, 매개변수 연습) (0) | 2023.07.21 |
switch if 문 (0) | 2023.07.21 |
2023/07/20 도전문제 모음 (0) | 2023.07.20 |
2023/07/20 퀴즈 13번 (0) | 2023.07.20 |