Michael Xing - Greeps Project


Hello. My name is Michael Xing. I like programming, I guess, because I kind of wasted a metric ton of time I should've spent studying building this custom website. The irony of the whole thing is that I built this myself because I didn't like the default templates Google had laid out in their Google Sites, so I instead went out on my own and used the design template called Material Design, invented by... Google. Welp. That happened.

So yeah. I'm usually very logical, but sometimes I do not logical things simply because I feel like it. Because I'm stubborn. Anyways, this is a website. Enjoy. I spent way too much time on it.

Michael Xing

Artificial Intelligence - Explanation

Artificial Intelligence is the mimicry of intelligent behavior by machines. Though often confused with sentient computers, artificial intelligence can be much simpler than that. For example, the voice assistant on your phone or a computer mapping out the best route on a map are all examples of artificial intelligence. It doesn't have to just simulate human intelligence (McCarthy) - it just has to involve some sort of problem solving that's more complicated than a simple series of if-then checks.



Spoilers ahead.


Cortana from the Halo games Cortana was a benevolent artificial intelligence, a vital sidekick to the character throughout the events of the Halo games. She was instrumental to the character is providing information as well as helping to contain the Halo installations from killing all sentient life in the universe. However, in the most recent game, after "dying," she has since become much more bitter and antagonistic, actively working against the player (Thier).


VIKI from I, Robot VIKI was the sentient artificial intelligence from the movie I, Robot, running the day-to-day operations of US Robotics and the city of Chicago. Designed as a helpful assistant that followed the three laws of robotics, her understanding of the laws "evolved" until she used the guise of protecting humans as a justification for killing and/or suppressing humans, wielding the full power and infrastructure of US Robotics - both the facility and the robots - to do so (IMDB).


Terminator robots from the Terminator series being controlled by SkyNet Originally designed as an intelligent aid to the US military in the Terminator series, SkyNet immediately became self-aware on startup and took full control of the US military and every computer connected to the Internet. Using the nuclear arsenal of the United States, through the events of what became known as Judgement Day, Skynet caused the nuclear anihilation of almost the entire human species, leaving only a small force of people attempting to rebel against the machines (Ford).

Hal 9000

The eye of HAL 9000 from 2001 In the book and film 2001, A Space Odyssey, HAL 9000 is an artificial intelligence built into the ship and is considered a vital member of the crew. It performs many necessary tasks to maintain the operational status of the ship and also, from time to time, can participate in other activities like playing chess with the crew. However, due to various reasons, when the scientists attempted to disable HAL, in a last ditch attempt at self preservation, HAL killed the crew with methods at his disposal, such as locking them out of the ship ("Open the pod bay doors." "I'm sorry Dave, but I'm afraid I can't do that.") (Clarke).

Real World


Cortana from Windows 10 First introduced in Windows Phone 8.1 at //Build/, Cortana is Microsoft's digital assistant, based off the Cortana character from their popular Halo games, built into Windows Phone and Windows 10, as well as being an app on Android and iOS. As a virtual assistant, she is capable of scheduling events, remembering reminders, answering emails, doing Google Bing searches, and telling jokes, similar to other reminders. She is also, according to Microsoft, able to perform context-specific tasks depending on the person you are interacting with (Microsoft).

Deep Blue

IBM's chess-playing, Deep Blue, playing Garry Kasparov Deep Blue was IBM's artificial intelligence designed by IBM. It made headlines for being the first computer to defeat a chess grandmaster when it beat Garry Kasparov 3.5-2.5 in a 6 game rematch in 1997. It was a revolutionary development in that it was the first time that a computer had managed to play a game like chess - previously believed to be an intelligent activity that only humans could engage in - better than a skilled human being (Mcphee).


Google's Go-playing AI, AlphaGo Seen by many as the spiritual successor to Deep Blue, Google made headlines in March 2016 when its DeepMind division's AlphaGo artifical intelligence beat world champion Go player Lee Sedol 4-1. It represented a major milestone because, while Deep Blue had played chess by substituting raw computational power for strategy, calcaulating millions of possible move combinations, Go is an infinitely more complex game because the simpler rules and larger board allows for orders of magnitude more possible move combinations. It's not possible with modern technology to brute force the game. As a result, AlphaGo took advantage of large neural networks fed by thousands of previous Go games to devise new strategies never before seen, winning the championship (Metz).

Works Cited

Clarke, Arthur C., and Stanley Kubrick. 2001: A Space Odyssey. New York: New American Library, 1968. Print.

Ford, Jeremy. "Skynet Becomes Aware, Launches Nuclear Attack On Humanity." Singularity HUB. Singularity University, 19 Apr. 2011. Web. 31 May 2016. <http://singularityhub.com/2011/04/19/skynet-becomes-aware-launches-nuclear-attack-on-humanity/>.

IMDB. "I, Robot Plot Summary." IMDb. IMDb.com. Web. 31 May 2016. <http://www.imdb.com/title/tt0343818/plotsummary>.

McCarthy, John. "WHAT IS ARTIFICIAL INTELLIGENCE?" Stanford Formal Reasoning Group. Stanford University, 12 Nov. 2007. Web. 31 May 2016. <http://www-formal.stanford.edu/jmc/whatisai/>.

Mcphee, Michele, K.c. Baker, and Corky Siemaszko. "IBM's Deep Blue Beats Chess Champion Garry Kasparov in 1997." NY Daily News. 10 May 2015. Web. 31 May 2016. <http://www.nydailynews.com/news/world/kasparov-deep-blues-losingchess-champ-rooke-article-1.762264>.

Metz, Cade. "In Two Moves, AlphaGo and Lee Sedol Redefined the Future." Wired.com. Conde Nast Digital, 16 Mar. 2016. Web. 31 May 2016. <http://www.wired.com/2016/03/two-moves-alphago-lee-sedol-redefined-future/>.

Microsoft. "Cortana." Windows. Microsoft. Web. 31 May 2016. <https://www.microsoft.com/en-us/windows/cortana>.

Thier, Dave. "'Halo 5's' Biggest Twist Is Pretty Brilliant." Forbes. Forbes Magazine, 27 Oct. 2015. Web. 31 May 2016. <http://www.forbes.com/sites/davidthier/2015/10/27/halo-5s-biggest-twist-is-pretty-brilliant/#11e9b6f659f5>.


Alien creatures have landed on Earth! They are the Greeps and they like tomatoes. By some incredible stroke of luck, they have landed in an area where piles of tomatoes are found randomly spread out over the otherwise barren land. They have landed with their spaceship and are swarming out to find and collect tomatoes. Help your Greeps collect as many tomatoes as possible and bring them back to their spaceship.

The challenge in this programming competition will be to program your Greeps so that they find and collect tomatoes as quickly as possible. You will have limited time, and every tomato you manage to bring back to the spaceship scores a point. As part of this contest, you may modify only the Greep class in the scenario. It will then be handed in to the teacher to be run and compared to others.


This project was a lot harder than I had originally anticipated. At first, I thought I'd be able to program some simple movement logic that ensured the greeps didn't get stuck on walls and that would be it. Turns out, that was decidedly not it. Finding tomatoes wasn't hard, for whatever reason. A bit of randomness in terms of turning when a greep hit a wall easily solved that problem. The real difficulty for me was trying to get the greeps back to the ship with tomatoes. I tried having the greeps backing up and then picking a random direction for a bit before returning to pointing straight at the ship, but that only solved small obstacles and didn't seem to really help in terms of complex environments, like the infamous map 3.

I know the solution I settled on isn't the best, but given the limited time I had and all the other things I needed to be doing, it's good enough. What ends up happening is that the greep backs up, turns 90 degrees in a direction randomly determined but then remembered, moves, turns 90 degrees in the same direction, and tries moving forward again. If it hits a wall again, repeat. If not, reset the randomly determined direction. This essentially manifests itself in a kind of looping behavior where the greep continuously tries to bump its way down a wall until it reaches the end of the wall and is able to continue on its way. It's not perfect, but it works well enough.

One of the things I tried that did actually work really well is the paint system I came up with. What basically happens is that anytime a greep is carrying a tomato, it sprays red paint. This essentially means that it'll draw the line it takes from a tomato stash to the ship, which other greeps can follow. Given my pathfinding algorithm, it's not really that useful for meandering routes, but for straight shots to the ship, it's amazingly effective. Coupled with a quick line of code that makes greeps turn 180 degrees after dropping off tomatoes, this ensures that, if a stash of tomatoes is directly facing the ship, within seconds of the first greep discovering it, the entire stash can be efficiently collected. That was actually really easy and really effective to implement.

Looking at some of the other solutions, I realize that mine isn't particularly impressive nor successful. If I had more time, I'd love to try to figure out a way to better hug walls on the way back to the ship so that my greeps don't get caught while looping, which seems to happen from time to time. However, the fact remains that my program works, and I stand by that.

Final Competition Version

My final Greeps code that I am using for the competition is available, hosted on GitHub, via the button below.

Project Rubric

Topic Expert
“A” Level
5 points
“B” level
4 points
“C” level
3 points
“D” level
2 points
Little / No effort
0 points
Fictional examples of AI 4 examples 3 examples 2 examples 1 examples missing
Examples are well docmuented with an explanation, image/video and reference citation. Examples are docmuented with an explanation, image/video and reference citation. Examples are minimally docmuented or may be incomplete. Several examples are missing one or more documentation points: paragraph, image/video, reference citation. Content below college level OR missing.
Real-world examples of AI 2 or more cited sources 1 cited source 1 or more uncited sources No sources or incorrect citations missing
Examples are well docmuented with the purpose, implications/ethics and reference citation. Examples are docmuented with the purpose, implications/ethics and reference citation. Examples are minimally docmuented or may be incomplete. Several examples are missing documentation points: purpose, implications/ ethics, reference citation. Content below college level OR missing.
Greeps Summary Clearly communicate advanced changes that significantly improve the Greeps intelligence. Clearly communicate good changes that improve the Greeps intelligence. Attempt to communicate changes to the Greeps class. Incomplete communication of changes made or planned during the project Content below college level OR missing.
Greeps Competition Version 101 or more tomatoes collected over 10 maps 61 to 100 tomatoes collected over 10 maps 21 to 60 tomatoes collected over 10 maps 10 to 20 tomatoes collected over 10 maps Less than 10 tomatoes OR No noticeable change from provided template code
Website Website named correctly and shared correctly Website not named correctly OR not shared correctly before the Final Deadline
The website has an exceptionally attractive and usable layout. It is easy to locate all important elements. The website has an attractive and usable layout. It is easy to locate all important elements. The website has a usable layout, but may appear busy or boring. It is easy to locate most of the important elements. The website is cluttered looking or confusing. It is often difficult to locate important elements. No noticeable change from provided template
Final Deadline
5/31/2016, 11:59pm
Website completed on time, Final greep.java file uploaded Website incomplete OR worked on after Final Deadline


_____ / 45 possible points