go2048

package module
v0.0.0-...-3b09669 Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2023 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const BLOCKS_SIZE uint32 = 4

Variables

This section is empty.

Functions

func FilterZeroIndices

func FilterZeroIndices(bs BlockArray) (r []int)

func IsPossibleToShiftAndMerge

func IsPossibleToShiftAndMerge(ba BlockArray, sd ShiftDirection) (isPossible bool)

func PickOne

func PickOne(indices []int) int

Types

type Block

type Block uint32

func MakeDefaultBlock

func MakeDefaultBlock(probFour float64) Block

func MergeBlocks

func MergeBlocks(bs []Block) (_ []Block, isChanged bool)

func ShiftAndMergeBlocks

func ShiftAndMergeBlocks(bs []Block) ([]Block, bool)

func ShiftBlocks

func ShiftBlocks(bs []Block) (_ []Block, isChanged bool)

New block slice, isChanged

type BlockArray

type BlockArray [BLOCKS_SIZE * BLOCKS_SIZE]Block

func SampleDown

func SampleDown(ba BlockArray) (nba BlockArray)

func SampleLeft

func SampleLeft(ba BlockArray) (nba BlockArray)

func SampleRight

func SampleRight(ba BlockArray) BlockArray

func SampleUp

func SampleUp(ba BlockArray) (nba BlockArray)

func ShiftAndMergeBlockArray

func ShiftAndMergeBlockArray(ba BlockArray, sd ShiftDirection) (nba BlockArray)

func (*BlockArray) IterBlocks

func (ba *BlockArray) IterBlocks() func() []Block

type GameState

type GameState struct {
	BlockA    BlockArray
	Ticker    uint32
	StartTime time.Time
}

func NewGameState

func NewGameState() GameState

Create new Game State

func (*GameState) InitRandomBlock

func (gt *GameState) InitRandomBlock()

func (*GameState) Process

func (gt *GameState) Process(sd ShiftDirection) StatusCode

func (*GameState) String

func (gt *GameState) String() string

type SampleFunc

type SampleFunc func(BlockArray) BlockArray

func ShiftDirectionToSampleFunc

func ShiftDirectionToSampleFunc(sd ShiftDirection) SampleFunc

type ShiftDirection

type ShiftDirection int
const (
	UP ShiftDirection = iota
	DOWN
	LEFT
	RIGHT
)

func GetPossibleDirections

func GetPossibleDirections(ba BlockArray) (directions []ShiftDirection)

type StatusCode

type StatusCode int
const (
	TERMINATED StatusCode = iota
	PROCESSED
	NONPROCESSED
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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