Quem não tinha velocidade suficiente na rampa caía no buraco. Quem tinha, voava. Aqui você aprende a automatizar construções — com Minecraft Education e animações Pillow.
calcular_salto()Na rampa de Palotina, o resultado dependia da velocidade de entrada. Abaixo de 5 m/s — buraco. Acima de 10 m/s — lendário. Isso é um bloco de condicionais aplicado à física real.
# calcular_salto() — da pista para o código
def calcular_salto(velocidade: float) -> str:
atrito = 0.5 # terra vermelha de Palotina
velocidade_ajustada = velocidade - atrito
if velocidade_ajustada < 5:
return "BURACO"
if velocidade_ajustada < 8:
return "QUASE"
if velocidade_ajustada < 10:
return "VOOU"
return "LENDÁRIO"
>>> calcular_salto(10.5)
'LENDÁRIO'
Construir 50 blocos manualmente levaria horas. Com um loop Python, leva 2 segundos. Isso é o poder da automação: a rampa é construída pelo código, não pelo piloto.
# Construindo a rampa da Paineira no Minecraft
from mcpi.minecraft import Minecraft
import mcpi.block as block
mc = Minecraft.create()
x0, y0, z0 = mc.player.getTilePos()
# Torre de 50 blocos de pedra — o pilar da rampa
for h in range(50):
mc.setBlock(x0, y0 + h, z0, block.STONE.id)
# Pirâmide 10×10×10 — a pista vista de cima
for nivel in range(10):
for dx in range(nivel, 10 - nivel):
for dz in range(nivel, 10 - nivel):
mc.setBlock(
x0 + dx,
y0 + nivel,
z0 + dz,
block.GRASS.id,
)
# Gerar frames da trajetória e salvar como GIF
from PIL import Image, ImageDraw
import math
frames = []
for t in range(0, 50):
img = Image.new("RGB", (400, 200), (26, 122, 60))
draw = ImageDraw.Draw(img)
x = int(t * 8)
y = int(200 - (10 * t - 0.5 * 9.8 * t**2 / 10))
y = max(10, min(190, y))
draw.ellipse([x - 8, y - 8, x + 8, y + 8], fill=(244, 196, 48))
frames.append(img)
frames[0].save(
"salto_palotina.gif",
save_all=True,
append_images=frames[1:],
duration=50,
loop=0,
)
Arquivo salvo: salto_palotina.gif
Crie um simulador completo: 4 pilotos com bicicletas (Bicicleta), cada um com
esforço diferente. Calcule o resultado do salto para cada um, gere um GIF animado da trajetória
e exiba o relatório final no console com a classificação de cada piloto.