Lav uforudsigelige fjender med tilfældige tal

Når man laver en fjende i et computerspil, kan den let gå hen og blive lidt kedelig, hvis den er for forudsigelig.  Ved at bruge tilfældige tal, kan du få en fjende til at gøre uforudsigelige ting, og dermed blive mere interessant.

random_numbers2

Dette er det fjerde afsnit i en serie a Scratch tutorials. Hvert afsnit bygger på de foregående.  Hvis du ikke har været med fra starten, er det sikkert en god idé, hvis du kigger på afsnittene 1, 2 og 3.

Tilfældige tal i et computerprogram, fungerer ligesom en tryllekunstner, der trækker noget op af sin magiske hat. Når han stikker hånden ned i hatten, ved vi ikke hvad han vil trække op af den: En kanin? En due? En buket blomster? Vi ved det ikke, men lad os sige at vi ved at det er en af de tre ting. I et computerprogram, kan vi bede maskinen (Tryllekunstneren) trække et tilfældigt tal mellem f.eks. 1 og 3. Hver gang vi beder om et tal, får vi altså et af tallene 1, 2 eller 3, men vi ved ikke på forhånd hvilket.

I Scratch, kan man bede om tilfældige tal med klodsen vælg tilfældigt mellem X og Y som findes i den grønne kategori Operatorer. Alle tal er lige sandsynlige (Ligefordelt).  Du kan indtaste to tal i klodsen. Det første tal er det laveste du vil kunne trække, og det andet er det højeste. Herunder, kan du se klodsen som den ser ud når den giver os tal mellem 1 og 3.

scratch-random-number1-3

Lad os få lidt erfaring med brugen af tilfældige tal. Lad os få en sprites størrelse til at skifte tilfældigt.

Størrelser i Scratch angives i %. Lad os prøve at få en sprite til at skifte mellem tilfældige størrelser mellem 50% og 150% med en pause på 1 sekund mellem hvert skift. Som det første, skal vi kombinere klodsen sæt størrelse til X % fra kategorien Udseende og klodsen vælg tilfældigt mellem X og Y.

scratch-random-size-01

Så mangler vi bare at få det til at ske for evigt med en pause på 1 sekund mellem hvert skift. Lav din egen løsning, før du kigger på min.

scratch-random-size-02

Nu har vi prøvet at gøre noget med tilfældige tal. Lad os prøve at gøre fjenden fra afsnit 3 i denne serie mere spændende. Her er scriptet for fjenden som det ser ud nu. Fjenden peger hele tiden mod os (Vi hedder Sprite1),og går frem.

scratch-peg-og-gaa-01

Det er lidt kedeligt, fordi fjenden er for god. Vi kan gøre fjenden mindre perfekt ved at gøre retningen mindre perfekt. Når fjenden har peget mod os i programmet, kan vi før den går frem, ændre lidt på retningen, så den ikke altid peger direkte mod os. Lad os indføre en ændring i retningen på mellem -20 og 20 grader. Kig på afsnit 1 i serien, hvis du ikke kender til grader.

Det kan vi gøre ved at kombinere en af de to drej-klodser med klodsen vælg tilfældigt mellem -20 og 20. Vores program skal altså nu være:

  1. Peg mod Sprite1.
  2. Drej mellem -40 og 40 grader.
  3. Gå frem.

Prøv at lave ændringen i Scriptet selv, før du kigger på min løsning. Det er lige meget, om du bruger klodsen der drejer mod venstre, eller den der peger mod højre.

scratch-random-walk-1

Nu burde din fjende ikke længere gå i mod dig i en lige linje. Prøv at eksperimentere med de tilfældige tal, og det antal trin fjenden går frem hver gang.

Hmmmm… Det er som om fjenden stadig er for forudsigelig. Den er jo stadig enormt god til at følge efter os. Lad os lave scriptet om, så fjenden ikke altid ændrer retning før den går frem. Vi kan tage et tilfældigt tal mellem f.eks. 1 og 20, og kun ændre retningen hvis dette tal er lig med 1. Du skal kombinere klodserne lig med (=) og vælg tilfældigt mellem X og Y fra kategorien Operatorer. I det tomme felt i klodsen lig med, skal du skrive 1.

scratch-random-number-equals

Nu har vi lavet det der i matematikken hedder et logisk udtryk (Engelsk: Logical expression). Et logisk udtryk, et et spørgsmål som der kun kan svares ja eller nej på. F.eks. er svaret på det logiske udtryk 1=1 ja, da tallet 1 og tallet 1 er det samme tal. Svaret på 1=2 er naturligvis nej, tallet 1 er ikke det samme som tallet 2. På samme måde, er svaret på logiske udtryk vi har lavet i Scratch, ja når det tilfældige tal er 1 (1 er jo det samme som 1). Hvis det tilfældige tal er noget andet, er svaret nej. F.eks. er svaret på 12=1 jo nej. Tallet 12 er ikke det samme som tallet 1.

Du skal nu kombinere dit logiske udtryk med klodsen hvis fra kategorien Styring. På den måde, kan du lave et script, hvor noget kun sker hvis svaret på det logiske udtryk er ja. Lav nu ændringer i dit program der gør, at fjenden kun ændrer retning når det tilfældige tal er 1. Programmet skal altså nu være:

  1. Træk et tilfældigt tal mellem 1 og 20
  2. Peg mod Sprite1 hvis det tilfældige tal er 1.
  3. Drej mellem -40 og 40 grader hvis det tilfældige tal er 1
  4. Gå frem

Lav din egen løsning før du kigger på min.

scratch-random-walk-2

Eksperimenter med programmet. Hvis det f.eks. et tilfældigt tal mellem 1 og 100 der skal være 1 for at fjenden skifter retning, vi det jo ske meget sjældnere end nu hvor vi kun vælger mellem tallene mellem 1 og 20.

 

One thought on “Lav uforudsigelige fjender med tilfældige tal

Comments are closed.