Uma slot-machine tem três posições, podendo aparecer um de 5 objectos diferentes em cada posição. Pretendia-se uma programa que simulasse uma jogada indicando se se ganhou (todas as posições iguais) ou se se perdeu. Esta pergunta era muito simples, tanto mais que se dava a informação relativamente ao método choice do módulo random. Assim uma solução possível seria:
01.
import
random
02.
03.
def
slot_machine():
04.
valores
=
'ABCDE'
05.
res_1
=
random.choice(valores)
06.
res_2
=
random.choice(valores)
07.
res_3
=
random.choice(valores)
08.
if
res_1
=
=
res_2
and
res_2
=
=
res_3:
09.
return
True
10.
return
False
01.
def
slot_machine_b(valores,k):
02.
res
=
''
03.
for
i
in
range(k):
04.
res
+
=
random.choice(valores)
05.
return
all_equal(res)
06.
07.
def
all_equal(cadeia):
08.
conta
=
cadeia.count(cadeia[
0
])
09.
return
conta
=
=
len(cadeia)
1.
def
slot_machine_c(valores,k):
2.
ganhar
=
[''.join(k
*
[str(elem)])
for
elem
in
valores]
3.
res
=
''
4.
for
i
in
range(k):
5.
res
+
=
random.choice(valores)
6.
return
res
in
ganhar
Pergunta 3
Pediam-se dois programas usando o módulo turtle. Um primeiro, que permitia desenhar uma lâmina, parametrizando a sua posição central, o tamanho dos dois braços e a orientação. O segundo, devia usar o primeiro para desenhar diferentes tipos de ventoinhas. Comecemos pelo primeiro.
01.
def
lamina(cent_x,cent_y,lado_1,lado_2,angulo, orient):
02.
# inicialização
03.
turtle.showturtle()
04.
turtle.penup()
05.
turtle.goto(cent_x, cent_y)
06.
turtle.setheading(orient)
07.
turtle.pendown()
08.
turtle.dot(
10
)
09.
# lamina superior
10.
turtle.forward(lado_2
/
/
2
)
11.
turtle.lt(angulo)
12.
turtle.forward(lado_1)
13.
# recentra
14.
turtle.penup()
15.
turtle.goto(cent_x, cent_y)
16.
turtle.setheading(orient
+
180
)
17.
turtle.pendown()
18.
# lamina inferior
19.
turtle.forward(lado_2
/
/
2
)
20.
turtle.lt(angulo)
21.
turtle.forward(lado_1)
22.
# finaliza
23.
turtle.hideturtle()
Resolvida esta questão, o segundo programa é trivial.
01.
def
ventoinha(num, dist, cent_x,cent_y,lado_1,lado_2,angulo, orient):
02.
# inicialização
03.
turtle.showturtle()
04.
turtle.penup()
05.
turtle.goto(cent_x, cent_y)
06.
turtle.pendown()
07.
turtle.dot(
10
)
08.
# desenha num lâminas
09.
for
i
in
range(num):
10.
lamina_c(cent_x,cent_y,lado_1,lado_2,angulo, orient)
11.
orient
+
=
dist
Sem comentários:
Enviar um comentário