{"id":24829745,"url":"https://github.com/akselsledins/google-hashcode-2018-live-simulation","last_synced_at":"2025-08-27T05:13:50.337Z","repository":{"id":81035850,"uuid":"123486732","full_name":"AkselsLedins/google-hashcode-2018-live-simulation","owner":"AkselsLedins","description":"Google Hash Code 2018 - Simulation / Result Viewer","archived":false,"fork":false,"pushed_at":"2022-05-18T15:47:47.000Z","size":10341,"stargazers_count":14,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-20T13:52:12.381Z","etag":null,"topics":["go","golang","google","hashcode","hashcode-2018","results","results-viewer","simulation"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AkselsLedins.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2018-03-01T20:09:04.000Z","updated_at":"2020-02-15T22:34:47.000Z","dependencies_parsed_at":"2023-06-09T12:00:09.484Z","dependency_job_id":null,"html_url":"https://github.com/AkselsLedins/google-hashcode-2018-live-simulation","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/AkselsLedins/google-hashcode-2018-live-simulation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkselsLedins%2Fgoogle-hashcode-2018-live-simulation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkselsLedins%2Fgoogle-hashcode-2018-live-simulation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkselsLedins%2Fgoogle-hashcode-2018-live-simulation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkselsLedins%2Fgoogle-hashcode-2018-live-simulation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AkselsLedins","download_url":"https://codeload.github.com/AkselsLedins/google-hashcode-2018-live-simulation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AkselsLedins%2Fgoogle-hashcode-2018-live-simulation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272294125,"owners_count":24908766,"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-08-27T02:00:09.397Z","response_time":76,"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":["go","golang","google","hashcode","hashcode-2018","results","results-viewer","simulation"],"created_at":"2025-01-30T23:38:49.327Z","updated_at":"2025-08-27T05:13:50.314Z","avatar_url":"https://github.com/AkselsLedins.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eGoogle Hash Code 2018 : live simulation\u003c/h1\u003e\n\n\n\u003cdiv align=\"center\"\u003e\n\n![goreport](https://goreportcard.com/badge/github.com/AkselsLedins/google-hashcode-2018-live-simulation)\n[![CircleCI](https://circleci.com/gh/AkselsLedins/google-hashcode-2018-live-simulation.svg?style=shield)](https://circleci.com/gh/AkselsLedins/google-hashcode-2018-live-simulation)\n![License](https://img.shields.io/github/license/AkselsLedins/google-hashcode-2018-live-simulation.svg)\n![Forks](https://img.shields.io/github/forks/AkselsLedins/google-hashcode-2018-live-simulation.svg)\n![Stars](https://img.shields.io/github/stars/AkselsLedins/google-hashcode-2018-live-simulation.svg)\n![Twitter](https://img.shields.io/twitter/url/https/github.com/AkselsLedins/google-hashcode-2018-live-simulation.svg?style=social)\n\n\u003c/div\u003e\n\n## Introduction\n\nSome context on the competition:\n\nWe are given a list of pre-booked rides in a city and a fleet of self-driving vehicles. The objective of the competition is to assign the rides to vehicles, so\nthat riders get to their destinations on time.\n\n[The competition subject](resources/subject.pdf)\n\n#### Guide to better understanding the animation\n\n| Illustration                                                                                                                                                        | Explanation                                                                         |\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|\n| ![driver](screenshots/legend/driver.png)                                                                                                                            | A red dot is a car.                                                                 |\n| ![failed-trip](screenshots/legend/failed-trip.png)                                                                                                                  | The red line is a representation of a failed trip. The car arrived late.            |\n| ![will-complete](screenshots/legend/driver-on-ride-1.png)  ![Preview](screenshots/legend/driver-on-ride-2.png)  ![Preview](screenshots/legend/driver-on-ride-3.png) | A blue line is a trip in progress. You can see the car going through.               |\n| ![will-complete](screenshots/legend/driver-will-complete-1.png)  ![will-complete](screenshots/legend/driver-will-complete-2.png)                                    | A green line is a completed trip.                                                   |\n| ![assigned](screenshots/legend/assigned-ride.png)                                                                                                                   | A grey line means that a driver is assigned to the trip.                            |\n| ![waiting](screenshots/legend/driver-waiting-at-start.png)                                                                                                          | A yellow line means that the driver is ready, but it's too early to start the ride. |\n\n**Important:** we are only showing the assigned trips. If you press [T] you can toggle off/on the unassigned ones.\n\n\u003cdiv\u003e\n\u003cimg alt=\"off\" src=\"screenshots/legend/toggle-off-all-trips.png\" width=\"45%\" align=\"right\" \u003e\n\u003cimg alt=\"on\" src=\"screenshots/legend/toggle-on-all-trips.png\" width=\"45%\" \u003e\n\u003c/div\u003e\n\n## Preview\n\n\u003cdiv align=\"center\"\u003e\n\n![Preview](screenshots/preview.gif)\n\n\u003c/div\u003e\n\n## Installation\n\n```\n$\u003e make deps\n$\u003e make\n```\n\n### Requirements\n\n* OpenGL see [github.com/faiface/glhf](https://github.com/faiface/glhf#which-version-of-opengl-does-glhf-use)\n* [github.com/faiface/pixel](https://github.com/faiface/pixel#requirements)\n* [github.com/go-gl/glfw/v3.2/glfw](https://github.com/go-gl/glfw#installation)\n* `go\u003e=1.8.1`\n\n## Running\n\n\n| flag   | required | explanation                                                                               |\n|--------|----------|-------------------------------------------------------------------------------------------|\n| -o     | :white_check_mark:      | path to the output file you have generated with your program during the hashcode          |\n| -i     | :white_check_mark:      | corresponding input file, ex: b_should_be_easy.in                                         |\n| -noGui |          | you can run the simulation withtout a graphic interface. This will only output your score |\n| -h     |          | display help                                                                              |\n\n#### Example with a Graphic Interface\n\n```\n$\u003e ./google-hash-code-2018 -o resources/output-files/b.out -i resources/input-files/b_should_be_easy.in\n```\n\n\n\u003cdiv align=\"center\"\u003e\n\n![Preview](screenshots/v0.10.png)\n\n\u003c/div\u003e\n\n#### Example without a Graphic Interface\n\n```\n$\u003e go run main.go -o resources/output-files/e.out -i resources/input-files/e_high_bonus.in -noGui\n16381105\n\n```\n\n\n## Graphic interface commands\n\n| Command       | effect                                |\n|---------------|---------------------------------------|\n| press \"space\" | pause / start the simulation          |\n| press \"t\"     | shows / hide all the simulation trips |\n| arrow keys    | move the camera around                |\n| mouse scroll  | zoom in/out                           |\n\n\n## FAQ\n\n### Why ?\nI thought it would be a fun project to practice Go\n\n## Contributing\n\nSee \u003ca href=\"https://github.com/AkselsLedins/google-hashcode-2018-live-simulation/blob/master/CONTRIBUTING.md\"\u003eContributing.md\u003c/a\u003e.\n\nBut basically feel free to contribute if you find something to improve.\n\n\n## License\n[GPL-V3](https://tldrlegal.com/license/gnu-general-public-license-v3-(gpl-3))\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakselsledins%2Fgoogle-hashcode-2018-live-simulation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakselsledins%2Fgoogle-hashcode-2018-live-simulation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakselsledins%2Fgoogle-hashcode-2018-live-simulation/lists"}