phetsims / arithmetic

"Arithmetic" is an educational simulation in HTML5, by PhET Interactive Simulations.
http://phet.colorado.edu/en/simulation/arithmetic
GNU General Public License v3.0
5 stars 5 forks source link

Resetting quickly after answering #148

Closed phet-steele closed 8 years ago

phet-steele commented 8 years ago

Submitting an answer then quickly hitting the reset button (the one under the user's score) does two weird things.

  1. The answer that was just submitted continues to fly onto the board, and remains there (affects multiply and divide screens).
  2. The squares that are shaded purple do not match the newly proposed question but instead what would have been the next question if the user had not reset, or if you're quick enough they match the original question. (affects multiply screen).

arth

Here, I answered 6 * 3 = 18, then quickly hit reset. My answer remained on the board after resetting. The second question if I had not reset was going to be the other 6 * 3 (which brings up a good point, should there be logic added to not have the same question be asked twice in a row?) and this matches the shaded squares. However, after the reset it gave me a new question, 2 * 1, and the squares did not update.

Additionally, after all this occurs, if the user just proceeds like normal and answers the presented question, everything is fixed including the old answer disappearing of the board. The score and game in general are not negatively affected. Tested 1.0.0-dev.16 on Win 8.1/Chrome (personal device).

Troubleshooting information: Name: ‪Arithmetic‬ URL: http://www.colorado.edu/physics/phet/dev/html/arithmetic/1.0.0-dev.16/arithmetic_en.html Version: 1.0.0-dev.16 2015-12-01 22:20:53 UTC Features missing: touch User Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 Language: en-US Window: 1366x643 Pixel Ratio: 1/1 WebGL: WebGL 1.0 (OpenGL ES 2.0 Chromium) GLSL: WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium) Vendor: WebKit (WebKit WebGL) Vertex: attribs: 16 varying: 30 uniform: 1024 Texture: size: 16384 imageUnits: 16 (vertex: 16, combined: 32) Max viewport: 16384x16384 OES_texture_float: true Dependencies JSON: {"arithmetic":{"sha":"da928fe4","branch":"master"},"assert":{"sha":"3921bc37","branch":"master"},"axon":{"sha":"fffc6c30","branch":"master"},"babel":{"sha":"90f9f553","branch":"master"},"brand":{"sha":"c9282935","branch":"master"},"chipper":{"sha":"b1b72ba8","branch":"master"},"dot":{"sha":"b8ec76e8","branch":"master"},"joist":{"sha":"3bd993e7","branch":"master"},"kite":{"sha":"a4907ccc","branch":"master"},"phet-core":{"sha":"73a034c6","branch":"master"},"phetcommon":{"sha":"e074b239","branch":"master"},"scenery":{"sha":"596fce54","branch":"master"},"scenery-phet":{"sha":"ab056b47","branch":"master"},"sherpa":{"sha":"be8c4fc9","branch":"master"},"sun":{"sha":"bf8586ef","branch":"master"},"tandem":{"sha":"e98bd8c3","branch":"master"},"vegas":{"sha":"b7bb8c39","branch":"master"},"vibe":{"sha":"f09e9c6e","branch":"master"}}

jbphet commented 8 years ago

This required changes to both the model and the view. In the model, code had to be added that prevented a call to "nextProblem" at the end of the feedback time if a refresh had already triggered a call to nextProblem. In the view, the animation of the flying product had to be canceled if the user hit refresh while the animation was in progress. The code in both areas was fairly clean, so this should be fully addressed. Closing.