AI

Datorer tänker inte som vi människor, men de tänker på något sätt, genom att följa de instruktioner vi ger. Här ska vi med två sköldpaddor se hur vi kan få datorn att tänka ut en bra väg och jaga dig.

Två sköldpaddor

Hittills har vi bara haft en sköldpadda i våra program, men vi kan skapa flera olika sköldpaddor genom att skapa olika variabler av typen turtle.Turtle(). Vill vi ha en som heter "human" och en som heter "ai" kan vi göra såhär:

human = turtle.Turtle()
human.shape("turtle")
human.goto(25, 25)
ai = turtle.Turtle()
ai.shape("square")
ai.goto(25, 0)

Lägg märke till att vi inte skriver exempelvis turtle.shape, utan human.shape, annars vet inte Python vilken sköldpadda som avses.

På det här viset kan vi också skapa tre eller ännu fler sköldpaddor, men vi ska hålla oss till två i det här avsnittet.

Ett program som skapar två sköldpaddor och låter dig styra en av dem ser ut såhär:

Läs igenom koden och fundera lite över den innan du fortsätter.

Vrid mot en punkt

Vi har sett att left och right kan vrida en sköldpadda ett visst antal grader moturs eller medurs. Vi kan också ange en viss punkt på skärmen för att räkna ut rätt vinkel dit. En punkt kan antingen vara x,y-koordinater eller en annan sköldpadda.

Om vi till exempel vill att ai-sköldpaddan ska vrida sig mot human-sköldpaddan kan vi skriva först

ny_vinkel = ai.towards(human)

Och sedan vrida ai-sköldpaddan till precis den här vinkeln med hjälp av metoden setheading:

ai.setheading(ny_vinkel)

Prova att uppdatera go_forward-metoden i programmet ovanför med dessa två rader, och se hur datorn hela tiden vrider sig mot dig när du flyttar dig runt.

def go_forward():
  human.forward(hastighet)
  ny_vinkel = ai.towards(human)
  ai.setheading(ny_vinkel)

Låt hungerspelen börja!

Vad krävs för att datorn ska börja jaga dig? Att den rör sig! Lägg till en liten förflyttning efter att den vridit färdigt.

def go_forward():
  human.forward(hastighet)
  ny_vinkel = ai.towards(human)
  ai.setheading(ny_vinkel)
  ai.forward(hastighet/2)

Vad händer om den hinner ikapp? Just nu ingenting, men vi kan lägga till detta i slutet av samma funktion:

if human.distance(ai) < 10:
    turtle.bye()

Vad mer kan du bygga vidare på efter detta? Programmering låter dig göra vad som helst med din dator!

Har du en fråga du vill ställa om AI? Ställ den på Pluggakuten.se
Har du hittat ett fel, eller har du kommentarer till materialet på den här sidan? Mejla matteboken@mattecentrum.se

I den här videon kombinerar vi alla våra Python kunskaper. Två sköldpaddor dyker upp på skärmen, en kontrollerar du, en kontrollerar datorn. Kommer den ifatt dig?

  • AI: Artificiell intelligens, en tänkande maskin.
Svårighetsgrad