docs.unity3d.com
    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, Single)
    MonoBehaviour.InvokeRepeating(String, Single, Single)
    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, Component)
    Component.TryGetComponent<T>(T)
    Component.GetComponent(String)
    Component.GetComponentInChildren(Type, Boolean)
    Component.GetComponentInChildren(Type)
    Component.GetComponentInChildren<T>(Boolean)
    Component.GetComponentInChildren<T>()
    Component.GetComponentsInChildren(Type, Boolean)
    Component.GetComponentsInChildren(Type)
    Component.GetComponentsInChildren<T>(Boolean)
    Component.GetComponentsInChildren<T>(Boolean, List<T>)
    Component.GetComponentsInChildren<T>()
    Component.GetComponentsInChildren<T>(List<T>)
    Component.GetComponentInParent(Type, Boolean)
    Component.GetComponentInParent(Type)
    UnityEngine.Component.GetComponentInParent<T>(System.Boolean)
    Component.GetComponentInParent<T>()
    Component.GetComponentsInParent(Type, Boolean)
    Component.GetComponentsInParent(Type)
    Component.GetComponentsInParent<T>(Boolean)
    Component.GetComponentsInParent<T>(Boolean, 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
    Component.rigidbody
    Component.rigidbody2D
    Component.camera
    Component.light
    Component.animation
    Component.constantForce
    Component.renderer
    Component.audio
    Component.networkView
    Component.collider
    Component.collider2D
    Component.hingeJoint
    Component.particleSystem
    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, Boolean)
    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, Boolean)
    Object.Destroy(Object, Single)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, Boolean)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, Boolean)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, Single)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    UnityEngine.Object.FindObjectsOfType<T>(System.Boolean)
    Object.FindObjectOfType<T>()
    UnityEngine.Object.FindObjectOfType<T>(System.Boolean)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindObjectOfType(Type, Boolean)
    Object.ToString()
    Object.name
    Object.hideFlags
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetType()
    Object.MemberwiseClone()
    Namespace: Unity.MLAgents.Integrations.Match3
    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(Int32, Int32)

    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
    Int32 row
    Int32 col
    Returns
    Type Description
    Int32

    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(Int32, Int32)

    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
    Int32 row
    Int32 col
    Returns
    Type Description
    Int32

    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
    Boolean
    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
    Boolean

    NumMoves()

    Return the total number of moves possible for the board.

    Declaration
    public int NumMoves()
    Returns
    Type Description
    Int32

    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
    Boolean

    ValidMoves()

    Iterate through all valid moves on the board.

    Declaration
    public IEnumerable<Move> ValidMoves()
    Returns
    Type Description
    IEnumerable<Move>
    Back to top
    Terms of use
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023