Turtle 3. tunti

Toistorakenne

Ohjelmoinnissa on usein tarpeen toistaa jotakin komentosarjaa riittävän monta kertaa. Alla olevassa esimerkissä kilpikonna menee eteenpäin 100 pikseliä ja kääntyy vasemmalle 90 astetta toistuvasti ja kiertää neliön muotoista rataa.

Esimerkki 1.


Välitehtävä 1.

Kokeile itse while-toistosilmukkaa laittamalla komentoja while-silmukan alle.


Jos jokin komento halutaan toistaa tietyn monta kertaa, voidaan käyttää for-komentoa.

Esimerkki 2.
​​​​

Yllä olevassa ohjelmassa kilpikonna menee eteenpäin ja kääntyy oikealle neljä kertaa, jolloin syntyy neliö.

Välitehtävä 2.

Kokeile itse for-toistokomentoa. Voit määrätä toistojen lukumäärän laittamalla kirjaimen x paikalle haluamasi luvun ja for-komennon alle ne komennot, jotka toistetaan x kertaa.

Tehtävät


1.
Ohjelmoi olio kulkemaan ikuisesti pisteiden (0,0) ja (100, 100) välillä goto-komennolla. (Esimerkki 1.)

2. Ohjelmoi olio kulkemaan ikuisesti pitkin kolmion sivuja. Kolmion kärkipisteet ovat (0,0), (100,0) ja (0, 100).

3. Laita alla olevaan ohjelmaan oikea luku kirjaimen x paikalle, jotta olio piirtää kuvan mukaisen kuvion.

import turtle
kilppari = turtle.Turtle()

for i in range (0,x):
[[$ \ \ \ \ \ $]] kilppari.forward(20)
[[$ \ \ \ \ \ $]] kilppari.left(90)
[[$ \ \ \ \ \ $]] kilppari.forward(20)
[[$ \ \ \ \ \ $]] kilppari.right(90)



4. Piirrä tasasivuinen kolmio käyttämällä for-komentoa. (Esimerkki 2.)

5. Komennoilla

import turtle
import random

kilppari = turtle.Turtle()

while True:
[[$ \ \ \ \ \ $]] kilppari.goto(random.randint(-300,300),random.randint(-300,300))

olio menee satunnaisiin paikkoihin piirtoalustalla.

a) Muuta ohjelmaa siten, että olio piirtää ympyrän aina päätyessään uuteen pisteeseen.

b) Muuta ohjelmaa vielä siten, että olio jättää jäljen vain piirtämistään ympyröistä.

6. Piirrä pentagrammi käyttäen for-toistoa.

Ohjailtava kilpikonna

Alla olevalla ohjelmalla oliota voi ohjailla näppäimillä W (ylös), A (vasen), S (alas) ja D(oikea) ja antamalla kuljettava matka. Kokeile ohjelmaa ja mieti, mikä on minkäkin komennon tarkoitus.

import turtle
kilppari = turtle.Turtle()




while True:

[[$ \ \ \ \ \ $]] suunta = input ("Anna suunta.")
[[$ \ \ \ \ \ $]] matka = int(input ("Anna matka."))

[[$ \ \ \ \ \ $]] if suunta == "a":
[[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] kilppari.setheading(180)
[[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] kilppari.fd(matka)

[[$ \ \ \ \ \ $]] if suunta == "d":
[[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] kilppari.setheading(0)
[[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] kilppari.fd(matka)

[[$ \ \ \ \ \ $]] if suunta == "w":
[[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] kilppari.setheading(90)
[[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] kilppari.fd(matka)

[[$ \ \ \ \ \ $]] if suunta == "s":
[[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] kilppari.setheading(270)
[[$ \ \ \ \ \ $]] [[$ \ \ \ \ \ $]] kilppari.fd(matka)