CSCE-315: Programming Studio (Summer 2014)

Project 3:

Updates

Updates will be posted here.

Team configuration

The team configuration will be the same as projects 1 and 2.

Project Goal

This project is meant to help familiarize you with:

  • the use of XML for data interchange
  • mobile phone application development concepts
  • mobile phone application development tools

Project Outline

For this project, you will write a mobile phone application (Android) based on the Reversi player you wrote for project 2. The basic requirements are:

  • Graphical user interface:
    • All game-related function (select difficulty, choose black/white, play turn, undo, etc.) from project 2 should be accessible through a graphical user interface (pop-up selections, touch-screen interaction, etc.).
    • There's no need to implement the client-server part.
    • Be creative with the graphics. Elegant display and/or innovative user interface will get more points.
  • Other features to be added, compared to project 2: An XML file stored on the SD card to keep track of game statistics and high scores. You should define a DTD or XML schema for the game statistics data and use the Android API to validate and manipulate the XML file.

SCRUM

For this project, you will continue using the SCRUM method.
  • You should use the SCRUM method, but to save you time you are not required to submit the product backlog, sprint backlog, and the burn-down chart.

XML

Android SDK provides a rich set of XML-related functionality.
  • You need to use DTD or XML schema to formally define the legal syntax for your XML file.
  • You must validate your XML data file against the DTD or XML schema everytime you use it.

First decide on that kind of game statistics you will store and make available to the user. At the minimum you should keep a high score table.

  • High scores should be kept for individual difficulty levels
  • Score can be as simple as the # of your pieces minus the # of AI's pieces at the end of the game.
  • You can also factor in play time: fastest win, regardless of # pieces won by, or a combination of score and play time.
Resources:

Grading

There will be a team grade assigned for the project, and like the first project, the team grade will be apportioned out to the individuals. The rough breakdown of team grade is:

10% Implemented game mechanics and AI

20% Functional quality of game mechanics and AI

20% Degree of integration of game mechanics/AI with the user interface.

30% Graphics display and user interface (includes 5% for creativity).

10% XML design and game statistics

10% Code style (naming, layout, etc.)

Deliverables

See course web page for deadlines.
  1. Design document
    • Design document should include a state diagram showing the various Activities and what event will trigger those Activities to come into focus, etc.
    • The design document requirements are the same as Project 1.
    • Include XML design (for game statistics).
    • The XML design can be rough. You should first decide what information to keep track of. You don't need a full DTD or XML schema. An example XML file would be fine.
    • Grading:
      • 20%: All four sections
      • 30%: State diagram showing activities and transitions
      • 30%: Integration with game mechanics and AI
      • 20%: XML design
  2. User interface code.
    • This will include the bulk of game settings dialog and graphical display of the game board and pieces.
    • Grading:
      • 10%: layout, style, comments
      • 30%: all interface elements implemented
      • 30%: all config (game settings) dialogs function properly
      • 20%: gameboard and pieces display correctly (does not need to be clickable).
      • 10%: development log
  3. Final version.
    • Final XML design, game statistics functionality fully implemented.
    • Game/AI fully integrated with the graphical user interface.
    • post production notes (changes you had to make to your design and why, difficulties, solutions, lessons learned)
    • individual work load distribution (percentage)
    • Development log.
Original concept/design/most of the text by John Keyser. Modifications by Yoonsuck Choe.