UNPKG

2048-cli-game

Version:

2048 game for terminal.

180 lines (179 loc) 6.2 kB
import { Text } from 'ink'; import React from 'react'; import { countDigits } from '../../utils.js'; const NumsBoard = props => { const { nums } = props; const handleShowNum = (num) => { if (!num) { return ' '; } if (countDigits(num) === 1) { return ` ${num} `; } if (countDigits(num) === 2) { return ` ${num} `; } if (countDigits(num) === 3) { return ` ${num} `; } if (countDigits(num) === 4) { return ` ${num}`; } return ' '; }; return (React.createElement(Text, null, React.createElement(Text, null, "\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510", '\n'), React.createElement(Text, null, React.createElement(Text, null, "\u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502", '\n'), React.createElement(Text, null, "\u2502 ", handleShowNum(nums[0][0]), " \u2502 ", handleShowNum(nums[0][1]), " \u2502", ` `, handleShowNum(nums[0][2]), " \u2502 ", handleShowNum(nums[0][3]), " \u2502", '\n'), React.createElement(Text, null, "\u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502", '\n')), React.createElement(Text, null, "\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524", '\n'), React.createElement(Text, null, React.createElement(Text, null, "\u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502", '\n'), React.createElement(Text, null, "\u2502 ", handleShowNum(nums[1][0]), " \u2502 ", handleShowNum(nums[1][1]), " \u2502", ' ', handleShowNum(nums[1][2]), " \u2502 ", handleShowNum(nums[1][3]), " \u2502", '\n'), React.createElement(Text, null, "\u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502", '\n')), React.createElement(Text, null, "\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524", '\n'), React.createElement(Text, null, React.createElement(Text, null, "\u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502", '\n'), React.createElement(Text, null, "\u2502 ", handleShowNum(nums[2][0]), " \u2502 ", handleShowNum(nums[2][1]), " \u2502", ' ', handleShowNum(nums[2][2]), " \u2502 ", handleShowNum(nums[2][3]), " \u2502", '\n'), React.createElement(Text, null, "\u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502", '\n')), React.createElement(Text, null, "\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u253C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524", '\n'), React.createElement(Text, null, React.createElement(Text, null, "\u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502", '\n'), React.createElement(Text, null, "\u2502 ", handleShowNum(nums[3][0]), " \u2502 ", handleShowNum(nums[3][1]), " \u2502", ' ', handleShowNum(nums[3][2]), " \u2502 ", handleShowNum(nums[3][3]), " \u2502", '\n'), React.createElement(Text, null, "\u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502 ", ` `, " \u2502", '\n')), React.createElement(Text, null, "\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518"))); }; export default NumsBoard;