Práctica: DSL: Redacción de Cuestionarios II (Con Contexto)

Se trata de escribir un programa que redacte cuestionarios. En principio, sólo soportaremos preguntas del tipo selección múltiple:

1. ¿En que año Cristobal Colón descubrió América?
      1 - 1942
      2 - 1492
      3 - 1808
      4 - 1914
Su respuesta:
Debe definir una API que soporte un pequeño lenguaje en el que las preguntas puedan ser especificadas de una forma natural. algo así vale:

quiz = Quiz.new("Cuestionario de PFS 10/12/2011") {
  question '¿En que año Cristobal Colón descubrió América?',
    wrong =>'1942',
    right =>'1492',
    wrong =>'1808',
    wrong =>'1914'
  
  a = rand(10)
  b = rand(10)
  question "#{a}+#{b} = ",
    wrong =>"44",
    wrong =>"#{a + b + 2}",
    right =>"#{a + b}",
    wrong =>"#{a + b - 2}"
}

puts quiz
puts "************************"
quiz.run
El programa anterior podría producir una salida parecida a esta:

MacBookdeCasiano:chapter8ReflectionandMetaprogramming casiano$ ruby Quiz.rb 
Cuestionario de PFS 10/12/2011

¿En que año Cristobal Colón descubrió América?

  1 -  1942
  2 -  1492
  3 -  1808
  4 -  1914


0+8 = 

  1 -  44
  2 -  10
  3 -  8
  4 -  6


************************
Cuestionario de PFS 10/12/2011

¿En que año Cristobal Colón descubrió América?

  1 -  1942
  2 -  1492
  3 -  1808
  4 -  1914

Su respuesta: 3
0+8 = 

  1 -  44
  2 -  10
  3 -  8
  4 -  6

Su respuesta: 1
0 respuestas correctas de un total de 2.
MacBookdeCasiano:chapter8ReflectionandMetaprogramming casiano$

Casiano Rodriguez León 2015-01-07