Question 1
(This is worth 30% of the total marks available for the present exercise.)
Download the files [login to view URL], [login to view URL],
[login to view URL] and [login to view URL] from Blackboard. A
listing of these files is included in the present coursework specification for your convenience.
The purpose of the program is to play either a card game or a die-rolling game. In the card
game, two cards are selected and the player wins if at least one of them is an Ace. In the dierolling
game, the die is rolled twice and the player wins if at least one of the die roll numbers
is a one.
This program will not work because [login to view URL] is expecting a
LinearCongruentialGenerator defined differently from the way it is defined in the
download files.
i) “Fix” this problem by renaming methods as necessary.
ii) “Fix” this problem in a different way, by applying the Adapter design pattern (leaving
[login to view URL] completely unchanged).
iii) Briefly discuss the pros and cons of the two above approaches to solving this
particular problem.
Question 2
(This is worth 70% of the total marks available for the present exercise.)
i) This program is deliberately inelegant. Write a critique of the program.
ii) Modify the program resulting from Question 1(ii) above in order to improve its
elegance. In particular, your modified program should:
● Handle error conditions more appropriately
● Show evidence of your having applied principles relating to concepts such as
coupling and cohesion
● Implement suitable die-rolling and card-selecting classes
● Separate out the two game implementations. (You may wish to find and apply the
Factory pattern, or a related pattern, in order to achieve this.1)
● Include brief comments explaining the code
iii) Briefly summarise each of the changes which you have made in answering this
question and the reasons you made them.