UNPKG

tictactoe-complex-ai

Version:
62 lines (42 loc) 2.2 kB
# Tictactoe Complex AI This is a **Complex Powerful JavaScript AI** for the **Tic Tac Toe** Game. ## How to install To install this package on NPM, use the follow command: ``` npm install tictactoe-complex-ai ``` or on Yarn: ``` yarn install tictactoe-complex-ai ``` ## How to use Using this AI is quite simple, you just have to require the package and then you can call **createAI** to create a new AI instance, like the example below: ``` const ai = require('tictactoe-complex-ai'); let aiInstance = ai.createAI({level: 'easy'}); ``` The createAI function requires a config parameter that will be used to configure the AI (We will talk about it on the next topic). After you created a new instance, you can call the play function passing the current board to make the play, as you can see here: ``` // Requires the package const ai = require('tictactoe-complex-ai'); // Creates a new instance of AI. let aiInstance = ai.createAI({level: 'easy'}); // Creates a new empty board. const board = ['', '', '', '', '', '', '', '', '']; // Makes the play aiInstance.play(board).then(pos => { // Success console.log('AI plays on the position '+pos); }).catch(() => { // Fail console.log('An error occurred.'); }); ``` ## How to configure the AI The config parameter is a Object with these properties: * **level (required)** - It is a String which means what level the AI will use on the instance. There are 4 levels, **easy**, **medium**, **hard** and **expert**. * **ai** - It is a String that means what character represents the AI on the board. **Default value is 'O'**. * **player** - It is a String that means what character represents the Player (Enemy's AI) on the board. **Default value is 'X'**. * **empty** - It is a String that means what character represents an empty space on the board. **Default value is ''**. * **minResponseTime** - It is an Integer that means the minimum time (in milliseconds) it will take to make the play. **Default value is 2000**. * **maxResponseTime** - It is an Integer that means the maximum time (in milliseconds) it will take to make the play. **Default value is 5000**.