Nick Brettel's eight puzzle design

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
(New page: == Intro == My project is on my Cosc411 experiment. This experiment was exploring whether people can solve a problem-solving task quicker when collaborating. Participants would solve [[...)
 
Line 18: Line 18:
 
1. to further improve the design (duh)
 
1. to further improve the design (duh)
 
2. to refactor the design such that (in a hypothetical situation) it could be easily extended for future similar collaboration experiments
 
2. to refactor the design such that (in a hypothetical situation) it could be easily extended for future similar collaboration experiments
You can see the design as it was before refactoring at [[#OldDesign]].
+
You can see the design as it was before refactoring at [[#Old Design]].
  
 
== Contents ==
 
== Contents ==
Line 43: Line 43:
  
 
See [http://en.wikipedia.org/wiki/15_puzzle wikipedia] for more details...
 
See [http://en.wikipedia.org/wiki/15_puzzle wikipedia] for more details...
 +
 +
== Old Design ==
 +
 +
= An old design =
 +
 +
This is what my design looked like when the program was actually used to run the experiment.  After this, I put on a refactoring hat for the purposes of this Cosc427 assignment.  I've shown it here so I can talk about some of the changes made in design.
 +
 +
Firstly, let me apologise that it is so big, and that you have to scroll sideways :).
 +
 +
And here it is:
 +
 +
[[image:oldDesign.gif]]

Revision as of 23:48, 22 September 2008

Contents

Intro

My project is on my Cosc411 experiment. This experiment was exploring whether people can solve a problem-solving task quicker when collaborating. Participants would solve #The Eight Puzzle five times, either individually or in pairs (training phase), then solve it five times alone (testing phase). The experiment was mostly automated (so they'd just read instructions, click next, etc.). Their performance was logged.

This introduced a few design challenges:

  • Single partipants and pairs of participants can solve the puzzle in the training phase, so pairs and individuals need to be treated the same, but (for logging) produce different output
  • The whole experiment follows a rigid process, so we need a nice way to define what we show and when.
  • Moreover, participants can take one of three paths. Individual, Collaborative, or Collaborative-resume (when the pair splits up after training, one person can continue, the other jumps to the same stage).
  • Individuals or Pairs need to get slightly different instructions, but they are very similar.
  • The experiment is largely GUI based, but we want to separate the GUI out as much as possible.

Furthermore, I would like to be able to provide a framework from which one can easily extend the experiment if needed in the future. For example:

  • can add participants who train in groups of three
  • can solve a different puzzle
  • can add an extra slide of instructions

All the code was written this semester (while taking Cosc427) and I tried to make a good design following the ideas we were taught. So effectively, I started with nothing. However, after the experiment was run I decided to move into a refactoring stage (specifically for this 427 project) with two goals: 1. to further improve the design (duh) 2. to refactor the design such that (in a hypothetical situation) it could be easily extended for future similar collaboration experiments You can see the design as it was before refactoring at #Old Design.

Contents

Code

The code is written in Java 5.0 (stupid version numbers), and you can get it here: media:427projectCode.tgz.

To run it, run `java ExperimentGui`. You can run collaborative mode with `-c` or collaborative resume with `-cr` flags.

The Eight Puzzle

The eight-puzzle is a simple game where there are 8 tiles and one blank arranged in a 3x3 grid. A tile can be moved if it is adjacent to the blank, as if it is being slid across (left, right, up or down). There is a similar fifteen-puzzle where the pieces are in a 4x4 grid.

In fact, a version of the puzzle appeared on the original Macintosh System, thanks to Andy Hertzfeld, and remained on the OS for a long time following. Anyways, I digress. You can see a screenshot of the puzzle below.

8 Puzzle

See wikipedia for more details...

Old Design

An old design

This is what my design looked like when the program was actually used to run the experiment. After this, I put on a refactoring hat for the purposes of this Cosc427 assignment. I've shown it here so I can talk about some of the changes made in design.

Firstly, let me apologise that it is so big, and that you have to scroll sideways :).

And here it is:

OldDesign.gif

Personal tools