行为型/状态模式/MarioSample/MarioStateMachine3.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

namespace DesignModeConsole.行为型.状态模式.MarioSample;

//状态机实现方案三:状态模式

/// <summary>
/// 状态的接口,定义所有的事件
/// </summary>
public interface IMario
{
    StateEnum GetName();

    /// <summary>
    /// 得到蘑菇
    /// </summary>
    void ObtainMushRoom();

    /// <summary>
    /// 得到斗篷
    /// </summary>
    void ObtainCape();

    /// <summary>
    /// 得到火焰
    /// </summary>
    void ObtainFireFlower();

    /// <summary>
    /// 遇到怪物
    /// </summary>
    void MeetMonster();
}

public class SmallMario : IMario
{
    private readonly MarioStateMachine3 _stateMachine3;

    public SmallMario(MarioStateMachine3 stateMachine3)
    {
        _stateMachine3 = stateMachine3;
    }

    public StateEnum GetName()
    {
        return StateEnum.Small;
    }

    public void ObtainMushRoom()
    {
        _stateMachine3.SetCurrentState(new SuperMario(_stateMachine3));
        _stateMachine3.SetScore(_stateMachine3.Score + 100);
    }

    public void ObtainCape()
    {
        _stateMachine3.SetCurrentState(new CapeMario(_stateMachine3));
        _stateMachine3.SetScore(_stateMachine3.Score + 200);
    }

    public void ObtainFireFlower()
    {
后面还有 191 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。