SCV
-------
+속성
생명력
공격력
이동속도
------
+기능
이동하다
자원을 채취하다
======
[요구사향]
SCV를 생성하고
이동시키고
자원을 채취하게 만들어주세요
Vulture(벌쳐)
--------
+속성
생명력 80
공격력 20
이동속도 3.126
-------
+기능
이동하다
공격하다
거미지뢰를 매설(3/3)
죽다
App class
using System;
namespace Study03
{
class App
{
//생성자
public App()
{
//SCV scv;
//Console.WriteLine(scv.name); -->오류! scv가 null이어서 x . null에서 참조하려고 했기 때문!!
SCV scv1 = new SCV(); //지역변수는 무조건 초기화
SCV scv2 = new SCV(); //지역변수는 무조건 초기화
scv1.hp = 60;
scv1.damage = 5;
scv1.v = 2.344f;
Console.WriteLine(scv1); //인스턴스
Console.WriteLine(scv1.hp); //인스턴스의 멤버변수 참조
Console.WriteLine(scv1.damage);
Console.WriteLine(scv1.v);
scv1.Move();
scv1.Get();
Vulture vulture = new Vulture();
vulture.hp = 80;
vulture.damage = 20;
vulture.v = 3.126f;
Console.WriteLine(vulture.hp);
Console.WriteLine(vulture.damage);
Console.WriteLine(vulture.v);
vulture.Move();
vulture.Attack();
vulture.Die();
SpiderMine mine0 = new SpiderMine();
SpiderMine mine1 = new SpiderMine();
SpiderMine mine2 = new SpiderMine();
vulture.mine0 = mine0;
vulture.mineNow++;
Console.WriteLine("mine:{0}", vulture.mineNow);
vulture.mine1 = mine1;
vulture.mineNow++;
Console.WriteLine("mine:{0}", vulture.mineNow);
vulture.mine2 = mine2;
vulture.mineNow++;
Console.WriteLine("mine:{0}", vulture.mineNow);
vulture.InstallMine();
vulture.InstallMine();
vulture.InstallMine();
vulture.InstallMine();
}
}
}
SCV class
using System;
namespace Study03
{
class SCV
{
public int hp;
public int damage;
public float v;
//생성자
public SCV()
{
Console.WriteLine("SCV 생성자");
}
public void Move()
{
Console.WriteLine("이동하였습니다.");
}
public void Get()
{
Console.WriteLine("자원을 획득하였습니다. ");
}
}
}
Vulture class
using System;
namespace Study03
{
class Vulture
{
const int MAX_MINE_COUNT = 3;
//멤버 변수
public int hp;
public int damage;
public float v;
public SpiderMine mine0;
public SpiderMine mine1;
public SpiderMine mine2;
public int mineNow = 0;
//생성자
public Vulture()
{
Console.WriteLine("Vulture 생성자");
}
//멤버 메서드
public void Move()
{
this.v = 3.126f;
Console.WriteLine("이동하였습니다. ");
}
public void Attack()
{
Console.WriteLine("공격하였습니다. ");
}
public void Die()
{
Console.WriteLine("죽었습니다. ");
}
public void InstallMine()
{
if (mine0 != null)
{
mine0 = null;
--mineNow;
Console.WriteLine("mine0을 설치하였습니다. ({0}/{1})", mineNow, MAX_MINE_COUNT);
}
else if (mine1 != null)
{
mine1 = null;
--mineNow;
Console.WriteLine("mine1을 설치하였습니다. ({0}/{1})", mineNow, MAX_MINE_COUNT);
}
else if (mine2 != null)
{
--mineNow;
mine2 = null;
Console.WriteLine("mine2을 설치하였습니다. ({0}/{1})", mineNow, MAX_MINE_COUNT);
}
else
{
Console.WriteLine("mine이 없습니다.");
}
}
}
}
SpiderMine class
using System;
namespace Study03
{
class SpiderMine
{
//생성자
public SpiderMine()
{
Console.WriteLine("SpiderMine 이 생성되었습니다");
}
}
}
//컨트롤 + K + C : 주석 (comment) : 컴파일 과정에서 해석되지 않음
using System;
namespace Study03
{
class Program
{
static void Main(string[] args) //프로그램이 실행되면 최초 실행되는 Main메서드(진입 지점)
{
App app = new App();
}
}
}
'C# > 수업내용' 카테고리의 다른 글
[C# 6일차] Method return 연습_StarCraft Templer to Archon (0) | 2023.01.06 |
---|---|
[C# 6일차] Method의 return 연습 (0) | 2023.01.06 |
[C# 5일차] Starcraft Larva-Hydralisk-Lurker 진화 (0) | 2023.01.05 |
[C# 5일차] Class 복습과 활용_Starcraft SiegeTank 모드 변환 (0) | 2023.01.05 |
[C# 5일차] Class 복습과 활용_Starcraft Marine과 Medic (1) | 2023.01.05 |