A simpley bot of Master Mind(a.k.a Hit & Blow)
npm i master-mind-bot --save
import MsterMindBot from "master-mind-bot";
// give answer
const bot = new MsterMindBot(1234);
// run bot calculation
while (true) {
let res = bot.execute();
if (res.field.get() === (1234).toString().split('')) break;
}
Lightweight master mind solver. It can be used as a CPU.
value (number | string)
required
Answer that Bot should calculate.
digit number
4
Number of digits in sequence. Default is 4. If the value is less than this value, it is zero-padded
const bot = new MsterMindBot(1234, 5);
// answer is interpreted as "012345"
level number
1
The higher this value, the more accurate the prediction. Default is 1.
*Features to be implemented
duplicate number
false
Allow duplicate numbers. Default is false.
execute() => Hint
Narrowing down the correct answer. Returns the values used to narrow the search and the results.
const bot = new MsterMindBot(1234, 5);
bot.execute()
// it return this value. More type information is described below.
// {
// field: Field;
// answer: Answer;
// }
isOver() => boolean
One candidate is decided or not.
getPotential() => number
Number of candidates remaining.
getHints() => Hint[]
A history of tips.
info() => void
Debugging information is output to the console.
Support class of Bot class. This is also useful for the implementation of Master Mind Application.
value (number | string)
required
The value you want to manipulate.
digit number
required
Number of digits in sequence. If the value is less than this value, it is zero-padded
get() => string[]
Get the set value as an array of zeroed strings.
answer(value: Field) => Answer
Compares the set value with the value of the argument, and returns the number of hits and the number of blows.
const f1 = new Field(1234, 4);
const f2 = new Field(1024, 4);
f1.answer(f2);
// it return this value.
// {
// hit: 2,
// blow: 1
// }
isDuplicated() => boolean
The value contains a duplicate value.
info() => void
Debugging information is output to the console.
npm install