Update readme
This commit is contained in:
parent
86da536acd
commit
d12f9cbac2
67
README.md
67
README.md
@ -1,15 +1,62 @@
|
|||||||
# Гадалка
|
# Электронная гадалка
|
||||||
|
|
||||||
Вариант электронной гадалки Шеннона, реализованный на основе
|
[Демоверсия][demo]
|
||||||
[описания алгоритма](https://sites.google.com/site/ltwood/projects/heshby/algorithm).
|
|
||||||
|
|
||||||
Игрок задаывает один из двух вариантов, а программа пытается его угадать.
|
Алгоритм, который противостоит человеку, и на основе ходов пытается предсказать
|
||||||
Если программе удалось угадать, то игрок теряет очко.
|
следующих ход человека.
|
||||||
|
|
||||||
|
Игрок загаывает один из двух вариантов, а робот пытается его угадать.
|
||||||
|
Если программе удалось угадать, то игрок теряет очко.
|
||||||
Если же программа не смогла предсказать выбор человека, то игрок зарабатывает очко.
|
Если же программа не смогла предсказать выбор человека, то игрок зарабатывает очко.
|
||||||
|
|
||||||
Интересно то, что программу невероятно сложно обыграть. Кажется, что игрок выбирает вариант хода случайно,
|
Алгоритм реализован на основе [описания][algorithm]. В процессе реализации алгоритм слегка изменился.
|
||||||
но на самом деле его выбор можно предсказать на основе прошлых ходов.
|
В отличие от описания, здесь можно допольнительно указать количество вариантов.
|
||||||
|
С двумя вариантами будет игра "Чет - нечет", а с тремя - "Камень, ножницы, бумага".
|
||||||
|
|
||||||
* Более подробно о гадалке и алгоритме можно прочитать
|
Интересно то, что программу сложно обыграть. Игрок пытается обставить робота, но все равно
|
||||||
на сайте [ltwood](https://sites.google.com/site/ltwood/projects/heshby).
|
делает свои ходы не случайно. Именно эта "неслучайность" позволяет быстро приспосабливаться и эффективно
|
||||||
* [Демоверсия](http://vakhrushev.me/projects/predictor/)
|
противостоять игроку.
|
||||||
|
|
||||||
|
Более подробно о гадалке и алгоритме можно прочитать на сайте [ltwood][about].
|
||||||
|
|
||||||
|
## Использование
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import Predictor from "predictor";
|
||||||
|
|
||||||
|
// Создание гадалки
|
||||||
|
const predictor = new Predictor(config);
|
||||||
|
|
||||||
|
// Передача значения, которое выбрал пользователь,
|
||||||
|
// и получение предсказание для этого значения
|
||||||
|
const prediction = predictor.pass(1);
|
||||||
|
|
||||||
|
// Получение текущего счета
|
||||||
|
const score = predictor.score;
|
||||||
|
|
||||||
|
// Получение количества сделаннх ходов
|
||||||
|
const sc = predictor.stepCount();
|
||||||
|
```
|
||||||
|
|
||||||
|
### Конфигурация
|
||||||
|
|
||||||
|
- `config.base` - количество вариантов хода. Число большее 2.
|
||||||
|
Чем больше вариантов, тем больше ходов алгоритм тратит на приспособление к ходам человека.
|
||||||
|
- `config.daemons` - настройка списка демонов.
|
||||||
|
- `config.daemons.human` - количество анализируемых ходов человека,
|
||||||
|
- `config.daemons.robot` - количество анализируемых ходов робота,
|
||||||
|
- `config.daemons.epsilon` - вес вознаграждения правильного ответа.
|
||||||
|
- `config.supervisor_epsilon` - вес вознаграждения демона за правильный ответ.
|
||||||
|
|
||||||
|
## Сборка
|
||||||
|
|
||||||
|
tools/build-docker
|
||||||
|
tools/npm run build
|
||||||
|
|
||||||
|
## Тестиирование
|
||||||
|
|
||||||
|
tools/npm run test
|
||||||
|
|
||||||
|
[algorithm](https://sites.google.com/site/ltwood/projects/heshby/algorithm)
|
||||||
|
[demo](http://vakhrushev.me/projects/predictor/)
|
||||||
|
[about](https://sites.google.com/site/ltwood/projects/heshby)
|
||||||
|
Loading…
Reference in New Issue
Block a user