{"_id":"@dvshanup0/tictactoedi-botgame","name":"@dvshanup0/tictactoedi-botgame","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.1":{"name":"@dvshanup0/tictactoedi-botgame","version":"1.0.1","type":"module","main":"src/index.js","exports":{".":"./src/index.js"},"devDependencies":{"jest":"^29.7.0"},"scripts":{"test":"node --experimental-vm-modules node_modules/jest/bin/jest.js"},"_id":"@dvshanup0/tictactoedi-botgame@1.0.1","description":"Minimax AI for Tic-Tac-Toe-Di.\r Fully ESM. Bot = 0, Human = 1.\r ### Field format: [-1, 0, 1]\r * -1 → empty\r * 0 → bot (O)\r * 1 → player (X)","_integrity":"sha512-RicW5SWOLlLl9fNZvnvme7cqziYi/Z5MXeUZ2vqDQSqExy9VkgafhQreX4AN2dqxTH8SzAEMtBN3yQuXWApTjw==","_resolved":"C:\\Users\\dshkn\\AppData\\Local\\Temp\\b2b8dbeb5e44e6cb32f9ff027a7c4b2d\\dvshanup0-tictactoedi-botgame-1.0.1.tgz","_from":"file:dvshanup0-tictactoedi-botgame-1.0.1.tgz","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-RicW5SWOLlLl9fNZvnvme7cqziYi/Z5MXeUZ2vqDQSqExy9VkgafhQreX4AN2dqxTH8SzAEMtBN3yQuXWApTjw==","shasum":"3840cfe63a7b2bf1351a55b512c8eee8dea39e4c","tarball":"https://registry.npmjs.org/@dvshanup0/tictactoedi-botgame/-/tictactoedi-botgame-1.0.1.tgz","fileCount":10,"unpackedSize":6595,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFWXhYnXEQsSLxMYUdC6j0zWxyEOgZuHqLeeOAaRH54IAiEA6zGSfx5fMncYfAfeSGU9ChXcyY1M7IK2TErrBumvR9s="}]},"_npmUser":{"name":"dvshanup0","email":"dshknay7@gmail.com"},"directories":{},"maintainers":[{"name":"dvshanup0","email":"dshknay7@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tictactoedi-botgame_1.0.1_1765491016825_0.7918463702078877"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-11T22:10:16.765Z","1.0.1":"2025-12-11T22:10:17.018Z","modified":"2025-12-11T22:10:17.288Z"},"maintainers":[{"name":"dvshanup0","email":"dshknay7@gmail.com"}],"description":"Minimax AI for Tic-Tac-Toe-Di.\r Fully ESM. Bot = 0, Human = 1.\r ### Field format: [-1, 0, 1]\r * -1 → empty\r * 0 → bot (O)\r * 1 → player (X)","readme":"# @dvshanup0/tictactoedi-botgame\r\nMinimax AI for Tic-Tac-Toe-Di.\r\nFully ESM. Bot = 0, Human = 1.\r\n### Field format: [-1, 0, 1]\r\n* -1 → empty\r\n* 0 → bot (O)\r\n* 1 → player (X)\r\n\r\n\r\n## Install\r\n```sh\r\npnpm add @dvshanup0/tictactoedi-botgame\r\n# or\r\nnpm install @dvshanup0/tictactoedi-botgame\r\n```\r\n\r\n## Usage\r\n```js\r\nimport { getOptimalTurn, minimax, checkWinner } from \"@dvshanup0/tictactoedi-botgame\";\r\n\r\nconst field = [\r\n  1, -1,  0,\r\n  -1, 1, -1,\r\n   0, -1, -1\r\n];\r\n\r\n// bot = 0\r\nconst bestMove = getOptimalTurn(field, 0);\r\nconsole.log(\"Bot move:\", bestMove);\r\n```\r\n\r\n## API\r\n### getOptimalTurn(field, player)\r\nReturns the best move (index 0–8).\r\n\r\n### minimax(field, player)\r\nReturns the numerical score of the position (usually not needed directly).\r\n\r\n### applyMove(field, index, player)\r\nReturns the new field after the move.\r\n\r\n### getAvailableMoves(field)\r\nReturns an array of available cells.\r\n\r\n### checkWinner(field)\r\nReturns:\r\n* 0 → bot win\r\n* 1 → human win\r\n* -2 → draw\r\n* null → no one has won yet\r\n\r\n## ✔ Example: simple bot move\r\n```js\r\nimport { getOptimalTurn, applyMove } from \"dvshanup0/tictactoedi-botgame\";\r\n\r\nconst field = Array(9).fill(-1);\r\n\r\nconst move = getOptimalTurn(field, 0);\r\nconst newField = applyMove(field, move, 0);\r\n```\r\n","readmeFilename":"README.md","_rev":"1-d894694f54cb999b68a4f9999e1df755"}