[Technical Support] [Soccer Server] [Groups] [First Project] [Second Project] [Makeup Project]
If you mail Adam, remember he is a volunteer and like many of you, he is both working full time and studying as well as answering your questions. So I expect you to be both polite and respectful when dealing with him.
[Technical Support] [Soccer Server] [Groups] [First Project] [Second Project] [Makeup Project]
One way to work on the project is to download the Soccer Server from SourceForge and run the simulator server on your own computer.
However, to make things easier we have set up a copy of the simulator server running on a machine at Brooklyn College. If you use this, all you have to do is to login to that computer and run the simulator server (though you will still need to run the monitor on your own machine in order to see what is going on).
In order to get started, you should email me and I will then tell you the IP address of the machine running the simulator, and the username and password you can use to login. Once you are logged in you will find information on the computer that tells you how to get started.
We have also supplied you with some sample code (again this is already in the account that has been set up for your team).
Finally, there is some free code that can be used as part of your project. If you go to the http://rccparser.sourceforge.net/ web site, you can find RCCParser and RCClient which provide all the networking and parsing functionality required by the program you have to write. Both the parser and client are available under GPL.
[Technical Support] [Soccer Server] [Groups] [First Project] [Second Project] [Makeup Project]
Group A
Ghodasara
Ishak
Thorne
Group B
Bracichowicz
Gayle
Varon
Group C
Agrest
Shagas
Shuster
Group D
Defunct
Group E
Liang
Xuan
Wang
Group F
Ahmad
Haider
Jung
Sahin
Group G
Croff
Miller
Stuart
Group H
Defunct
Group I
Defunct
Group J
Maslov
Rodriguez
Tsang
Xu
[Technical Support] [Soccer Server] [Groups] [First Project] [Second Project] [Makeup Project]
Each report should be 4-5 pages long (standard letter paper, 10-12pt type, single spaced), and should describe the design of the the code which controls the soccer player.
You must not only describe the design choices made, but also justify them.
In addition to the 4-5 pages of report, you must submit two other items:
You have to develop a soccer team with 5 players on it.
This could be very simple; you could just set up a team which has five players identical to the one player developed in the first project. However, such a simple team will not get great marks.
A more sophisticated team, maybe one that uses some of the AI techniques we have considered during the course, will attract higher marks.
In order that everyone starts the seond project from approximtely the same place, I will, on request, give you code for a player (a client program for the server) that can find the ball and kick it into the goal. Let me know by email if you want this.
Each report should be 4-5 pages long (standard letter paper, 10-12pt type, single spaced), and should describe the design of the the code which controls the soccer player.
You must not only describe the design choices made, but also justify them.
In addition to the 4-5 pages of report, you must submit three other items:
The program should carry out breadth-first search, iterative deepening search, and both greedy and A* search based on a heuristic that you make up.
A trace should involve printing either the set of new states added to the agenda each time the program runs the top-level loop, or printing the entire agenda each time the new states have been added.
You need to include a trace for all four searches.
left bank: number of evangelists number of atheists number of boats right bank: number of evangelists number of atheists number of boatsYou then have to represent the operations. These are functions which take a state and generate a new one, representing the movement of a boat across the river. Depending on how you write these functions, you may need to check that the operations don't lead to illegal states.
With these components, you should be able to implement the algorithm for breadth-first search given in the lectures. For the agenda you will need to use a stack or a vector (you might be able to get away with an array, but it will need to be a BIG array) which holds a set of states and which allows you to add new states at the start of the array.
If you find that your program is creating a huge array, one problem is likely to be that it keeps generating new copies of the same state. You might want to try removing duplicate states from the agenda.
Once you have the code for breadth-first search, it should be easy to revise the program to do iterative-deepening search, greedy search, and A* search.
[Technical Support] [Soccer Server] [Groups] [First Project] [Second Project] [Makeup Project]