🚀 improve demo and add test script for action
This commit is contained in:
3
packages/action/.gitignore
vendored
3
packages/action/.gitignore
vendored
@@ -1,2 +1,3 @@
|
|||||||
!dist
|
!dist
|
||||||
!dist/build
|
!dist/build
|
||||||
|
out.gif
|
||||||
5
packages/action/__tests__/dev.ts
Normal file
5
packages/action/__tests__/dev.ts
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
import { generateContributionSnake } from "../generateContributionSnake";
|
||||||
|
|
||||||
|
generateContributionSnake("platane").then((buffer) => {
|
||||||
|
process.stdout.write(buffer);
|
||||||
|
});
|
||||||
@@ -5,8 +5,8 @@ import { computeBestRun } from "@snk/compute";
|
|||||||
import { createGif } from "../gif-creator";
|
import { createGif } from "../gif-creator";
|
||||||
|
|
||||||
export const userContributionToGrid = (cells: Cell[]) => {
|
export const userContributionToGrid = (cells: Cell[]) => {
|
||||||
const width = Math.max(...cells.map((c) => c.x));
|
const width = Math.max(0, ...cells.map((c) => c.x)) + 1;
|
||||||
const height = Math.max(...cells.map((c) => c.y));
|
const height = Math.max(0, ...cells.map((c) => c.y)) + 1;
|
||||||
|
|
||||||
const grid = generateEmptyGrid(width, height);
|
const grid = generateEmptyGrid(width, height);
|
||||||
for (const c of cells) setColor(grid, c.x, c.y, c.k === 0 ? null : c.k);
|
for (const c of cells) setColor(grid, c.x, c.y, c.k === 0 ? null : c.k);
|
||||||
@@ -39,9 +39,9 @@ export const generateContributionSnake = async (userName: string) => {
|
|||||||
|
|
||||||
const gameOptions = { maxSnakeLength: 5 };
|
const gameOptions = { maxSnakeLength: 5 };
|
||||||
|
|
||||||
const gifOptions = { delay: 20 };
|
const gifOptions = { delay: 10 };
|
||||||
|
|
||||||
const commands = computeBestRun(grid0, snake0, gameOptions).slice(0, 50);
|
const commands = computeBestRun(grid0, snake0, gameOptions);
|
||||||
|
|
||||||
const buffer = await createGif(
|
const buffer = await createGif(
|
||||||
grid0,
|
grid0,
|
||||||
|
|||||||
@@ -2,14 +2,15 @@
|
|||||||
"name": "@snk/action",
|
"name": "@snk/action",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@actions/core": "1.2.4",
|
||||||
"@snk/gif-creator": "1.0.0",
|
"@snk/gif-creator": "1.0.0",
|
||||||
"@snk/github-user-contribution": "1.0.0"
|
"@snk/github-user-contribution": "1.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@actions/core": "1.2.4",
|
|
||||||
"@zeit/ncc": "0.22.3"
|
"@zeit/ncc": "0.22.3"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "ncc build ./index.ts --out dist"
|
"build": "ncc build ./index.ts --out dist",
|
||||||
|
"dev": "ncc run __tests__/dev.ts --quiet | tail -n +2 > out.gif "
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ export const computeBestRun = (
|
|||||||
|
|
||||||
const commands: Point[] = [];
|
const commands: Point[] = [];
|
||||||
|
|
||||||
let u = 100;
|
let u = 500;
|
||||||
|
|
||||||
while (!isGridEmpty(g) && u-- > 0) {
|
while (!isGridEmpty(g) && u-- > 0) {
|
||||||
let direction;
|
let direction;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export const run = async () => {
|
|||||||
|
|
||||||
const gameOptions = { maxSnakeLength: 5 };
|
const gameOptions = { maxSnakeLength: 5 };
|
||||||
|
|
||||||
const grid0 = generateGrid(14, 7, { colors: [1, 2, 3, 4], emptyP: 3 });
|
const grid0 = generateGrid(42, 7, { colors: [1, 2, 3, 4], emptyP: 3 });
|
||||||
|
|
||||||
const snake0 = [
|
const snake0 = [
|
||||||
{ x: 4, y: -1 },
|
{ x: 4, y: -1 },
|
||||||
|
|||||||
Reference in New Issue
Block a user