source: esimerkit/2015k/live/live20/SierpinskiMatto/SierpinskiMatto/SierpinskiMatto.cs @ 1404

Revision 1096, 1.5 KB checked in by anlakane, 3 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class SierpinskiMatto : Game
10{
11    public override void Begin()
12    {
13        SetWindowSize(800, 600);
14        SierpinskiCarpet(0, 0, 200);
15
16        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
17    }
18
19    public void SierpinskiCarpet(double x, double y, double sivunPituus)
20    {
21        if (sivunPituus < 3) return;
22
23        GameObject nelio = new GameObject(sivunPituus, sivunPituus);
24        nelio.X = x;
25        nelio.Color = RandomGen.NextColor();
26        nelio.Y = y;
27        // nelio.Position = new Vector(x, y);
28        Add(nelio);
29
30        // ylärivi
31        SierpinskiCarpet(x - sivunPituus, y + sivunPituus, sivunPituus / 3); // vasen ylä
32        SierpinskiCarpet(x, y + sivunPituus, sivunPituus / 3); // keski ylä
33        SierpinskiCarpet(x + sivunPituus, y + sivunPituus, sivunPituus / 3); // oikea ylä
34
35        // keskirivi
36        SierpinskiCarpet(x - sivunPituus, y, sivunPituus / 3); // vasen keski
37        SierpinskiCarpet(x + sivunPituus, y, sivunPituus / 3); // oikea keski
38
39        // alarivi
40        SierpinskiCarpet(x - sivunPituus, y - sivunPituus, sivunPituus / 3); // vasen ala
41        SierpinskiCarpet(x, y - sivunPituus, sivunPituus / 3); // keski ala
42        SierpinskiCarpet(x + sivunPituus, y - sivunPituus, sivunPituus / 3); // oikea ala
43    }
44}
Note: See TracBrowser for help on using the repository browser.