{"id":19132882,"url":"https://github.com/dthung1602/cooperativehunting","last_synced_at":"2026-04-10T21:02:34.235Z","repository":{"id":105192261,"uuid":"164021992","full_name":"dthung1602/CooperativeHunting","owner":"dthung1602","description":"The goal of this project is to simulate and visualize the various hunting strategies as well as manoeuvres used by predators to corner and surround their prey.","archived":false,"fork":false,"pushed_at":"2019-02-05T17:43:47.000Z","size":885,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-22T17:44:21.075Z","etag":null,"topics":["hunting","javafx-desktop-apps","maven","scenebuilder","simulation"],"latest_commit_sha":null,"homepage":null,"language":"Java","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/dthung1602.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.txt","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":"2019-01-03T20:55:14.000Z","updated_at":"2023-08-01T09:06:56.000Z","dependencies_parsed_at":"2023-04-13T17:47:09.679Z","dependency_job_id":null,"html_url":"https://github.com/dthung1602/CooperativeHunting","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dthung1602/CooperativeHunting","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dthung1602%2FCooperativeHunting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dthung1602%2FCooperativeHunting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dthung1602%2FCooperativeHunting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dthung1602%2FCooperativeHunting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dthung1602","download_url":"https://codeload.github.com/dthung1602/CooperativeHunting/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dthung1602%2FCooperativeHunting/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267162476,"owners_count":24045502,"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-07-26T02:00:08.937Z","response_time":62,"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":["hunting","javafx-desktop-apps","maven","scenebuilder","simulation"],"created_at":"2024-11-09T06:19:57.431Z","updated_at":"2026-04-10T21:02:29.193Z","avatar_url":"https://github.com/dthung1602.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"SIMULATING AND VISUALIZING COOPERATIVE HUNTING\n==============================================\n\n## 1. INTRODUCTION\n\nEvery living form needs some kind of nutrition, and while some obtain it through \"peaceful\"\nways, e.g. photosynthesis or from plants, others have adapted to more feral techniques. One\nsuch example is hunting, which is the process of pursuing and killing other live forms. The\nrich diversity of animals that have evolved over millions of years has also introduced a rich\ndiversity of hunting techniques, each with its pros and cons. An especially interesting strategy is\nthe cooperative hunting, which is related to the evolution of sociability between animals. It\nis a phenomenon where individuals work/hunt together to capture more prey at a lower over-\nall risk/cost. Moreover, solitary hunting may even be impossible, effectively forcing predators\nto cooperate in order to survive. Lions, wolves and humans are typical examples. Cooperative\nhunting is a complex behaviour as it requires social skills and coordination within the hunting\nparty. For instance often the prey is much faster than the predators, who must employ\ncornering and surrounding approaches to counter this advantage. In other cases the prey is\nsimply too strong for the individual predator, and thus a larger group is needed to bring it\ndown.\n\nA predator would generally stick to a single hunting strategy. Some, however, are versatile\nand adapt to the circumstances. After all, what counts in the end is surviving. Therefore, a\ngenerally solitary hunter may cooperate with others to kill prey otherwise too strong for him\nin order to survive, and a group hunter may see the opportunity of an easy solitary hunt and\nnot inform the group, thus keeping everything for himself.\n\n\n## 2. Project scope\n\nThe goal of this project is to simulate and visualize the various hunting strategies as well as\nmanoeuvres used by predators to corner and surround their prey. For this purpose an application\nhas to be programmed in Java consisting of an animation window displaying the simulation's state,\na statistics window displaying information about the simulation (see 2.2),\nas well as at window containing the graphical user interface to operate the simulation and\nfeed it the input parameters (see 2.1). The animation can be a simple 2D Cellular automaton\nl;3l. where the environment is represented by a grid and each object in it by a Coloured position or\ngroup of tiles (see Fig. 2.1). The application should be able to display the moving predator\nand prey individuals as well as the predator group radius (see Fig. 2.2). Changes in the\nenvironment are done by updating the respective tiles’ colour, e. g. if a predator moves from position\nA to position 8, then position B will be changed to the predator's colour, whereas position A will receive the\ncolour representing an empty position. You should implement the following rules regarding the hunt:\n\n1. Each Predator individual must be able to make a decision regarding his hunting strategy\nbased on the given circumstances (hunt small prey alone or notify group when help\nfor larger prey is needed). Other hunting strategies apart from cooperative and solitary\nare not needed.\n\n2. When hunting large prey in a group the predators must consider and stay within the\ngroup radius. while still trying to corner and surround the prey.\n\n3. A prey is considered killed only if a predator within a group of the needed size reaches it.\n\n4. If the predator group size is not of sufficient size the prey will retaliate by attacking\nthe closest predator and killing it should it score a number higher than the predator's defence.\n\n5. Predators being attacked by the prey should try to escape and join the group again (be\nwithin the group radius).\n\n6. The predators may employ various manoeuvre tactics to corner the prey. without it\nbeing aware of them, i.e. the prey should simply try to get as far as possible from the\npredators without any specific strategy in mind.\n\n7. Predators should be able to see prey and other predators from the group only within\nsome radius (preferably greater than the group radius). Outside of this radius a predator may signal its presences and location to the others by \"howling\".\n\n8. Each iteration all predators lose hit points due to starvation. These can be regained\nonly through killing prey.\n\n### 2.1 Input\n\nThe input parameters for the application include. but are not limited to:\n\n- **Grid size** - the width and the height of the grid (in number of tiles as in Fig. 2.1).\n\n- **Initial predator count** - the number of predators at the beginning of the simulation.\n\n- **Prey size/position** - position of a prey animal on the grid for instance as a pair of x, y\ncoordinates and its size in grid tiles (small prey is easier to kill, but gives less nutrition).\n\n- **Auto-generate prey** - when activated this option should enable the application to generate\nprey animals at random locations every x seconds.\n\n- **Predator run speed** - how many tiles can the predator cross in a single iteration.\n\n- **Prey run speed** - how many tiles can the prey cross in a single iteration.\n\n- **Predator starvation resilience** - how many iterations can a predator individual endure\nwithout food intake (the predator dies if he does not successfully hunt a prey during\nthis period).\n\n- **Predator defence chance** - a larger prey would attack a lone predator and kill it if it\nscores a number greater than the predator's defence.\n\n- **Predator group radius** - if a number of predator individuals are within a given distance\nof each other, they form a group and can hunt larger prey.\n\n- **Simulation object colours** - for instance a drop down menu with several colour options\nfor the predator objects and for the various prey objects (no duplicates).\n\n- **Simulation speed** - the overall speed of the simulation/animation (a lower speed may\nbe desirable when observing the program in action, whereas a higher speed can deliver\nresults more quickly).\n\n### 2.2 Output\n\nThe outputs delivered by the application should include, but are not limited to:\n\n- Average food gain per iteration - the average nutrition from killed prey per iteration\nthat the predator population has gained.\n\n- Predator count - remaining predator individuals.\n\n## 3 Possible pitfalls\n\n- Effective scouting - if the group always stays together it will be stronger, but will find\nless prey. Therefore, a strategy is needed to disperse the group and bring it back together\nwhen prey is found.\n\n- Hunting in subgroups - a dispersed group may locate various prey animals in different\nlocations. lt should be able to hunt in subgroups in order to kill as much of the prey as\npossible, instead of bringing the entire group back for a single hunt.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdthung1602%2Fcooperativehunting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdthung1602%2Fcooperativehunting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdthung1602%2Fcooperativehunting/lists"}