{"id":16775167,"url":"https://github.com/puemos/tic-tac-toe-ai","last_synced_at":"2026-04-06T08:31:15.815Z","repository":{"id":69924342,"uuid":"88297960","full_name":"puemos/tic-tac-toe-ai","owner":"puemos","description":"Tic-Tac-Toe AI impl javascript ","archived":false,"fork":false,"pushed_at":"2017-04-16T13:30:57.000Z","size":1427,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T17:46:13.135Z","etag":null,"topics":["alpha-beta-pruning","alphabeta-minimax-search","angularjs","artificial-intelligence","express","mean-stack","minmax-algorithm","sass","webpack"],"latest_commit_sha":null,"homepage":"https://tictac-toe-ai.herokuapp.com/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/puemos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-14T19:48:15.000Z","updated_at":"2017-04-16T08:40:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"e5474c69-047e-4441-9fea-10cbc7b1ec75","html_url":"https://github.com/puemos/tic-tac-toe-ai","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/puemos/tic-tac-toe-ai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puemos%2Ftic-tac-toe-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puemos%2Ftic-tac-toe-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puemos%2Ftic-tac-toe-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puemos%2Ftic-tac-toe-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/puemos","download_url":"https://codeload.github.com/puemos/tic-tac-toe-ai/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puemos%2Ftic-tac-toe-ai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31464604,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"online","status_checked_at":"2026-04-06T02:00:07.287Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpha-beta-pruning","alphabeta-minimax-search","angularjs","artificial-intelligence","express","mean-stack","minmax-algorithm","sass","webpack"],"created_at":"2024-10-13T06:51:11.056Z","updated_at":"2026-04-06T08:31:15.799Z","avatar_url":"https://github.com/puemos.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"### On this page\n\n1. [Tic Tac Toe - AI](#tic-tac-toe-ai)\n1. [Server](#server)\n1. [Client](#client)\n1. [Flow](#flow)\n1. [See also](#see-also)\n\n### \u003ca id=\"tic-tac-toe-ai\" href=\"#tic-tac-toe-ai\"\u003eTic Tac Toe - AI\u003c/a\u003e\n\nA Tic-Tac-Toe game impl Javascript/Node\nCheckout the [Preview](https://tictac-toe-ai.herokuapp.com/) on Heroku\n### \u003ca id=\"server\" href=\"#server\"\u003eServer\u003c/a\u003e\n\n|Module|Description|\n|-|-|\n|Server|Lift the Express app and setup middlewares|\n|Turn|Controller for the 'turn' route|\n|Game|Implement functionalities|\n|State|Representing a state in the game|\n|Search|Using min-max with alpha-beta-pruning search the best next move|\n\n### \u003ca id=\"client\" href=\"#client\"\u003eClient\u003c/a\u003e\n\n|Module|Description|\n|-|-|\n|Api|Implement functionalities for http calls|\n|AI|Compute the next move of the AI|\n|App|The main container of the app |\n|Home|The container of the root route |\n|Board| Rendering tiles by a given state, updating the state |\n|Tile| Rendering a single tile |\n\n### \u003ca id=\"flow\" href=\"#flow\"\u003eFlow\u003c/a\u003e\n\n    1. The client send a state and a move to the server\n    2. The server compute the next move.\n    3. The server send back the new state.\n    4. The client render the UI by the new state.\n\n### \u003ca id=\"see-also\" href=\"#see-also\"\u003eSee also\u003c/a\u003e\n\nExternal resources\n\n* [Tic Tac Toe - tictac-toe-ai.herokuapp.com](https://tictac-toe-ai.herokuapp.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuemos%2Ftic-tac-toe-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpuemos%2Ftic-tac-toe-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuemos%2Ftic-tac-toe-ai/lists"}