GitXplorerGitXplorer
N

CritterWorld

public
0 stars
0 forks
0 issues

Commits

List of commits on branch main.
Verified
26a11739c14b152cd1ac8032b4bc63a36c57dcba

Update README.md

NNgaiJustin committed 4 years ago
Unverified
934d32e77832322fe254983d9b20a9094e33aeb9

Merge branch 'main' of https://github.com/NgaiJustin/CritterWorld into main

NNgaiJustin committed 4 years ago
Unverified
9f1bab2b755bccb4a89ed034dca09119b8c5a518

Fix case issue with naming directory

NNgaiJustin committed 4 years ago
Verified
8b2ee0387a7b0fb32854625c0a066f96979b7c70

Update README.md

NNgaiJustin committed 4 years ago
Unverified
be59e8b5be83112e8f40d22c15e9792cb5ca3c6c

Upload one more image

NNgaiJustin committed 4 years ago
Verified
3055dc7237289f61b3a3b2c2d99d1d2930895105

Update README.md

NNgaiJustin committed 4 years ago

README

The README file for this repository.

CritterWorld

(CS 2112 - Cornell University) Object-Oriented Design and Data Structures (Honors) Final Project

Unfortunately, the academic integrity policies at Cornell University prohibit making source code from course projects publically available. However, we have received permission from the instructor to share the repository with individual employers. Feel free to contact me, if you find this project interesting and wish to view the source code!

CritterWorld is a project that simulates a world of small agents—critters—with the goal to survive. These critters can move, eat, attack each other and even mate with other willing critters. Critters are also able to sense the nearest piece of food with a “smell” command, implemented with a modified version of Dijkstra's shortest path algorithm.

Each critter behaves according to a “Critter Program” unique to each critter. This program is written in the “Critter Language”—a context-free grammar—defined by the course staff which can be found in the detailed project spec below. As part of the project, I wrote the parser and interpreter for this critter language. New critters inherit the critter program from their parents with a slight chance of mutation—implemented using fault injection in the abstract syntax trees constructed by the interpreter of the critter language. The GUI was designed with UX principles in mind and built in JavaFX.

alt text alt text alt text alt text alt text

More detailed project spec can be found here.