아카이브

마린 저글링 메딕 본문

C#프로그래밍

마린 저글링 메딕

timbercat 2023. 7. 24. 12:07
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);
        }
    }
}

'C#프로그래밍' 카테고리의 다른 글

배열 연습2  (0) 2023.07.24
배열 연습1  (0) 2023.07.24
영웅 클래스  (1) 2023.07.21
과일 클래스  (0) 2023.07.21
스타크래프트 SCV  (0) 2023.07.21