Niveau Moeilijk · Les 13 van 15

Een vloer leggen

Leerdoel Je leert een lus in een lus, en een functie die zelf blokken zoekt als een vakje leeg is.

Nodig Een Turtle met brandstof en minstens 16 blokken (mag in verschillende vakjes)

Het robotje legt een vloer van 4 bij 4 blokken, rij voor rij, zoals een grasmaaier. De functie kiesBlok() zoekt in alle 16 vakjes naar een vakje met blokken. rij % 2 == 1 betekent: "is dit een oneven rij?". Zo weet het robotje of het linksom of rechtsom moet draaien.

Zet het robotje op de plek van de eerste hoek en maak een programma met edit vloer:

local breed = 4

local function kiesBlok()
  for vak = 1, 16 do
    if turtle.getItemCount(vak) > 0 then
      turtle.select(vak)
      return
    end
  end
end

turtle.up()
for rij = 1, breed do
  for stap = 1, breed - 1 do
    kiesBlok()
    turtle.placeDown()
    turtle.forward()
  end
  kiesBlok()
  turtle.placeDown()
  if rij < breed then
    if rij % 2 == 1 then
      turtle.turnRight()
      turtle.forward()
      turtle.turnRight()
    else
      turtle.turnLeft()
      turtle.forward()
      turtle.turnLeft()
    end
  end
end
print("De vloer is klaar!")
Probeer zelf

Maak een vloer van 6 bij 6. Hoeveel blokken heb je dan nodig? En kun je een dambord-vloer maken met twee kleuren?

Handig om te weten