Spaces:
Sleeping
Sleeping
import { expect, assert } from 'chai' | |
import board from '@/ai/board.js' | |
import Search from '@/ai/negamax.js' | |
import SCORE from '@/ai/score.js' | |
describe('Test Time', () => { | |
it('开局时间', () => { | |
const b = [ | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
] | |
board.init(b); | |
Search(); | |
}) | |
it('无意义冲四过多的时候会不会很慢', () => { | |
const b = [ | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 2, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
] | |
board.init(b); | |
const p = Search(); | |
}) | |
it(`此处有杀棋, 只有 [6, 5], [5, 4] 两种走法有杀棋`, function() { | |
const b = [ | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 2, 1, 2, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
]; | |
board.init(b); | |
var p = Search(1, 10); | |
assert.ok(p.score > SCORE.THREE); | |
assert.ok((p[0] == 6 && p[1] === 5) || (p[0] == 5 && p[1] === 4)); | |
}); | |
it(`测试vct bug,此处应该没有杀棋`, function() { | |
const b = [ | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 2, 1, 2, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
]; | |
board.init(b); | |
var p = Search(); | |
assert.ok(p.score < SCORE.FIVE/2) | |
}); | |
it(`测试冲四活三bug`, function() { | |
const b = [ | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 2, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 2, 1, 2, 1, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 2, 2, 1, 0, 2, 2, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], | |
]; | |
board.init(b); | |
var p = Search(); | |
// 冲四活三 | |
assert.ok(p.score > SCORE.FOUR); | |
}); | |
}) | |