using System;
namespace LearnDotnet
{
internal class Program
{
static void Main(string[] args)
{
//new키워드: App클래스의 인스턴스 생성하고 생성자 호출
new App();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class App
{
//생성자
public App()
{
Marine marine = new Marine(40, 6, 1.875f, 5, 0);
//Zergling zergling = new Zergling(35, 5, 2.612f);
//zergling.PrintProperties();
//zergling.Move();
//zergling.Die();
//마린이 저글링 공격
//marine.Attack(zergling);
Medic medic = new Medic(60, 5.86f, 1.875f);
medic.Heal(marine);
//medic.PrintProperties();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Marine
{
//멤버변수: 객체의 생명주기동안 유지
int hp;
int damage;
float moveSpeed;
int x;
int y;
//생성자
public Marine(int hp, int damage, float moveSpeed, int x, int y)
{
this.hp = hp;
this.damage = 6;
this.moveSpeed = 1.875f;
this.x = x;
this.y = y;
Console.WriteLine("마린이 생성되었습니다.");
}
//이동하다
public void Move(int x, int y) //이동목표 좌표
{
//(5,0) > (x,y)로 이동했습니다.
Console.WriteLine("");
}
//생명력을 반환하는 메서드
public int GetHp()
{
//반환하고 싶은 값
return this.hp;
}
public int GetDamage()
{
return this.damage;
}
public float GetMoveSpeed()
{
return this.moveSpeed;
}
//저글링을 공격하다
public void Attack(Zergling target)
{
Console.WriteLine("{0}을 공격했습니다.", target);
target.HitDamage(this, this.damage); //공격력 만큼 피해를받는 메서드
}
//피해를 받는 메서드
public void HitDamage()
{
}
//치료를 받는 메서드
public void HpHeal(Medic medic, float heal)
{
Console.WriteLine("");
this.hp += (int)heal;
Console.WriteLine("마린이 치료를 {0} 받았습니다. 생명력: {1}",heal,this.hp);
}
//상태출력
public void PrintProperties()
{
Console.WriteLine("생명력: {0}", this.hp);
Console.WriteLine("생명력: {0}", this.damage);
Console.WriteLine("생명력: {0}", this.moveSpeed);
Console.WriteLine("위치: {0},{1}", this.x, this.y);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Zergling
{
int hp;
int damage;
float moveSpeed;
int x;
int y;
public Zergling(int hp, int damage, float moveSpeed)
{
this.hp = hp;
this.damage = damage;
this.moveSpeed = moveSpeed;
Console.WriteLine("저글링이 생성되었습니다.");
}
//이동하다
public void Move()
{
Console.WriteLine("이동했습니다.");
}
//공격하다
public void Attack()
{
Console.WriteLine("공격했습니다.");
}
//사망하다
public void Die()
{
Console.WriteLine("사망했습니다.");
}
//피해를 받는 메서드
public void HitDamage(Marine marine, int damage)
{
Console.WriteLine("공격자: {0}", marine);
this.hp -= damage;
Console.WriteLine("피해{0}를 받았습니다. 생명력: {1}", damage, this.hp);
}
//좌표설정 메서드
public void SetPosition(int x, int y)
{
this.x = x;
this.y = y;
Console.WriteLine("");
}
//상태출력
public void PrintProperties()
{
Console.WriteLine("생명력: {0}",hp);
Console.WriteLine("공격력: {0}", damage);
Console.WriteLine("이동속도: {0}", moveSpeed);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LearnDotnet
{
internal class Medic
{
int hp;
float heal;
float moveSpeed;
public Medic(int hp, float heal, float moveSpeed)
{
this.hp = hp;
this.heal = heal;
this.moveSpeed = moveSpeed;
}
//정지
public void MoveStop()
{
Console.WriteLine("정지했습니다.");
}
//걷기
public void Move()
{
Console.WriteLine("이동했습니다.");
}
public void Heal(Marine target)
{
target.HpHeal(this, this.heal);
}
//상태출력
public void PrintProperties()
{
Console.WriteLine("생명력: {0}", this.hp);
Console.WriteLine("생명력: {0}", this.heal);
Console.WriteLine("생명력: {0}", this.moveSpeed);
}
}
}