{"id":16811673,"url":"https://github.com/philrunninger/vim-robots","last_synced_at":"2026-03-18T22:23:00.015Z","repository":{"id":83800858,"uuid":"220371673","full_name":"PhilRunninger/vim-robots","owner":"PhilRunninger","description":"A hexagonal version of the classic Robots game","archived":false,"fork":false,"pushed_at":"2024-11-06T16:15:46.000Z","size":1155,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-23T20:31:47.059Z","etag":null,"topics":["game","vim-plugin"],"latest_commit_sha":null,"homepage":null,"language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PhilRunninger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2019-11-08T02:37:30.000Z","updated_at":"2024-11-06T16:15:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"94a1d4a6-598b-4246-9430-7698a1e8f0a5","html_url":"https://github.com/PhilRunninger/vim-robots","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhilRunninger%2Fvim-robots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhilRunninger%2Fvim-robots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhilRunninger%2Fvim-robots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PhilRunninger%2Fvim-robots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PhilRunninger","download_url":"https://codeload.github.com/PhilRunninger/vim-robots/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244021478,"owners_count":20385122,"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","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":["game","vim-plugin"],"created_at":"2024-10-13T10:19:24.849Z","updated_at":"2026-01-29T03:02:36.595Z","avatar_url":"https://github.com/PhilRunninger.png","language":"Vim Script","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vim Robots\n\n## Introduction\nThis is a Vim plugin implementation of the game Robots. Check out this [Wikipedia article](https://en.wikipedia.org/wiki/Chase_(video_game)) to learn its history.\n\nThere is one key difference between the classic game and this modern Vim update. The original version is based on a Cartesian grid, with movement in the usual 8 directions,...\n\n![Robots on Cartesian grid](https://upload.wikimedia.org/wikipedia/commons/b/bf/Robots_text_screenshot.png)\n\u003cbr/\u003e**Figure 1:** *Robots on Cartesian grid*\n\nbut this reincarnation is based on a hexagonal grid, with movement in only 6 directions. *Disclaimer: the hexagonal tiling and letters (\u003ckbd\u003ey\u003c/kbd\u003e, \u003ckbd\u003ek\u003c/kbd\u003e, \u003ckbd\u003eu\u003c/kbd\u003e, \u003ckbd\u003en\u003c/kbd\u003e, \u003ckbd\u003ej\u003c/kbd\u003e, and \u003ckbd\u003eb\u003c/kbd\u003e) in the image below are for illustrative purposes only, and are not generated during gameplay.*\n\n![Robots on a hexagonal grid](HexRobots.png)\n\u003cbr/\u003e**Figure 2:** *Vim-Robots on a hexagonal grid*\n\n## Installation\n\nUse your favorite plugin manager. If you don't have one, try one of these: [vim-pathogen](https://github.com/tpope/vim-pathogen), [vim-plug](https://github.com/junegunn/vim-plug), [Packer.nvim](https://github.com/wbthomason/packer.nvim) or [lazy.nvim](https://github.com/folke/lazy.nvim). Alternatively, you can use packages and submodules, as Greg Hurrell ([@wincent](https://github.com/wincent)) describes in his excellent Youtube video: [Vim screencast #75: Plugin managers](https://www.youtube.com/watch?v=X2_R3uxDN6g)\n\n## Playing the game\n\nStart a game with the `:Robots` command.\n\nYou are the green solid circle. Robots are purple squares, and the junk piles are orange triangles. *Your colors may vary, depending on your Vim colorscheme and/or terminal color settings.*\n\nThe robots are programmed to pursue you at all costs, and will choose the shortest path to do so. They move in a straight line diagonally or vertically, but horizontal movement requires them to zig-zag randomly toward you. Fortunately, the robots are oblivious to each other, and will collide, leaving a flaming pile of junk. To survive to the next level, you must lure all the robots to walk into a junk pile or another robot, while avoiding being captured.\n\nIn later levels, you can take advantage of portals to travel instantly from one edge of the field to the opposite side. Eventually, the robots will catch on, and track you down through those portals too, so be careful.\n\n### Movement Keys\n\nMain Keyboard | Number Keypad | Direction\n:-:|:-:|---\n\u003ckbd\u003ey\u003c/kbd\u003e | \u003ckbd\u003e7\u003c/kbd\u003e | Up left\n\u003ckbd\u003ek\u003c/kbd\u003e | \u003ckbd\u003e8\u003c/kbd\u003e | Up\n\u003ckbd\u003eu\u003c/kbd\u003e | \u003ckbd\u003e9\u003c/kbd\u003e | Up right\n\u003ckbd\u003eb\u003c/kbd\u003e | \u003ckbd\u003e1\u003c/kbd\u003e | Down left\n\u003ckbd\u003ej\u003c/kbd\u003e | \u003ckbd\u003e2\u003c/kbd\u003e | Down\n\u003ckbd\u003en\u003c/kbd\u003e | \u003ckbd\u003e3\u003c/kbd\u003e | Down right\n\n### Other Commands\n\nKey | | Function\n:-:|---|---\n\u003ckbd\u003et\u003c/kbd\u003e   | Transport | If you become trapped, you can transport to another location.\n\u003ckbd\u003ed\u003c/kbd\u003e   | Decoy     | Place a decoy down at your current location.\n\u003ckbd\u003ew\u003c/kbd\u003e   | Wait      | Sometimes the only winning move is not to play, but to wait and let the robots advance one step.\n\u003ckbd\u003eF\u003c/kbd\u003e   | Finish    | Finishing the level means waiting in place until defeat or triumph. Earn double the points and recharge your shield.\n\u003ckbd\u003e?\u003c/kbd\u003e   | Help      | Toggles the statusline to show the symbol legend and key mappings. The next move resets the statusline.\n\u003ckbd\u003eEsc\u003c/kbd\u003e | Boss Key  | What? You've never heard of this?\n\n### Transporter and Shield\nYour transporter and shield are closely linked. The transporter is used to whisk you away from imminent capture, but using it comes at a cost. Each transport reduces the shield's strength by 100%. If the shield is below 100%, you **could** transport onto a robot or junk pile, and be captured immediately. Using the \u003ckbd\u003eF\u003c/kbd\u003e key to finish a level will recharge your shield at the rate of 20% for each defeated robot. There is no maximum shield strength.\n\n### Decoy\nOnce per level, you can deploy a decoy with the \u003ckbd\u003ed\u003c/kbd\u003e key, which can help you escape encroaching robots. They will move toward the decoy, allowing you to briefly move without being followed. The duration of the decoy is a function of your shield strength, and doesn't drain your shield. It is always better to use the decoy as a first option.\n\n## Customization\nThe symbols representing various items can be changed to your liking. The statements below recreate the retro look, and the default values are shown in the comments.\n\n```vim\nlet g:robots_empty = \"\\u00a0\"    \" Default: ·  An unoccupied cell on the board\nlet g:robots_robot = '+'         \" Default: ■  A robot bent on capturing you\nlet g:robots_junk_pile = '*'     \" Default: ▲  A junk pile\nlet g:robots_player = '@'        \" Default: ●  You\n\" The following settings have no counterpart in the original game.\nlet g:robots_safe_portals  = 'o' \" Default: ⬡ A portal only you can use\nlet g:robots_risky_portals = '#' \" Default: ⬢ A portal you and robots can use\n```\n\nWhen transporting, a meandering path is drawn from the starting location to the final destination. It's just a bit of hi-res eye candy, and it can be slow on some computers. To turn it off, use this statement:\n\n```vim\nlet g:robots_animation = 0\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilrunninger%2Fvim-robots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphilrunninger%2Fvim-robots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilrunninger%2Fvim-robots/lists"}