|
CS 315H-Algorithms and DataStructures Fall 2007 TA : RUCHICA BEHL email id : ruchicab@cs.utexas.edu Office Hours: Painter Microlabs |
| IMPORTANT LINKS
|
|
URGENT ANNOUNCEMENTS
|
SAMPLE REPORTS
|
|
ASSIGNMENT # 7 To increase the heap size of the virtual machine, pass -Xmx(size)m argument to java. For example java -Xmx512m WebCrawler would increase the heap size of your virtual machine to 512megs. When preparing the jar file, you can use java -Xmx512m -jar prog7.jar, if you increased the heap size while running your project. |
|
ASSIGNMENT # 6 Name the jar as prog6.jar |
|
ASSIGNMENT # 5 The character set of the dictionary (i.e. the characters in the words.txt file) can be a superset of normal english alphabet set (a-z/A-Z). Name the jar as prog5.jar |
|
ASSIGNMENT # 4
Some important points regarding the project that may be helpful undo() should take you to last committed state only. The only case I can see at the moment when one feels like going back a couple of steps is when one is loosing. So, in that case one needs to modify the brain's tactics, etc. In any case if you decide to undo() more than one states, just mention it in your report, the need to go back more than 1 committed state, advantages, etc. (Note: I would consider undo() of more than one committed states as deviation from the rules of the game, so do mention such decision properly in your report. You can implement undo() using any implementation strategy that seems good to you. The implementation strategy given in the assignment sheet is a sort of default case in-case you are not able to think about a better one yourself. If you have a better strategy, it would be really good that you implement your strategy, but again a proper mention in the report is mandatory. Pay special attention to sanityCheck(). Include as many checks as you can think of and include them in your report. Adversary implementation might be another area of concern. I know everybody in the class is smart enough to know how to implement multiple inheritance in java. Pay special attention to the worst piece definition. Again, whatever you do, you should not forget to mention it in your report. Words of Advice |
|
ASSIGNMENT # 3
Here is a high level summary of this project that may help clarify your thoughts. Pretend there is this high level simulator that runs a Critter Battle. It manages the board and all the critters on it. On each turn of the battle, the simulator goes to each critter in turn and says "OK, Critter, what is your move?" The Critter then expresses its move at a high level by simply calling a method like "infect" - so critters think for themselves, the simulator doesn't have to. So what must you do? You are the critter. Notice that you are simulating the Critter, not the World. Your code must (1) correctly parse in the critter description file and store it in a convenient, non textual form for easy interpretation of its moves. (Once the critter loads, you should NOT be doing any more parsing on text - this is far too slow.) So now your code has (1) verified the input file is correct, and (2) created an internal version in symbols of the critter's program. Now that you've made a symbolic (non textual) representation of the critter's brain, you must act as the interpreter and RUN its logic. That is, when the world simulator asks your critter for its next move, you must traverse the critter's internally stored symbolic program correctly and select the correct action. You then signal this correct action to the Simulator by calling the corresponding member. When making your code, you need to test that it's really working so you need to make some simple back end that displays the functions the critter is asking to do and make sure it follows the critter's programming correctly. Also, you need to simulate situations that might come up during a world battle in order to thoroughly test the critter's logic - for example, you may have to simulate a barrier in front of the critter or an enemy near the critter to test these cases. But this does not mean you need to simulate a critter board - just make the critter think it's in each situation. For all this to work, your system must implement exactly the same (signatured) functions as our simulator. For example, if you implement a function Eat() but our interface uses the function eat(), then your critter simulator will fail to compile with our world simulator, and you will get a VERY low score. For this reason, just like in the real world we have provided a detailed interface document to show exactly how you should write the member functions that the Critter calls to indicate his actions in the third link below. Instructions: |
|
ASSIGNMENT # 2
|
|
ASSIGNMENT # 1
|
|
ASSIGNMENT # 0
|