home *** CD-ROM | disk | FTP | other *** search
/ ftp.ee.pdx.edu / 2014.02.ftp.ee.pdx.edu.tar / ftp.ee.pdx.edu / pub / users / harry / cse509 / hw4.txt < prev    next >
Text File  |  2002-03-09  |  3KB  |  97 lines

  1. CSE 509  --  HW #4
  2. ==================
  3.  
  4. Design Due:  Monday, 11 February 2002
  5. Date Due:  Monday, 18 February 2002
  6.  
  7.  
  8. Goals:
  9.  
  10. - Continue exploring the graphics classes and the classes associated with
  11.   the user interface.
  12. - Design and create your own classes. 
  13. - Design and implement a user interface of your own.
  14.  
  15.  
  16.  
  17. The project:
  18.  
  19. The game of tic-tac-toe (also called "noughts and crosses") is played by two
  20. people.
  21.  
  22. Create a Smalltalk version of the game, to support / display / monitor games
  23. played by two humans.
  24.  
  25. - The computer will display the game board on the screen.
  26. - The user(s) will select their moves with the mouse.
  27. - The computer will check to see that the moves are legal.
  28. - The computer will display the moves on the screen.
  29. - The computer will check to see whether the game is over, and will display
  30.   accordingly.
  31. - The game will be played by two humans; the computer will not select moves
  32.   on it own.
  33.  
  34. You will need to make the following design choices:
  35.  
  36. - How exactly will the user interface work?
  37. - Which classes will you create?  Which methods?
  38.  
  39.  
  40.  
  41. Optional Extensions:
  42.  
  43. - Allow the computer itself to be a player, so that a single human alone can
  44. play against the computer.  This may be harder than it looks; I recommend that
  45. you do not attempt this unless you are familiar with the game playing
  46. algorithms (such as "min-max" or its variant, "alpha-beta search").
  47.  
  48. - Support another game.  "Othello" might be a possibility since it is slightly
  49. more complex, but still has a rectangular board with only one type of piece.
  50. However, the rule about moves is much more complex.  Othello is a nice game
  51. for the computer, since it is tedious to play with physical pieces due to the
  52. high piece turn-over.  (Also, if the computer acts as a player, a
  53. straightforward min-max algorithm yields a formidable opponent.)
  54.  
  55. (In brief, the players are called white and black and they alternate.  The
  56. board is 8X8.  A player moves by adding a piece to the board.  When a white
  57. player moves, he "captures" all the black pieces between the new white pieces
  58. and another white piece, but only if there are no intervening empty spaces.
  59. For example, if this is one row of the board...
  60.    W  B  W  B  B  B  -  -
  61.  then a move here...
  62.    W  B  W  B  B  B  W  -
  63.  will capture the black pieces, giving this...
  64.    W  B  W  W  W  W  W  -
  65. Captures can happen on vertical, horizontal, and diagonal directions.  Black
  66. moves are similar.  The goal is to have the most pieces when play ends.)
  67.  
  68. - Any other enhancements / modifications that you think of.
  69.  
  70.  
  71. What to hand in:
  72.  
  73. Design: Hand in a hard copy paper with your name and email address on it, for
  74. your design.  Answer the following questions.
  75.  
  76. - Which classes will you have?
  77. - Which methods will you write?
  78. - What will the screen look like?  (Hand-drawings are okay.)
  79. - What menus / buttons will you have?
  80. - What messages will be displayed?
  81.  
  82. Part 1: Keep all your code in a single category, file it out, and e-mail it
  83. with subject "HW #4".  Please don't submit multiple times without prior
  84. approval.
  85.  
  86. Part 2: Hand-in a single hard copy page with your name and email address on
  87. it.  Answer the following questions:
  88.  
  89. - Did you complete the basic assignment?
  90. - What (if any) extensions did you complete?
  91. - How does your interface work?  Make sure I will fully appreciate all the
  92.   functionality you have provided and make sure I can successfully use your
  93.   user interface.
  94.  
  95. Please keep part 2 to a single sheet of paper.
  96.  
  97.