#!/usr/bin/python3

# By: Pedro Izecksohn
# Version: 2014-Apr-17 13:30
# License:
#   You may freely use this software.
#   You may distribute this software's source code.
#   You may modify this software's source code but not this license.

import locale
import os

locale.setlocale (locale.LC_ALL, '')
thousep = locale.nl_langinfo(locale.THOUSEP)

ntimes = 0

while True:
  prize = int((os.urandom(1)[0]/255)*100)
  nobjs = 0
  power = 2
  rb = os.urandom(1)[0]
  dice = rb&1
  if dice:
    nobjs = (((rb&2)>>1)+1)
    power = 6
  else:
    nobjs = int ((((rb>>1)/127)*4)+1)
  plural = ''
  if nobjs > 1: plural = 's'
  while True:
    try:
      if dice:
        answer = input ('  Se o prêmio pelo resultado de '+str(nobjs)+' jogada'+plural+' de um dado cúbico for de '+str(prize)+', até quanto você apostaria? ')
      else:
        answer = input ('  Se o prêmio pelo resultado de '+str(nobjs)+' jogada'+plural+' de uma moeda for de '+str(prize)+', até quanto você apostaria? ')
    except:
      print ('\n  Você cansou depois de '+str(ntimes)+' respostas corretas.')
      exit()
    try:
      #print ('answer = '+str(answer)+'\nthousep = '+thousep)
      if answer.__contains__(thousep):
        raise RuntimeError ('  Um caracter '+thousep+' foi encontrado na sua resposta.')
      answer = locale.atof(answer)
    except Exception as e:
      if type(e)==RuntimeError: print (str (e))
      print ('  Não entendi a sua resposta.')
      continue
    break
  powered = (power**nobjs)
  right = (prize/powered)
  if ( (answer > right) or ((answer+1) < right) ):
    print ('  Você respondeu errado.')
    print ('  A resposta correta seria '+locale.str(right)+'.')
    if (0==ntimes):
      continue
    print ('  Depois de '+str(ntimes)+' respostas corretas você errou.')
    exit()
  ntimes += 1
