CSU 670 Spring 2009 Out: February 10, 2009 Due: February 17, 2009 Karl Lieberherr Ahmed Abdelmeged Surviving in the SDG robotic world. Our robots become now teenagers who can create and respond intelligently to a more sophisticated world. Subproject 6 ================================================================= Implement a robot capable of playing Classic SDG CSP Fast Pitch Softball 2 Independent (2 relations not in an implication relationship) and T Ball in our fourth robot competition. PART 1: 30 points ======================================== Implement a deterministic algorithm for finishing products effectively. So far we used a randomized algorithm. We call the new algorithm the Derandomized Softball Finisher. Derandomize your algorithm based on the following recurrence relation for raw material F: look-ahead[F](b) = b * look-ahead[F[x=1]] + (1-b) * look-ahead[F[x=0]] (F[x=1] and F[x=0] are Shannon cofactors.) Test the recurrence relation by hand on the following example: F = 1: 22 x1 x2 x3 1: 22 x1 x2 x4 1: 22 x1 x3 x4 Choose x=x1 and turn in look-ahead[F[x=1]] and look-ahead[F[x=0]] and check that look-ahead[F](b) = b * look-ahead[F[x=1]] + (1-b) * look-ahead[F[x=0]] Project Submission Guidelines: ============================== 1. Player: 1.1. Turn in the jar file for your player, without source code, to /scratch/lieber/csu670-sp09-sdg/feb10 Make sure you name your robot after your team name followed by the subproject number. If your team name is SilverSnakes, call your jar on Blackboard SilverSnakes6_Source.jar and the other one: /scratch/lieber/csu670-sp09-sdg/jan27/SilverSnakes6.jar for this subproject 6. 1.2. * Use the given manifest file supplied with the GenericPlayer located at: http://www.ccs.neu.edu/home/lieber/courses/csu670/sp09/source/GenericPlayer/player/player.mf This manifest file has two important entries. The first is the "Main-Class" entry which defines the entry point for the player (the class with the public static void main method). This makes the jar executable and this is in turn important for the Admin to run your player. In the generic player, it is the GenericPlayer class. The second important record is the "Player-Class" entry which points to a class that implements the PlayerI interface. In the generic player. it is again the GenericPlayer class. This is important because we'll have an evaluator that evaluates the intelligence of the different agents of your robot. 2. Source Code/Assignments: 2.1. Deliver Source Code/Assignment by checking them into svn BEFORE the deadline. Check your projects into the following path: https://trac.ccs.neu.edu/svn/speckerderivativegame/trunk/ Where GROUP_NAME is: 670km for: kathryn, mark, 670cx for: carol, xueyi, 670mm for: matthew, manny, 670gja for: ghadeer, jana, aron, 670jr for: john, ron, 670dl for: david, lee, 670dm for: dave, matt, 670ak for: alex, ken, 670ij for: ian, jay, 670ca for: charles, andrew, 670bk for: benjamin, konrad, 670cd for: christopher, duc, 670mb for: michael, brian, 670sj for: sarah, jeffery, 670kr for: kenneth, ryan, 670tj for: thomas, jorge, Use your CCIS credentials 2.2. Have your group's submission subdirectory organized as: https://trac.ccs.neu.edu/svn/speckerderivativegame/trunk/ / where project name is project6 for this project. Then, if a project asks for part 1, part 2 with sub parts A and B, part 3, your submission must have the same structure: /part1 /part2 /partA /partB /part3 where partA is a subdirectory of part2, etc. Readme files are appreciated. They should contain information like: part 1 is in Y.java and part 2 in C.java and program.input. 2.3. If a part of your project asks you to develop a program, submit that part as an Eclipse project. (From within eclipse, right click the project and select "team" then "share project"). Your project should have the following structure |_src | |_ |_test |_ 3. Notes: - Remember that your source code will be made available to the class at a later time. - The submitted robots are made available to the entire class so that you can check the competition results and observe the behaviors of all robots and learn from them. - The Scrum masters need to decide which of those parts they have time to implement with their team by the deadline. - The subproject will be evaluated based on how many subprojects you implement and based on the performance of your player in the competition. - It is important to unit test your application. We expect you to put some "Brain Power" in writing the test cases. Demonstrate this to us by writing a test plan and a reasonable amount of test cases.