complexity

This commit is contained in:
syuilo 2019-05-11 12:37:53 +09:00
parent ace5bf8f8f
commit fb5db57b42
No known key found for this signature in database
GPG key ID: BDC4C49D06AB9D69
2 changed files with 17 additions and 5 deletions

View file

@ -77,10 +77,18 @@ const cellVariants = {
type Dir = 'left' | 'right' | 'top' | 'bottom'; type Dir = 'left' | 'right' | 'top' | 'bottom';
export function genMaze(seed) { export function genMaze(seed, complexity?) {
const rand = gen.create(seed); const rand = gen.create(seed);
const mazeSize = 11 + rand(21); let mazeSize;
if (complexity) {
if (complexity === 'easy') mazeSize = 10 + rand(12);
if (complexity === 'hard') mazeSize = 20 + rand(15);
if (complexity === 'veryHard') mazeSize = 35 + rand(15);
} else {
mazeSize = 11 + rand(21);
}
const donut = rand(3) === 0; const donut = rand(3) === 0;
const donutWidth = mazeSize / 3; const donutWidth = mazeSize / 3;

View file

@ -51,9 +51,9 @@ export default class extends Module {
} }
@autobind @autobind
private async genMazeFile(seed): Promise<any> { private async genMazeFile(seed, size?): Promise<any> {
this.log('Maze generating...'); this.log('Maze generating...');
const maze = genMaze(seed); const maze = genMaze(seed, size);
this.log('Maze rendering...'); this.log('Maze rendering...');
const [temp] = await this.createTemp(); const [temp] = await this.createTemp();
@ -68,9 +68,13 @@ export default class extends Module {
@autobind @autobind
private async mentionHook(msg: Message) { private async mentionHook(msg: Message) {
if (msg.includes(['迷路'])) { if (msg.includes(['迷路'])) {
let size = null;
if (msg.includes(['簡単', 'かんたん', '易しい', 'やさしい', '小さい', 'ちいさい'])) size = 'easy';
if (msg.includes(['難しい', 'むずかしい', '複雑な', '大きい', 'おおきい'])) size = 'hard';
if (msg.includes(['死', '鬼', '地獄'])) size = 'veryHard';
this.log('Maze requested'); this.log('Maze requested');
setTimeout(async () => { setTimeout(async () => {
const file = await this.genMazeFile(Date.now()); const file = await this.genMazeFile(Date.now(), size);
this.log('Replying...'); this.log('Replying...');
msg.replyWithFile(serifs.maze.foryou, file); msg.replyWithFile(serifs.maze.foryou, file);
}, 3000); }, 3000);