xproblem.coffee 1.06 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
class XProblemGenerator
  
  constructor: (seed, @parameters={}) ->

    @random = new MersenneTwister(seed)

    @problemState = {}

  generate: () ->

    console.error("Abstract method called: XProblemGenerator.generate")

class XProblemDisplay

  constructor: (@state, @submission, @evaluation, @container, @submissionField, @parameters={}) ->

  render: () ->

    console.error("Abstract method called: XProblemDisplay.render")

  updateSubmission: () ->

    @submissionField.val(JSON.stringify(@getCurrentSubmission()))

  getCurrentSubmission: () ->
    console.error("Abstract method called: XProblemDisplay.getCurrentSubmission")

class XProblemGrader

  constructor: (@submission, @problemState, @parameters={}) ->

    @solution   = null
    @evaluation = {}

  solve: () ->

    console.error("Abstract method called: XProblemGrader.solve")

  grade: () ->

    console.error("Abstract method called: XProblemGrader.grade")

root = exports ? this

root.XProblemGenerator = XProblemGenerator
root.XProblemDisplay   = XProblemDisplay
root.XProblemGrader    = XProblemGrader