Our finished game met our expectations in some regards and left us dissatisfied in others. We feel we did an adequate job in creating a fairly difficult AI, one that could check a couple of steps in the future to go for a win or prevent an opponent's win. We did implement the functionality we had hoped - allowing for single or double player games, varied selection of AI, and starting a new game without resetting the micro-controller. The flicker is kept to a minimum, as are the screen artifacts. This is something we are very proud of. Since the AI required so much memory we are very disappointed at the Mega32's memory capacity. Taunts and congratulatory fireworks animations for winning were successfully implemented but had to be left out due to the Mega32's memory capacity. Many other cosmetic additions also had to be excluded. Even though implementing a color Tee-Vee would have increased our project's complexity and difficulty we think it would have been well worth the effort.
In the future we would probably start first by securing a color TV and ordering the requisite hardware as early as possible. Since the AI was so long we would like to investigate condensing the code, possibly by using assembly language.
We did re-use code that was not our own. The randomizing function was borrowed from How Stuff Works. Additionally we borrowed the video syncing code from Professor Land, as well as the idea of toggling a bit to produce sound. Of course we did not invent the concept of dropping pieces into a 6x7 grid in hopes of connecting four of them in a vertical, horizontal, or vertical line! This game was created Milton Bradley, or whomever else was smart enough to do it. There was no reverse engineering involved. We did not have to sign a non-disclosure agreement, nor is there anything patent-able in this project.
Code of Ethics - Did we follow 'em????????????
Of course foo.
1. We tried to accept responsibility in making engineering decisions consistent with the safety, health and welfare of the public, and to disclose promptly factors that might endanger the public or the environment.
3. We were honest and realistic in stating claims or estimates based on available data;
4. We accepted no bribes...
7. We are willing to seek, accept, and offer honest criticism of technical work, to acknowledge and correct errors, and to credit properly the contributions of others.
10. We tried to assist colleagues and co-workers in their professional development and to support them in following this code of ethics.