게임 알고리즘

오늘의과제(20240813)_SiegeTank

hanui1210 2024. 8. 13. 18:10

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Hero
{
    public class App
    {
        //생성자
       public App()
        {
            SiegeTank tank = new SiegeTank(30, 70); //기본공격력, 체력
            tank.Move(3, 4, this.MoveComplete);
            tank.onChangeMode = this.ChangModeCopleteHandler;
            tank.ChangeMode(this.ChangModeCopleteHandler); // 시즈모드면 => 탱크모드로, 탱크모드면 => 시즈모드로
            tank.Move(1, 2, this.MoveComplete);

        }

        public void MoveComplete()
        {
            Console.WriteLine("탱크이동완료");
            Console.WriteLine("===================");
        }

        public void ChangModeCopleteHandler()
        {

        }


    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Hero
{
    public class SiegeTank
    {
        public delegate void Callback();
        public Callback complete;
        public Callback onChangeMode;


        public int attack;
        public int hp;

        public SiegeTank(int attack, int hp)
        {
            this.attack = attack;
            this.hp = hp;
            Console.WriteLine("시즈탱크가 생성되었습니다");
            Console.WriteLine($"공격력: {attack}, 체력:{hp}/{hp}");
        }
        public void Move(int x, int y, Callback complete)
        {
            this.complete = complete;
            Console.WriteLine($"탱크가 ({x},{y})으로 이동합니다");
            Console.WriteLine("이동중 입니다..");
            Console.WriteLine("이동중 입니다..");
            this.complete();
        }
       
        public bool ChangeMode(Callback onChangeMode)
        {
            this.onChangeMode = onChangeMode;
            bool siege = false;
            if (siege == true)
            {
                Console.WriteLine("탱크모드로 전환합니다");
                Console.WriteLine($"공격력: {attack}, 체력:{hp}/{hp}");
            }
            else
            {
                Console.WriteLine("시즈모드로 전환합니다(이동할 수 없습니다)");
                Console.WriteLine($"공격력: {attack}, 체력:{hp}/{hp}");
            }
            this.onChangeMode();
            return false;

        }
    }
}

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Hero
{
    public class Program
    {
        static void Main(string[] args)
        {
            //App 클래스의 인스턴스를 생성
            new App();
        }
    }
}

'게임 알고리즘' 카테고리의 다른 글

JSON(20240814)  (0) 2024.08.14
오늘의 과제(240813)_Lurker  (0) 2024.08.13
오늘의 과제(20240813)_과일 Easy난이도  (0) 2024.08.13
오늘의 과제1(20240812)  (0) 2024.08.13
오늘의 과제 2(20240812)  (0) 2024.08.12