Class Game

import { Game } from '@hitomihiumi/2048-game'
import * as fs from 'fs'
import { Font } from '@hitomihiumi/lazy-canvas'

let game = new Game()
.setUser('13123123123')
.setFont(
new Font()
.setFamily('Koulen')
.setWeight('regular')
.setPath('./fonts/Koulen-Regular.ttf')
)

async function main() {
await game.startGame()

let arr = ['up', 'left', 'right', 'down', 'up', "left"]

for (let i = 0; i < 5; i++) {
//@ts-ignore
let data = await game.move(arr[i])
if (data[1] !== undefined) {
const pngData = data[1]
//@ts-ignore
fs.writeFileSync(`output${i}.png`, pngData)
}
}
}

main()

Constructors

Properties

data: LazyGame
renderGame: ((game: any) => Promise<undefined | ArrayBufferView | SKRSContext2D>) = renderGame

Methods

  • Parameters

    • vec: number[]

    Returns boolean

    true iff it is possible to move in the given direction

  • Returns {
        _score: number;
        _step: number;
        _steps: number;
        _tiles: number[][];
        filled: boolean;
        font: Font;
        globaloffset: {
            x: number;
            y: number;
        };
        lineThickness: number;
        offsets: {
            [key: string]: {
                x: number;
                y: number;
            };
        };
        size: number;
        tilescolors: {
            [key: string]: string;
        };
        userId: null | string;
    }

    • _score: number
    • _step: number
    • _steps: number
    • _tiles: number[][]
    • filled: boolean
    • font: Font
    • globaloffset: {
          x: number;
          y: number;
      }
      • x: number
      • y: number
    • lineThickness: number
    • offsets: {
          [key: string]: {
              x: number;
              y: number;
          };
      }
      • [key: string]: {
            x: number;
            y: number;
        }
        • x: number
        • y: number
    • size: number
    • tilescolors: {
          [key: string]: string;
      }
      • [key: string]: string
    • userId: null | string
  • Parameters

    • status:
          | "start"
          | "win"
          | "nochange"
          | "gameover"
          | "move"

    Returns Promise<(
        | undefined
        | string
        | ArrayBufferView
        | SKRSContext2D)[]>

  • Gets the important range of tiles to consider when checking movements in canMove.

    Parameters

    • direction: number

    Returns number[]

    [initial, min, max, step]

  • Parameters

    • direction:
          | "left"
          | "right"
          | "up"
          | "down"

    Returns Promise<(
        | undefined
        | string
        | ArrayBufferView
        | SKRSContext2D)[]>

  • Parameters

    • offset: {
          x: number;
          y: number;
      }
      • x: number
      • y: number

    Returns Game

  • Parameters

    • offsets: {
          [key: string]: {
              x: number;
              y: number;
          };
      }
      • [key: string]: {
            x: number;
            y: number;
        }
        • x: number
        • y: number

    Returns Game

  • Returns Promise<(
        | undefined
        | string
        | ArrayBufferView
        | SKRSContext2D)[]>