def tela_de_jogo_dashboard(request): controlador = ctrler.InstanciaJogo() nome_time = request.session['nome_time'] time = controlador.jogo_atual.times[nome_time] labels = time.estatisticas.lista_demandas[0].keys() total_atendidos = time.estatisticas.lista_total_atendidos[0].values() procuraram_atendimento = time.estatisticas.lista_demandas[0].values() aux = [] for i in procuraram_atendimento: aux.append(sum(i.values())) labels_tabela = time.estatisticas.get_estatisticas().keys() contexto = { "nome_time": time.nome, "labels": labels, "total_atendidos": total_atendidos, "procuraram_atendimento": aux, "labels_tabela": labels_tabela, "estatisticas": time.estatisticas.get_estatisticas(), "rodadas": range(1, len(controlador.jogo_atual.rodadas) + 2), } return render(request, 'jogo/dashboard.html', contexto)
def despedir_medico(request): nome_time = request.session['nome_time'] controlador = ctrler.InstanciaJogo() controlador.despedir_medico(nome_time, int(request.POST["medico_id"])) print("despedido") return HttpResponse("despedido")
def comprar_modulo(request): controlador = ctrler.InstanciaJogo() nome_time = request.session['nome_time'] print("Modulo comprado") estado, msg = controlador.comprar_modulo(nome_time, int(request.POST["modulo_id"])) if estado == 200: return HttpResponse(controlador.get_caixa(nome_time), status=200) else: return HttpResponse(msg, status=estado)
def tela_de_jogo_hospital_modulos(request): nome_time = request.session['nome_time'] controlador = ctrler.InstanciaJogo() areas, modulos_p_areas = controlador.get_modulos(nome_time) contexto = { "areas": areas, "mod_p_area": modulos_p_areas, } return render(request, 'jogo/hospital_modulos.html', contexto)
def tela_de_jogo_hospital_medicos(request): controlador = ctrler.InstanciaJogo() nome_time = request.session['nome_time'] medicos = controlador.get_medicos(nome_time) contexto = { "medicos": medicos, } return render(request, 'jogo/hospital_medicos.html', contexto)
def requisicao_ajax(request): controlador = ctrler.InstanciaJogo() if controlador.estado_jogo == ctrler.JG_NAO_INICIADO: return HttpResponse("Jogo Não Iniciado") if controlador.estado_jogo == ctrler.JG_PAUSADO: return HttpResponse("Jogo Não Iniciado") if controlador.estado_jogo == ctrler.JG_PRONTO: return HttpResponse("Jogo Não Iniciado") if 'nome_time' not in request.session: return HttpResponse("Usuário Não Logado") return func(request)
def tela_de_jogo(request): controlador = ctrler.InstanciaJogo() if controlador.get_estado_jogo() == ctrler.JG_NAO_INICIADO: return HttpResponse("Jogo Ainda não comecou") if 'nome_time' not in request.session: return HttpResponseRedirect("/jogo/") if controlador.get_estado_jogo() == ctrler.JG_PRONTO: return render(request, TEMPLATE_JOGO_NAO_INICIADO) if controlador.get_estado_jogo() == ctrler.JG_FINALIZADO: return HttpResponseRedirect("/jogo/ranking") nome_time = request.session['time_nome'] time = controlador.jogo_atual.times[nome_time] print(time.estatisticas) modulos_p_areas = {} labels = time.estatisticas.lista_demandas[0].keys() total_atendidos = time.estatisticas.lista_total_atendidos[0].values() procuraram_atendimento = time.estatisticas.lista_demandas[0].values() aux = [] for i in procuraram_atendimento: aux.append(sum(i.values())) labels_tabela = time.estatisticas.get_estatisticas().keys() medicos = controlador.get_medicos() areas, modulos_p_areas = controlador.get_modulos() print(modulos_p_areas) contexto = { "areas": areas, "mod_p_area": modulos_p_areas, "nome_time": time.nome, "medicos": medicos, "caixa": time.estatisticas.get_ultimo_caixa(), "labels": labels, "total_atendidos": total_atendidos, "procuraram_atendimento": aux, "labels_tabela": labels_tabela, "estatisticas": time.estatisticas.get_estatisticas(), "rodada_atual": controlador.jogo_atual.rodada_atual + 1, "rodadas_ate_atual": range(0, controlador.jogo_atual.rodada_atual), "rodadas": range(1, len(controlador.jogo_atual.rodadas) + 2), } return render(request, TEMPLATE_JOGO_TELA_DE_JOGO, contexto)
def aplicar_acao(request): acao = request.POST['acao'] controlador = ctrler.InstanciaJogo() if acao == "start_jogo": if controlador.get_estado_jogo() != ctrler.JG_EXECUTANDO: controlador.init_timer() request.session['nome_time'] = "Time 1" if acao == "stop_jogo": if controlador.get_estado_jogo() == ctrler.JG_EXECUTANDO: controlador.finalizar_jogo() if acao == "avancar_rodada": if controlador.get_estado_jogo() == ctrler.JG_EXECUTANDO: controlador.avancar_rodada() return HttpResponse("grrrr")
def tela_aplicar_dinamica(request): ctrler.__inicializa_jogo() controlador = ctrler.InstanciaJogo() times = controlador.jogo_atual.times contexto = { "times": [{ "nome": x.nome, "codigo": x.codigo_login } for x in times.values()] } request.session['nome_time'] = {} for x in times.values(): request.session['nome_time'] = x.nome print(request.session['nome_time']) return render(request, TEMPLATE_JOGO_BASE_APLICAR_DINAMICA, contexto)
def logar(request): print(request.POST["senha"]) controlador = ctrler.InstanciaJogo() if controlador.get_estado_jogo() == ctrler.JG_NAO_INICIADO: return HttpResponse("Login Falhou: jogo não inicializado") if controlador.get_estado_jogo() == ctrler.JG_NAO_INICIADO: return HttpResponse("Login Falhou: jogo não inicializado") logado = False for time in controlador.jogo_atual.times.values(): print("Tenho codigo login: "******"Tenho request senha: ", request.POST["senha"]) if time.codigo_login == request.POST["senha"]: #request.session.clear() logado = True request.session['nome_time'] = time.nome if logado: return HttpResponseRedirect('/jogo/') else: return HttpResponse("Login Falhou: token inexistente")
def tela_de_jogo_graficos(request): controlador = ctrler.InstanciaJogo() nome_time = request.session['nome_time'] rodada = int(request.POST["rodada"]) time = controlador.jogo_atual.times[nome_time] labels = list(time.estatisticas.lista_demandas[rodada].keys()) total_atendidos = list(time.estatisticas.lista_total_atendidos[rodada].values()) procuraram_atendimento = time.estatisticas.lista_demandas[rodada].values() demanda = [] for i in procuraram_atendimento: demanda.append(sum(i.values())) labels_tabela = list(time.estatisticas.get_estatisticas().keys()) dados_graf_pizza = controlador.get_dados_graf_pizza(nome_time, rodada) json = { "nome_time": time.nome, "labels": labels, "total_atendidos": total_atendidos, "procuraram_atendimento": demanda, "labels_tabela": labels_tabela, "dados_graf_pizza": dados_graf_pizza, } return JsonResponse(json)
def jogo_ranking(request): controlador = ctrler.InstanciaJogo() if controlador.get_estado_jogo() != ctrler.JG_FINALIZADO: return HttpResponse("Não há jogo Finalizado") scores = controlador.pontuacao() return render(request, 'jogo/jogo_ranking.html', {"scores": scores})
def contratar_medico(request): nome_time = request.session['nome_time'] controlador = ctrler.InstanciaJogo() print("Medico Contratado") controlador.contratar_medico(nome_time, int(request.POST["medico_id"])) return HttpResponse("contratado")
def vender_modulo(request): controlador = ctrler.InstanciaJogo() nome_time = request.session['nome_time'] print("Modulo Vendido") controlador.vender_modulo(nome_time, int(request.POST["modulo_id"])) return HttpResponse(controlador.get_caixa(nome_time))