matrix

package
v0.0.28 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2023 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package matrix 提供了一个简单的二维数组的实现

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Matrix

type Matrix[T any] struct {
	// contains filtered or unexported fields
}

Matrix 二维矩阵

func NewMatrix

func NewMatrix[T any](width, height int) *Matrix[T]

NewMatrix 生成特定宽高的二维矩阵

  • 虽然提供了通过x、y坐标的操作函数,但是建议无论如何使用pos进行处理
  • 该矩阵为XY,而非YX

func (*Matrix[T]) FillFull

func (slf *Matrix[T]) FillFull(generateHandle func(x, y int) T)

FillFull 根据提供的生成器填充整个矩阵

func (*Matrix[T]) FillFullWithPos

func (slf *Matrix[T]) FillFullWithPos(generateHandle func(pos int) T)

FillFullWithPos 根据提供的生成器填充整个矩阵

func (*Matrix[T]) Get

func (slf *Matrix[T]) Get(x, y int) (value T)

Get 获取特定坐标的内容

func (*Matrix[T]) GetExist added in v0.0.4

func (slf *Matrix[T]) GetExist(x, y int) (value T, exist bool)

GetExist 获取特定坐标的内容,如果不存在则返回 false

func (*Matrix[T]) GetHeight

func (slf *Matrix[T]) GetHeight() int

GetHeight 获取二维矩阵高度

func (*Matrix[T]) GetMatrix

func (slf *Matrix[T]) GetMatrix() [][]T

GetMatrix 获取二维矩阵

  • 通常建议使用 GetMatrixWithPos 进行处理这样将拥有更高的效率

func (*Matrix[T]) GetMatrixWithPos

func (slf *Matrix[T]) GetMatrixWithPos() []T

GetMatrixWithPos 获取顺序的矩阵

func (*Matrix[T]) GetWidth

func (slf *Matrix[T]) GetWidth() int

GetWidth 获取二维矩阵宽度

func (*Matrix[T]) GetWidth2Height

func (slf *Matrix[T]) GetWidth2Height() (width, height int)

GetWidth2Height 获取二维矩阵的宽度和高度

func (*Matrix[T]) GetWithPos

func (slf *Matrix[T]) GetWithPos(pos int) (value T)

GetWithPos 获取特定坐标的内容

func (*Matrix[T]) Set

func (slf *Matrix[T]) Set(x, y int, data T)

Set 设置特定坐标的内容

func (*Matrix[T]) SetWithPos

func (slf *Matrix[T]) SetWithPos(pos int, data T)

SetWithPos 设置特定坐标的内容

func (*Matrix[T]) Swap

func (slf *Matrix[T]) Swap(x1, y1, x2, y2 int)

Swap 交换两个位置的内容

func (*Matrix[T]) SwapWithPos

func (slf *Matrix[T]) SwapWithPos(pos1, pos2 int)

SwapWithPos 交换两个位置的内容

func (*Matrix[T]) TrySwap

func (slf *Matrix[T]) TrySwap(x1, y1, x2, y2 int, expressionHandle func(matrix *Matrix[T]) bool)

TrySwap 尝试交换两个位置的内容,交换后不满足表达式时进行撤销

func (*Matrix[T]) TrySwapWithPos

func (slf *Matrix[T]) TrySwapWithPos(pos1, pos2 int, expressionHandle func(matrix *Matrix[T]) bool)

TrySwapWithPos 尝试交换两个位置的内容,交换后不满足表达式时进行撤销

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL