Another simple minecraft game, this time using Pythagoras’ theorem to work out distances between two points.
We randomly bury a piece of treasure - a gold block, a diamond, whatever - then give the player clues about how far away they are from it. The “game” ends when they dig up the block.
import mcpi.minecraft as minecraft import mcpi.block as block import time import random import math def random_underground_position(): return minecraft.Vec3(random.randint(-100, 100), random.randint(-20, 0), random.randint(-100, 100)) def distance_to_treasure(player, treasure): dx = player.x - treasure.x dy = player.y - treasure.y dz = player.z - treasure.z return math.ceil(math.sqrt((dx*dx) + (dy*dy) + (dz*dz))) world = minecraft.Minecraft.create() treasure = random_underground_position() world.setBlock(treasure.x, treasure.y, treasure.z, block.GOLD_BLOCK) last_position = world.player.getTilePos() last_distance = distance_to_treasure(last_position, treasure) world.postToChat("Find the gold!") detectoring = True while detectoring: position = world.player.getTilePos() if position != last_position: distance = distance_to_treasure(position, treasure) if distance < 5: detectoring = False else: message = "" if distance < last_distance: message = "Warmer " + str(distance) elif distance > last_distance: message = "Colder " + str(distance) world.postToChat(message) last_distance = distance last_position = position time.sleep(2) world.postToChat("You found the treasure")
Inspired by code I originally saw at Martin O’Hanlon’s excellent Stuff About Code.