Due date: 3/16 : NOON
Running a Turn, Enforcing Contracts
Task 1: [POINTS: 20] Your first task is to equip your
You may either implement the contracts manually or through the use of a contract system for your language. A contract error must signal an exception from which the overall program may recover. Note: you are better off learning how to use a contract system than writing your own. As far as I know, all chosen languages provide some basic contract system though none of them provide sound ones.
Task 2: [POINTS: 20] Your second task is to equip your test
harness of Project 7 with capabilities for checking
test cases concerning contract violations. That is, if the (proxy-)player
violates the contract with
Task 3: [POINTS: 0, see below] The third task is to develop test
cases for your administrator that ensure that it can deal with
POINTS: The base score for Task 2 is 0 points. We will run our own test administrator for all test harnesses on our test cases. We will also run all submitted test cases on our test harness.
(1) You will receive a point for each test case that discovers an error in our interaction module. If distinct test cases discover the same error in someone else's code, you don't get more than one point. (2) You will lose one point for each test case that contains an error. (3) You will not receive fewer than 0 points (though we will display the negative points in the chart).
Task 4: [POINTS: 5] When the game administrator hands a turn to a player, the latter should protect its integrity with contracts about the cards that it may receive information about through the turn. Formulate such contracts in plain English and explain how we can get some of the necessary information already and what we would need to add to get the rest. See EXERCISE in Contracts Specifications.
|last updated on Tue Jun 9 22:03:19 EDT 2009||generated with PLT Scheme|