|
Once upon a time, Matt
Fowles lived in the room next to mine. The two of
us made an excellent programming team, and during my last two semesters we
collaborated on a number of projects.
Konane:
Matt and I tried to paramaterize all possible AIs for a Konane game player
and then apply search algorithms to find the best possible Konane player.
It seemed like a great idea at the time. Unfortunately it didn't work out
as well as we hoped; the problem seems to be that we need a better comparison
operator.
Multiple
Dispatch: Probably the most clever bit of code I've ever been involved
in writing - an implementation of 2 variable multiple dispatch for C++. Matt's
writeups tend to be a little... technical, so if you're only interested in
seeing the dispatcher in action, I'd suggest going straight to our
example
code.
One quick anecdote: Before writing up the dispatcher,
Matt and I had a chance to briefly talk to Bjarne Stroustrup about our plans
- his comment was something like "I would have implemented that myself,
but never quite got around to it; deciding how to handle all possible cases
turns out to be a real mess". As we soon found out, Bjarne was right.
Multiple dispatch and multiple inheritance do not play well together.
Nolfi vs. Elman: The final project
for our robotics seminar - introducing an Elman Network into Nolfi's "Emergent
Modularity" experiments. Matt and I hacked
the Stage client in a way that let us run generations of our GA much faster
than we could have going through Player.
|