Skip to content

cornerc/master-mind-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

master-mind-bot

A simpley bot of Master Mind(a.k.a Hit & Blow)

Installation

npm i master-mind-bot --save

Quick Start

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;
}

Usage

MsterMindBot(value, digit, level, duplicate)

Lightweight master mind solver. It can be used as a CPU.

args

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.

method

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.

Field(value, digit)

Support class of Bot class. This is also useful for the implementation of Master Mind Application.

args

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

method

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.

Develop

npm install

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published