docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class AbstractBoard

    An adapter between ML Agents and a Match-3 game.

    Inheritance
    object
    Object
    Component
    Behaviour
    MonoBehaviour
    AbstractBoard
    Inherited Members
    MonoBehaviour.IsInvoking()
    MonoBehaviour.CancelInvoke()
    MonoBehaviour.Invoke(string, float)
    MonoBehaviour.InvokeRepeating(string, float, float)
    MonoBehaviour.CancelInvoke(string)
    MonoBehaviour.IsInvoking(string)
    MonoBehaviour.StartCoroutine(string)
    MonoBehaviour.StartCoroutine(string, object)
    MonoBehaviour.StartCoroutine(IEnumerator)
    MonoBehaviour.StartCoroutine_Auto(IEnumerator)
    MonoBehaviour.StopCoroutine(IEnumerator)
    MonoBehaviour.StopCoroutine(Coroutine)
    MonoBehaviour.StopCoroutine(string)
    MonoBehaviour.StopAllCoroutines()
    MonoBehaviour.print(object)
    MonoBehaviour.useGUILayout
    MonoBehaviour.runInEditMode
    Behaviour.enabled
    Behaviour.isActiveAndEnabled
    Component.GetComponent(Type)
    Component.GetComponent<T>()
    Component.TryGetComponent(Type, out Component)
    Component.TryGetComponent<T>(out T)
    Component.GetComponent(string)
    Component.GetComponentInChildren(Type, bool)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(bool)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, bool)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(bool)
    Component.GetComponentsInChildren<T>(bool, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, bool)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(bool)
    Component.GetComponentsInParent<T>(bool, List<T>)
    Component.GetComponentsInParent<T>()
    Component.GetComponents(Type)
    Component.GetComponents(Type, List<Component>)
    Component.GetComponents<T>(List<T>)
    Component.GetComponents<T>()
    Component.CompareTag(string)
    Component.SendMessageUpwards(string, object, SendMessageOptions)
    Component.SendMessageUpwards(string, object)
    Component.SendMessageUpwards(string)
    Component.SendMessageUpwards(string, SendMessageOptions)
    Component.SendMessage(string, object)
    Component.SendMessage(string)
    Component.SendMessage(string, object, SendMessageOptions)
    Component.SendMessage(string, SendMessageOptions)
    Component.BroadcastMessage(string, object, SendMessageOptions)
    Component.BroadcastMessage(string, object)
    Component.BroadcastMessage(string)
    Component.BroadcastMessage(string, SendMessageOptions)
    Component.transform
    Component.gameObject
    Component.tag
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectOfType<T>()
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.ToString()
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: Unity.MLAgents.Integrations.Match3
    Assembly: Unity.ML-Agents.dll
    Syntax
    public abstract class AbstractBoard : MonoBehaviour

    Fields

    OnNoValidMovesAction

    An optional callback for when the all moves are invalid. Ideally, the game state should be changed before this happens, but this is a way to get notified if not.

    Declaration
    public Action OnNoValidMovesAction
    Field Value
    Type Description
    Action

    Methods

    AllMoves()

    Iterate through all moves on the board.

    Declaration
    public IEnumerable<Move> AllMoves()
    Returns
    Type Description
    IEnumerable<Move>

    GetCellType(int, int)

    Returns the "color" of the piece at the given row and column. This should be between 0 and BoardSize.NumCellTypes-1 (inclusive). The actual order of the values doesn't matter.

    Declaration
    public abstract int GetCellType(int row, int col)
    Parameters
    Type Name Description
    int row
    int col
    Returns
    Type Description
    int

    GetCurrentBoardSize()

    Return the current size of the board. The values must less than or equal to the values returned from GetMaxBoardSize(). By default, this will return GetMaxBoardSize(); if your board doesn't change size, you don't need to override it.

    Declaration
    public virtual BoardSize GetCurrentBoardSize()
    Returns
    Type Description
    BoardSize

    GetMaxBoardSize()

    Return the maximum size of the board. This is used to determine the size of observations and actions, so the returned values must not change.

    Declaration
    public abstract BoardSize GetMaxBoardSize()
    Returns
    Type Description
    BoardSize

    GetSpecialType(int, int)

    Returns the special type of the piece at the given row and column. This should be between 0 and BoardSize.NumSpecialTypes (inclusive). The actual order of the values doesn't matter.

    Declaration
    public abstract int GetSpecialType(int row, int col)
    Parameters
    Type Name Description
    int row
    int col
    Returns
    Type Description
    int

    IsMoveValid(Move)

    Check whether the particular Move is valid for the game. The actual results will depend on the rules of the game, but we provide SimpleIsMoveValid(Move) that handles basic match3 rules with no special or immovable pieces.

    Declaration
    public abstract bool IsMoveValid(Move m)
    Parameters
    Type Name Description
    Move m

    The move to check.

    Returns
    Type Description
    bool
    Remarks

    Moves that would go outside of GetCurrentBoardSize() are filtered out before they are passed to IsMoveValid().

    MakeMove(Move)

    Instruct the game to make the given Move. Returns true if the move was made. Note that during training, a move that was marked as invalid may occasionally still be requested. If this happens, it is safe to do nothing and request another move.

    Declaration
    public abstract bool MakeMove(Move m)
    Parameters
    Type Name Description
    Move m

    The move to carry out.

    Returns
    Type Description
    bool

    NumMoves()

    Return the total number of moves possible for the board.

    Declaration
    public int NumMoves()
    Returns
    Type Description
    int

    SimpleIsMoveValid(Move)

    Returns true if swapping the cells specified by the move would result in 3 or more cells of the same type in a row. This assumes that all pieces are allowed to be moved; to add extra logic, incorporate it into your IsMoveValid(Move) method.

    Declaration
    public bool SimpleIsMoveValid(Move move)
    Parameters
    Type Name Description
    Move move
    Returns
    Type Description
    bool

    ValidMoves()

    Iterate through all valid moves on the board.

    Declaration
    public IEnumerable<Move> ValidMoves()
    Returns
    Type Description
    IEnumerable<Move>
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)