신입 개발자 공부 과정

마린 vs 저글링 C# 공격 과제 본문

C#/수업 내용

마린 vs 저글링 C# 공격 과제

Lewisjkim 2021. 12. 28. 19:41

문제:

Unit
----------------
Attack
Hit

Marine
----------------
Attack : 공격
Hit : 피를 흘리면서 (빨간색)
​​
Zergling
----------------
Attack : 공격
Hit : 피를 흘리면서 (녹색)

 

프로그램

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Marine marine = new Marine("임꺽정");
            Zergling zergling = new Zergling("홍길동");
            marine.Attack(zergling);
            zergling.Attack(marine);
        }
    }
}

유닛

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApp1
{
    class Unit
    {
        public string name;
        
        public Unit(string name)
        {
            this.name = name;
        }

        public virtual void Attack(Unit target)
        {

        }

        public virtual void Hit(Unit sender)
        {

        }
    }
}

마린

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApp1
{
    
    class Marine : Unit
    {
        
        public Marine(string name) : base(name)
        {
            
        }

        public override void Attack(Unit target)
        {
            Console.WriteLine("{0}이(가) {1}을(를) 공격 했습니다.", this.name, target.name);
            target.Hit(this);
        }

        public override void Hit(Unit sender)
        {
            Console.WriteLine("{0}이(가) {1}에게 공격 당했습니다.(빨간 피를 흘리고 있습니다.)", sender.name, this.name);
        }


    }
}

 

저글링

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApp1
{

    class Zergling : Unit
    {
        
        public Zergling(string name): base(name)
        {
            
        }

        public override void Attack(Unit target)
        {
            Console.WriteLine($"{this.name}이(가) {target.name}을(를) 공격합니다.");
            target.Hit(this);
        }

        public override void Hit(Unit sender)
        {
            //Console.WriteLine($"Hello, {name}! Today is {date.DayOfWeek}, it's {date:HH:mm} now.");
            Console.WriteLine($"{this.name}이(가) {sender.name}에게 공격 당했습니다. (녹색 피를 흘립니다.)");
        }
    }
}

결과: