Wat zou het leuk zijn om af en toe eens de letters van een woord door elkaar te schudden. Weet jij bijvoorbeeld wat dit woord is: xuin?

Oefening 4: Letter Scrambler

Het eindresultaat

Project

file_downloadDownload

cloudScratch-Studio



In dit project staat alles wat je nodig hebt klaar om te gebruiken. Zorg ervoor dat volgende dingen allemaal mogelijk zijn:

  • Laat Ruby vragen naar een woord.
  • En zorg ervoor dat Unix de letters van dat woord door elkaar schudt.

Stappenplan

Stap 1: Wat moet Ruby doen?
  • Zorg ervoor dat Ruby een woord vraagt.
  • Onthoud dit woord. Dit kan je doen door gebruik te maken van een variabele.
  • Laat Unix weten dat je een nieuw woord hebt ontvangen. Gebruik hiervoor een signaal!
  • Je kan dit zoveel keren herhalen als je zelf wil.
Stap 2: Wat heeft Unix allemaal nodig?

Wanneer Unix een signaal ontvangt van Ruby, moet hij het woord dat Ruby heeft ontvangen scramblen. Hiervoor gaan we twee variabelen nodig hebben:

  • Een variabele scramble: dit is het nieuwe woord dat we zullen maken met de letters van Ruby’s woord.
  • Een variable positie: dit hebben we nodig om de positie van een letter in Ruby’s woord te onthouden.
Stap 3: Hoe moet je scramblen?

Om te starten is het belangrijk om de variabele scramble leeg te maken. Wat we dan moeten doen is het volgende:

  • Kies een willekeurig getal tussen 1 en de lengte van Ruby’s woord. Dit is de positie van de letter die we gaan gebruiken.
  • Voeg deze letter uit Ruby’s woord toe het nieuwe scramble woord. Gebruik hiervoor dus ook de variabele positie om de juiste letter te kiezen.
  • Verwijder de letter uit Ruby’s woord die op die positie staat. Zo zorgen we ervoor dat we deze letter de volgende keer niet opnieuw kunnen kiezen. Maak hier een eigen blokje die dit zal doen! In de volgende stap leggen we uit hoe je dit doet.
  • Blijf dit herhalen tot je alle letters van het woord hebt gehad.
Stap 4: Verwijder een letter uit Ruby’s woord

Maak volgend blokje:

define verwijder letter op (plaats)

Om een letter uit een woord te verwijderen moeten we eigenlijk een nieuw woord maken zonder die ene letter. Je gaat dus een variabele nodig hebben zodat je dat nieuwe woord kan onthouden. Geef het de naam tussenwoord. We gaan ook opnieuw een variabele positie nodig hebben om de positie van de letter in ons woord te onthouden. Plaats is de positie van de letter die we willen verwijderen.

Doe nu het volgende:

  • Zorg ervoor dat bij de start in dit blokje tussenwoord leeg is. We starten namelijk met een leeg nieuw woord.
  • Zorg ervoor dat bij de start in dit blokje positie gelijk is aan 1. We starten namelijk met de eerste letter van het woord.
  • Alles wat nu volgt gaan we moeten herhalen totdat we alle letters van het woord hebben bezocht.
  • Test of de positie van een letter gelijk is aan de plaats van de letter die we willen verwijderen.
  • ALS de positie NIET gelijk is aan de plaats DAN voeg je de letter op die positie toe aan het tussenwoord. [TIP: gebruik het “niet”-blokje]
  • ANDERS doe je niets. Dit wil zeggen dat als de plaats wel gelijk is aan de positie, we die letter niet toevoegen aan het tussenwoord.
  • Verander als laatste de positie met 1. Met andere woorden, neem de positie van de volgende letter.
  • Wanneer je alle letter hebt bezocht, en het herhalen dus gedaan is, maak je van Ruby’s woord het tussenwoord.
Stap 5: Tijd voor wat extra’s

Zoals je in het filmpje kan zien verandert Unix de hele tijd van uiterlijk en moet die in het begin eens niezen. Niet alleen Unix, maar ook Ruby zegt nog wel wat dingen voordat die een woord vraagt. Kun jij dit namaken?

Evaluatie

Tijd om alles nog eens te testen om zeker te zijn dat alles goed werkt.

  • Vraagt Ruby een woord?
  • Worden de letters van dat woord door elkaar geschudt.
    • Tel het aantal letters. Is dit evenveel al het woord dat je aan Ruby gegeven hebt?
    • Zijn de letters van Ruby’s woord allemaal hetzelfde als de letters van Unix woord.
  • Ziet het er ongeveer hetzelfde uit als in ons filmpje?

Oplossing

De oplossing vind je hier!

file_downloadDownload

cloudScratch-Studio



Ben jij de kluts nog niet kwijt? Dan kan je meteen naar de volgende oefening!