Etusivu | Pong | Omenasoturi
Nuorten koodauskerho 2018 kevät - 1. kerta
Tervetuloa kevään ensimmäiseen koodauskerhoon!
Omien pelien tekeminen
Jos sinulla on kesken oma peli, voit jatkaa sen tekemistä. Voit myös aloittaa kokonaan uuden pelin tekemisen.
Laajennettua kilpikonnagrafiikkaa
Koodauskerhossa on aiempina vuosina käsitelty kilpikonnagrafiikkaa. Tällä yksinkertaisella grafiikkarajapinnalla voi ohjata kilpikonnan näköistä kursoria, joka piirtää viivaa liikkuessaan.
Alkuvalmistelut
- Lataa turtle.zip -tiedosto
C:\MyTemp\omanimi
-kansioon, missäomanimi
-sanan tilalla on oma nimesi. Jos kansiota ei ole olemassa, voit luoda sellaisen. - Pura kansion sisältö (klikkaa oikealla ja
Extract all...
) - Avaa
Turtle.sln
-tiedosto Visual Studio 2017 -ohjelmalla. - Klikkaa oikean reunan valikosta
Piirto.cs
-tiedostoa. Ohjelmakoodia aletaan kirjoittamaan tähän tiedostoon.
- Kilpikonnalle voi kirjoittaa käskyjä ja ohjelman voi ajaa painamalla F5 tai klikkaamalla yläreunan
Start
-nappulaa.
Kilpikonnan ohjelmointi
Kilpikonnalle annettavat käskyt ovat yksinkertaisia:
Liiku(100);
liikuttaa kilpikonnaa 100 askelta eteenpäinKaanny(100);
kääntää kilpikonnaa 100 astetta vastapäiväänPiirtoPaalle();
laskee kilpikonnan "kynän" alas jaPiirtoPois();
nostaa sen ylösAsetaViivanPaksuus(5);
asettaa piirtojäljen leveyden pikseleinäAsetaVari(Color.Red);
vaihtaa piirtojäljen väriä, väriksi voi valita mitä haluaa
Tämän vuoden versioon on myös lisätty muutama uusi käsky:
AsetaNopeus(500);
muuttaa kilpikonnan liikkumis- ja kääntymisnopeuttaLiikuPaikkaan(200,200);
liikuttaa kilpikonnan annettuihin x- ja y-koordinaatteihinPomppaa(200,200);
siirtää kilpikonnan välittömästi uuteen paikkaan, eikä käännä kilpikonnaaPiirraMuoto(Shape.Circle,50,50);
piirtää minkä tahansa Jypelin valmiista muodoista (tämä piirtäisi 50x50-kokoisen ympyrän)Piilota();
piilottaa kilpikonnan, eli kuvio piirtyy itsekseenNayta();
palauttaa kilpikonnan näkyviinAsetaTaustavari(Color.Azure);
asettaa piirtoalustan taustan värin
Esimerkkikuvia ja niiden ohjelmakoodeja
Spiraali
protected override void LisaaKaskyt()
{
double m = 5;
for (double d = 0; d < 250; d++)
{
Liiku(m += 0.1);
Kaanny(5);
}
}
Tähtispiraali
protected override void LisaaKaskyt()
{
double m = 5;
for (double d = 0; d < 100; d++)
{
PiirtoPaalle();
double koko = 10 * Math.Sqrt(m);
PiirraMuoto(Shape.Star, koko, koko);
PiirtoPois();
Liiku(m += 10);
Kaanny(50);
}
}
Sinifunktio
protected override void LisaaKaskyt()
{
AsetaViivanPaksuus(5);
Piilota();
for (double d = 0; d < 25; d += 0.1)
LiikuPaikkaan(d * 20, 100 * Math.Sin(d));
}
Neliöitä
protected override void LisaaKaskyt()
{
AsetaNopeus(1000);
AsetaViivanPaksuus(2);
PiirtoPois();
Pomppaa(0, -500);
double m = 10, k = 10, koko = 16;
for (int j = 0; j < 10; j++)
{
PiirtoPaalle();
for (int i = 0; i < koko; i++)
{
Liiku(m += 2);
Kaanny(89);
}
koko += +16;
Kaanny(k += 20);
PiirtoPois();
Liiku(2 * m);
m = 10;
}
}
Rekursiivinen puu
protected override void LisaaKaskyt()
{
AsetaViivanPaksuus(2);
AsetaNopeus(1000);
Kaanny(90);
Pomppaa(0, -500);
Puu(1000);
}
void Puu(double r)
{
if (r < 20)
{
Liiku(r);
Liiku(-r);
}
else
{
Liiku(r / 3);
Kaanny(30);
Puu(r * 2 / 3);
Kaanny(330);
Liiku(-r / 3);
Liiku(r / 2);
Kaanny(335);
Puu(r / 2);
Kaanny(25);
Liiku(-r / 2);
Liiku(5 * r / 6);
Kaanny(335);
Puu(r / 2);
Kaanny(25);
Liiku(-5 * r / 6);
}
}
Dragon curve
protected override void LisaaKaskyt()
{
AsetaNopeus(1000);
AsetaViivanPaksuus(2);
string s = "FX";
for (int i = 0; i < 15; i++)
{
string ns = "";
foreach (char c in s)
if (c == 'X') ns += "X+YF";
else if (c == 'Y') ns += "FX-Y";
else ns += c;
s = ns;
}
foreach (char c in s)
{
if (c == 'F') Liiku(8);
if (c == '+') Kaanny(270);
if (c == '-') Kaanny(90);
}
}
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.