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 |