-
Notifications
You must be signed in to change notification settings - Fork 5
/
app.py
147 lines (122 loc) · 5.16 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
from random import randrange
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/', methods=['GET'])
def home():
return render_template("index.html")
@app.route('/', methods=["POST"])
def play():
data = request.get_json()
# acá asignamos los valores
button = data['value']
userMove = data['userMove']
machineMove = data['machineMove']
allMove = data['allMove']
availableMove = data['availableMove']
winnerMove = ["123", "456", "789", "147", "258", "369", "159", "357"]
winnerUser = ""
winnerMachine = ""
# ordenar movimientos del usuario
sortUserMove = list(userMove)
sortUserMove.sort()
sortedMoveUser = ""
for i in sortUserMove:
sortedMoveUser = sortedMoveUser + i
# quitar el movimiento del usuario en los movimientos posibles
auxAvailableMove = list(availableMove)
availableMove = ""
for i in auxAvailableMove:
if i != button:
availableMove = availableMove + i
# Movimientos de la maquina
moves = list(availableMove)
if "5" in availableMove:
move_rand = "5"
elif ("12" in sortedMoveUser and "3" in availableMove) or ("57" in sortedMoveUser and "3" in availableMove) or (
"69" in sortedMoveUser and "3" in availableMove):
print("maquina juega en la casilla 3")
move_rand = "3"
elif ("13" in sortedMoveUser and "2" in availableMove) or ("58" in sortedMoveUser and "2" in availableMove):
print("maquina juega en la casilla 2")
move_rand = "2"
elif ("23" in sortedMoveUser and "1" in availableMove) or ("47" in sortedMoveUser and "1" in availableMove) or (
"59" in sortedMoveUser and "1" in availableMove):
print("maquina juega en la casilla 1")
move_rand = "1"
elif ("45" in sortedMoveUser and "6" in availableMove) or ("39" in sortedMoveUser and "6" in availableMove):
print("maquina juega en la casilla 6")
move_rand = "6"
elif ("46" in sortedMoveUser and "5" in availableMove) or ("28" in sortedMoveUser and "5" in availableMove) or (
"37" in sortedMoveUser and "5" in availableMove) or ("19" in sortedMoveUser and "5" in availableMove):
print("maquina juega en la casilla 5")
move_rand = "5"
elif ("56" in sortedMoveUser and "4" in availableMove) or ("17" in sortedMoveUser and "4" in availableMove):
print("maquina juega en la casilla 4")
move_rand = "4"
elif ("78" in sortedMoveUser and "9" in availableMove) or ("15" in sortedMoveUser and "9" in availableMove) or (
"36" in sortedMoveUser and "9" in availableMove):
print("maquina juega en la casilla 9")
move_rand = "9"
elif ("79" in sortedMoveUser and "8" in availableMove) or ("25" in sortedMoveUser and "8" in availableMove):
print("maquina juega en la casilla 8")
move_rand = "8"
elif ("89" in sortedMoveUser and "7" in availableMove) or ("14" in sortedMoveUser and "7" in availableMove) or (
"35" in sortedMoveUser and "7" in availableMove):
print("maquina juega en la casilla 7")
move_rand = "7"
else:
# movimiento aleatorio
move_rand = moves[randrange(len(moves))]
# Quitamos el movimiento de la maquina
availableMove = ""
for i in moves:
if i != move_rand:
availableMove = availableMove + i
machineMove = machineMove + move_rand
# ordenar movimientos de la maquina
move_machine = list(machineMove)
move_machine.sort()
sortedMoveMachine = ""
for i in move_machine:
sortedMoveMachine = sortedMoveMachine + i
# comprobar si la maquina es la ganadora
for i in winnerMove:
if len(sortedMoveMachine) > 3:
listWinnerMove = list(i)
listSortedMoveMachine = list(sortedMoveMachine)
result = all(elem in listSortedMoveMachine for elem in listWinnerMove)
if result:
print(listWinnerMove, listSortedMoveMachine)
winnerMachine = "gano maquina"
if i in sortedMoveMachine:
winnerMachine = "gano maquina"
print("gano la maquina")
allMove = allMove + button + move_rand
# Comprobar si el usuario es el ganador
for i in winnerMove:
if len(sortedMoveUser) > 3:
listWinnerMove = list(i)
listSortedMoveUser = list(sortedMoveUser)
result = all(elem in listSortedMoveUser for elem in listWinnerMove)
if result:
print(listWinnerMove, listSortedMoveUser)
winnerUser = "gano usuario"
if i in sortedMoveUser:
winnerUser = "gano usuario"
print("gano el usuario")
# formar el json a retonar de la peticion
json = {
"userMove": userMove,
"machineMove": machineMove,
"allMove": allMove,
"availableMove": availableMove,
"move_rand": move_rand,
"sortedMoveUser": sortedMoveUser,
"sortedMoveMachine": sortedMoveMachine,
"winnerUser": winnerUser,
"winnerMachine": winnerMachine
}
print(button, userMove, machineMove, allMove, availableMove)
return json
if __name__ == '__main__':
app.run()