
Dudas en ausencia de GOTO
Publicado por Frank (2 intervenciones) el 26/09/2016 19:35:11
Saludos a todos.
Recuperando poco a poco mis años pasados programando en basic, cobol y visual basic, he llegado a este lenguaje que parece adecuado para mis proyectos a corto plazo (algunas creaciones con rabsperry).
Sin embargo, hay algo que me tiene bloqueado, y es la ausencia de la función GOTO, que siempre me ha permitido moverme por los programas en función de las necesidades.
Para quitarme el oxido y hacerme con los fundamentos de phyton, me decidi a crear un sencillo programa, basado en una necesidad real, que es crear aleatoriamente parejas para una competición de padel.
Cada participante tiene un ranking, y quiero que el programa elija dos parejas de entre los jugadores disponibles, y luego compare el ranking de las parejas para ver si el partido esta equilibrado.
Os copio lo que he avanzado:
---------------------------------------------------------------------------------------------
¿Cómo solucionáis este problema? Esta claro que hay una forma de sortear la ausencia de GO TO, pero me esta costando verla.
Saludos y gracias anticipadas.
Recuperando poco a poco mis años pasados programando en basic, cobol y visual basic, he llegado a este lenguaje que parece adecuado para mis proyectos a corto plazo (algunas creaciones con rabsperry).
Sin embargo, hay algo que me tiene bloqueado, y es la ausencia de la función GOTO, que siempre me ha permitido moverme por los programas en función de las necesidades.
Para quitarme el oxido y hacerme con los fundamentos de phyton, me decidi a crear un sencillo programa, basado en una necesidad real, que es crear aleatoriamente parejas para una competición de padel.
Cada participante tiene un ranking, y quiero que el programa elija dos parejas de entre los jugadores disponibles, y luego compare el ranking de las parejas para ver si el partido esta equilibrado.
Os copio lo que he avanzado:
---------------------------------------------------------------------------------------------
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
import random
jugadores=[1,3,5,8,10,12,14,15,18,20,21,23]
#cada numero corresponde al ranking de ese jugador.
jugador1=random.choice(jugadores)
jugador2=random.choice(jugadores)
while jugador1==jugador2:
jugador2=random.choice(jugadores)
#con esto me aseguro de que la primera pareja esta formada por jugadores diferentes.
pareja1=(jugador1,jugador2)
valorPareja1=(jugador1+jugador2)
jugador3=random.choice(jugadores)
while jugador3==jugador1:
jugador3=random.choice(jugadores)
while jugador3==jugador2:
jugador3=random.choice(jugadores)
jugador4=random.choice(jugadores)
while jugador4==jugador1:
jugador3=random.choice(jugadores)
while jugador4==jugador2:
jugador3=random.choice(jugadores)
while jugador4==jugador2:
jugador3=random.choice(jugadores)
#este bloque, es para que los 4 jugadores sean diferentes.
pareja2=(jugador3,jugador4)
valorPareja2=(jugador3+jugador4)
diferenciaParejas=(valorPareja1-valorPareja2)
diferenciaParejas=int(diferenciaParejas)
#Aquí viene el bloqueo. Si yo pudiese disponer de GOTO, tras evaluar si el ranking de las dos parejas esta dentro de una diferencia (+/- 10 puntos por ejemplo), enviaría de nuevo el programa a la elección de la pareja dos, y no abandonaría ese bucle hasta que no se cumpliese la condición.
¿Cómo solucionáis este problema? Esta claro que hay una forma de sortear la ausencia de GO TO, pero me esta costando verla.
Saludos y gracias anticipadas.
Valora esta pregunta


0