mmg/mmg/views.py

64 lines
1.3 KiB
Python
Raw Normal View History

2013-04-23 22:48:16 -07:00
import json
import random
from django.http import HttpResponse
2013-04-23 18:02:59 -07:00
from django.shortcuts import render
2013-04-23 17:47:15 -07:00
MAX = 12
2013-04-23 17:47:15 -07:00
2013-04-23 22:48:16 -07:00
def _generate_problem():
operation = random.choice(['+', '-'])
first = random.choice(range(MAX))
if operation == '-':
if first == 0:
second = 0
else:
second = random.choice(range(first))
else:
second = random.choice(range(MAX))
2013-04-23 22:48:16 -07:00
return {
'first': first,
'operation': operation,
'second': second,
2013-04-23 22:48:16 -07:00
}
def _validate_solution(a):
f = int(a['first'])
o = a['operation']
s = int(a['second'])
if a['answer'] == '':
g = 0
else:
g = int(a['answer'])
r = False
if o == '+':
r = bool(f + s == g)
else:
r = bool(f - s == g)
return r
def home(request):
return render(request, 'index.html')
def attempt(request):
d = request.POST.dict()
2013-04-23 23:27:30 -07:00
r = _validate_solution(d)
if r:
s = request.session.get('score', 0) + 1
else:
s = request.session.get('score', 0) - 1
request.session['score'] = s
2013-04-23 22:48:16 -07:00
return HttpResponse(
2013-04-23 23:27:30 -07:00
json.dumps({'status': r, 'score': s}),
2013-04-23 22:48:16 -07:00
content_type="application/json")
def problem(request):
2013-04-23 23:27:30 -07:00
d = _generate_problem()
d['score'] = request.session.get('score', 0)
return HttpResponse(json.dumps(d), content_type="application/json")