{"id":32490190,"url":"https://github.com/josepedrodias/tak","last_synced_at":"2025-10-27T08:54:48.704Z","repository":{"id":296828292,"uuid":"994619246","full_name":"JosePedroDias/tak","owner":"JosePedroDias","description":"tak board game logic in typescript. WIP","archived":false,"fork":false,"pushed_at":"2025-06-02T18:29:45.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-02T19:43:08.822Z","etag":null,"topics":["board-game","bot","tak"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/JosePedroDias.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,"zenodo":null}},"created_at":"2025-06-02T08:11:10.000Z","updated_at":"2025-06-02T18:29:48.000Z","dependencies_parsed_at":"2025-06-02T19:43:12.488Z","dependency_job_id":"3b01e97a-a7fe-4347-af9d-e0850f261d8e","html_url":"https://github.com/JosePedroDias/tak","commit_stats":null,"previous_names":["josepedrodias/tak"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JosePedroDias/tak","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosePedroDias%2Ftak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosePedroDias%2Ftak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosePedroDias%2Ftak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosePedroDias%2Ftak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JosePedroDias","download_url":"https://codeload.github.com/JosePedroDias/tak/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JosePedroDias%2Ftak/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281241874,"owners_count":26467373,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-27T02:00:05.855Z","response_time":61,"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":["board-game","bot","tak"],"created_at":"2025-10-27T08:54:43.548Z","updated_at":"2025-10-27T08:54:48.694Z","avatar_url":"https://github.com/JosePedroDias.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tak\n\nAfter having rolled my own chess bot in the past, after getting to know the Tak board game\nI felt the urge to code it too. WIP\n\nℹ️ (this game isn't using typescript tooling, just making use of node.js's ability to ignore type annotations. it's just helping drive my UX)\n\nThe core logic should be runtime agnostic (ie `tak.ts` shouldn't depend on node.js or browser-exclusive APIs)\nThis allows me to eventually create dedicated clients/bots/whatever.\n\n## usage\n\n```\nnvm use\n\n# to play human vs human:\nnode play.ts\n\n# to play against bot:\nnode play-vs-bot.ts\n\n# to replay a game (WIP!)\nnode replay.ts games/g2.ptn\n```\n\n## TODO\n\n- fix PTN loader\n- add PTN attributes:\n    - [Date \"2025.06.03\"]\n    - [Time \"08:19:46\"]\n    - [Result \"R-0\"]\n    - write outcome in moves (ex: F-0, R-0, etc.)\n- PTS read\n- basic strategy bot\n- find roads should list all roads and their positions\n\n## rules: \n- https://cdn.shopify.com/s/files/1/0493/0297/files/UniversityRulesSM.pdf?182053186103430866\n- https://static1.squarespace.com/static/5e1ce8815cb76d3000d347f2/t/6482447fb0ca284557e6fc04/1686258824488/TakCompanionBookPDF.pdf\n\n## playing/analysis interface\n- https://ptn.ninja/\n\n## playing site\n- https://playtak.com/\n\n## portable tak notation (PTN)\n- https://ustak.org/portable-tak-notation/\n\n## PTS ~ FEN\n- https://ustak.org/tak-positional-system-tps/\n\n## TAK BOTS\n- wrapper https://github.com/chaitu236/ShlktBot-wrapper/blob/master/wrapper.py\n- takbot (perl) https://github.com/scottven/TakBot\n- tak ai (lua) https://github.com/jachiam/tak-ai\n- taktitian (go) https://github.com/nelhage/taktician\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosepedrodias%2Ftak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjosepedrodias%2Ftak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjosepedrodias%2Ftak/lists"}