-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.py
51 lines (42 loc) · 1.42 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from flask import Flask, render_template, request, redirect, url_for
import Compra
import json
import AG
app = Flask(__name__)
@app.route("/")
def index():
return render_template('index.html')
@app.route("/juegos")
def getJuegos():
juegos = cargarDatos()
return render_template("juegos.html", juegos = juegos)
@app.route("/ejecucion", methods=["POST"])
def ejecucucion():
if request.method == "POST":
dinero = request.form["dinero"]
print(dinero)
juegosComprados = ejecucionAlgoritmo(dinero)
numeroJuegos = len(juegosComprados)
total = 0
for juego in juegosComprados:
valor = juego["precio"]
total = total + valor
return render_template("resultados.html", juegos = juegosComprados, numeroJuegos = numeroJuegos, total = total)
def cargarDatos():
ruta = "data/juegos.json"
with open(ruta) as contenido:
juegos = json.load(contenido)
return juegos
def ejecucionAlgoritmo(dinero):
juegos = cargarDatos()
juegosComprados = []
compra = Compra.Compra(juegos, float(dinero))
ag = AG.AG(36, len(juegos), 1, 1800, 0.01, compra)
ag.run()
for i in range(len(ag._mejor_historico._cromosoma)):
if ag._mejor_historico._cromosoma[i] == 1:
#print(juegos[i])
juegosComprados.append(juegos[i])
return juegosComprados
if __name__ == "__main__":
app.run(debug=True, port=4000)