Užduotys

PRADEDANTIEJI - 1 KLASĖS UŽDUOTYS

  • 22. Programa (žaidimas pagauk žvaigždę)

    Žaidimo tikslas pagauti kiek įmanoma daugiau žvaigždžių. Padaryti kiek įmanoma panašesnį žaidimą.

  • video aprašas
  • Atsakymas
  • 23. Užduotis Užduotis (įvadas į kodo rašymą).

    Pagal pateiktą pavyzdį, padarykite įdentišką vaizdą. Kad būtų lengviau susigaudyti koordinatėsė, paspaudus ant paveikslėlio pelytės mygtuku gausime foną su koordinatėmis.

  • video aprašas
  • Sprendimas

    Raktiniai žodžiai, kuriuos panaudosime: void, setup(), size, rect, ellipse, background. Ekrano dydis 400 ilgio ir 400 aukščio (400x400 pikseliai)

    							1. void setup()
    							{
    							size(400, 400);
    							}
    							2. tada rašome void draw()
    							{  
    							3. parašome, ad turėtume foną, komanda  background(200, 255, 230); ir trys kintamieji (skaičiai). 
    							Pirmas skaičius raudonos spalvos intensyvumas  	
    							Antras skaičius žalios spalvos intensyvumas
    							Trečias skaičius mėlynos spalvos intensyvumas
    							prisiminkite: skaičiaus invensyvumas galimas nuo 0 iki 255 (kuo didesnis skaičius tuo daugiau bus tos spalvos).
    							fill(?,?,?); vietoje klaustukų turime įrašyti skaičių, kad gautime spalvą.
    							rect(?, ?, ?, ?);  - stačiakampis, kuriam reikia 4 kintamųjų (skaičių). 
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius stačiakampio ilgis
    							Ketvirtas skaičius stačiakampio aukštis.
    							Mums dar reiks apskritimo.
    							Apskritimą nubrėžti naudosime raktažodį ellipse(?, ?, ?, ?) ir 4 kintamuosius (skaičius)
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius elipsės ilgis
    							Ketvirtas skaičius elipsės aukštis.
  • Atsakymas

    Atsakymas skirtas pasitikrinti

    							void setup()
    							{
    							size(400, 400);
    							}
    							void draw()
    							{
    							background(200, 255, 230);
    							fill(100, 250, 30);
    							rect(50, 50, 200, 200);
    							fill(250, 0, 230);
    							rect(300, 200, 50, 100);
    							fill(250, 30, 30, 100);
    							ellipse(120, 300, 220, 150);  
    							} 
  • 24. Užduotis (įvadas į kodo rašymą ir RGB panaudojimas).

    Pagal pateiktą pavyzdį, padarykite įdentišką vaizdą. Kad būtų lengviau susigaudyti koordinatėsė, paspaudus ant paveikslėlio pelytės mygtuku gausime foną su koordinatėmis.

  • Sprendimas

    Raktiniai žodžiai, kuriuos panaudosime: void, setup(), size, rect, ellipse, background. Ekrano dydis 400 ilgio ir 400 aukščio (400x400 pikseliai)

    							1. void setup()
    							{
    							size(400, 400);
    							}
    							2. tada rašome void draw()
    							{  
    							3. parašome, ad turėtume foną, komanda  background(200, 255, 230); ir trys kintamieji (skaičiai). 
    							Pirmas skaičius raudonos spalvos intensyvumas  	
    							Antras skaičius žalios spalvos intensyvumas
    							Trečias skaičius mėlynos spalvos intensyvumas
    							prisiminkite: skaičiaus invensyvumas galimas nuo 0 iki 255 (kuo didesnis skaičius tuo daugiau bus tos spalvos).
    							fill(?,?,?); vietoje klaustukų turime įrašyti skaičių, kad gautime spalvą.
    							rect(?, ?, ?, ?);  - stačiakampis, kuriam reikia 4 kintamųjų (skaičių). 
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius stačiakampio ilgis
    							Ketvirtas skaičius stačiakampio aukštis.
    							Mums dar reiks apskritimo.
    							Apskritimą nubrėžti naudosime raktažodį ellipse(?, ?, ?, ?) ir 4 kintamuosius (skaičius)
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius elipsės ilgis
    							Ketvirtas skaičius elipsės aukštis.
  • Atsakymas

    Atsakymas skirtas pasitikrinti

    							void setup()
    							{
    							size(400, 400);
    							}
    							void draw()
    							{
    							background(200, 255, 230);
    							ellipseMode(CENTER);
    							rectMode(CENTER); 
    							stroke(0);
    							fill(150);
    							rect(320,190,20,100);
    							fill(255);
    							ellipse(320,160,60,60); 
    							fill(0); 
    							ellipse(301,160,16,32); 
    							ellipse(339,160,16,32);
    							stroke(0);
    							line(310,240,300,250);
    							line(330,240,340,250);
    							} 

PAŽENGĘ - 2 KLASĖS UŽDUOTYS

  • 23. Užduotis (įvadas į kodo rašymą).

    Pagal pateiktą pavyzdį, padarykite įdentišką vaizdą. Kad būtų lengviau susigaudyti koordinatėsė, paspaudus ant paveikslėlio pelytės mygtuku gausime foną su koordinatėmis.

  • video aprašas
  • Sprendimas

    Raktiniai žodžiai, kuriuos panaudosime: void, setup(), size, rect, ellipse, background. Ekrano dydis 400 ilgio ir 400 aukščio (400x400 pikseliai)

    					1. void setup()
    					{
    					size(400, 400);
    					}
    					2. tada rašome void draw()
    					{  
    					3. parašome, ad turėtume foną, komanda  background(200, 255, 230); ir trys kintamieji (skaičiai). 
    					Pirmas skaičius raudonos spalvos intensyvumas  	
    					Antras skaičius žalios spalvos intensyvumas
    					Trečias skaičius mėlynos spalvos intensyvumas
    					prisiminkite: skaičiaus invensyvumas galimas nuo 0 iki 255 (kuo didesnis skaičius tuo daugiau bus tos spalvos).
    					fill(?,?,?); vietoje klaustukų turime įrašyti skaičių, kad gautime spalvą.
    					rect(?, ?, ?, ?);  - stačiakampis, kuriam reikia 4 kintamųjų (skaičių). 
    					Pirmas skaičius atstumas nuo krašto.
    					Antras skaičius atstumas nuo viršaus.
    					Trečias skaičius stačiakampio ilgis
    					Ketvirtas skaičius stačiakampio aukštis.
    					Mums dar reiks apskritimo.
    					Apskritimą nubrėžti naudosime raktažodį ellipse(?, ?, ?, ?) ir 4 kintamuosius (skaičius)
    					Pirmas skaičius atstumas nuo krašto.
    					Antras skaičius atstumas nuo viršaus.
    					Trečias skaičius elipsės ilgis
    					Ketvirtas skaičius elipsės aukštis.
  • Atsakymas

    Atsakymas skirtas pasitikrinti

    					void setup()
    					{
    					size(400, 400);
    					}
    					void draw()
    					{
    					background(200, 255, 230);
    					fill(100, 250, 30);
    					rect(50, 50, 200, 200);
    					fill(250, 0, 230);
    					rect(300, 200, 50, 100);
    					fill(250, 30, 30, 100);
    					ellipse(120, 300, 220, 150);  
    					} 
  • 24. Užduotis (įvadas į kodo rašymą ir RGB panaudojimas).

    Pagal pateiktą pavyzdį, padarykite įdentišką vaizdą. Kad būtų lengviau susigaudyti koordinatėsė, paspaudus ant paveikslėlio pelytės mygtuku gausime foną su koordinatėmis.

  • Sprendimas

    Raktiniai žodžiai, kuriuos panaudosime: void, setup(), size, rect, ellipse, background. Ekrano dydis 400 ilgio ir 400 aukščio (400x400 pikseliai)

    							1. void setup()
    							{
    							size(400, 400);
    							}
    							2. tada rašome void draw()
    							{  
    							3. parašome, ad turėtume foną, komanda  background(200, 255, 230); ir trys kintamieji (skaičiai). 
    							Pirmas skaičius raudonos spalvos intensyvumas  	
    							Antras skaičius žalios spalvos intensyvumas
    							Trečias skaičius mėlynos spalvos intensyvumas
    							prisiminkite: skaičiaus invensyvumas galimas nuo 0 iki 255 (kuo didesnis skaičius tuo daugiau bus tos spalvos).
    							fill(?,?,?); vietoje klaustukų turime įrašyti skaičių, kad gautime spalvą.
    							rect(?, ?, ?, ?);  - stačiakampis, kuriam reikia 4 kintamųjų (skaičių). 
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius stačiakampio ilgis
    							Ketvirtas skaičius stačiakampio aukštis.
    							Mums dar reiks apskritimo.
    							Apskritimą nubrėžti naudosime raktažodį ellipse(?, ?, ?, ?) ir 4 kintamuosius (skaičius)
    							Pirmas skaičius atstumas nuo krašto.
    							Antras skaičius atstumas nuo viršaus.
    							Trečias skaičius elipsės ilgis
    							Ketvirtas skaičius elipsės aukštis.
  • Atsakymas

    Atsakymas skirtas pasitikrinti

    							void setup()
    							{
    							size(400, 400);
    							}
    							void draw()
    							{
    							background(200, 255, 230);
    							ellipseMode(CENTER);
    							rectMode(CENTER); 
    							stroke(0);
    							fill(150);
    							rect(320,190,20,100);
    							fill(255);
    							ellipse(320,160,60,60); 
    							fill(0); 
    							ellipse(301,160,16,32); 
    							ellipse(339,160,16,32);
    							stroke(0);
    							line(310,240,300,250);
    							line(330,240,340,250);
    							} 

ŽINOVAI 3-4 KLASĖS UŽDUOTYS

  • 23 Užduotis.

    Padaryti, kiek įmanoma panašesnį į pateiktą pavyzdį. Figūros bus kviečiamos per metodus pateikiant parametrus.

  • Sprendimas
    pamoka23
  • 24 Užduotis.

    Padaryti, kiek įmanoma panašesnį į pateiktą pavyzdį. Turi būti atvaizduojami apuokai, kurių dydis kinta.

  • Sprendimas
    pamoka24

IŠMANANTYS 5-8 KLASĖS UŽDUOTYS

  • 23 Užduotis .

    Sukurti kaip pavaizduota. Rutuliukai turi būti atvaizuodjami kaip taškai, kurių pozicijos ir greitis (greitis atsitiktinis), saugojamas masyve. Turi būti 100 taškų masyvas. X, Y koordinatės ir greitis saugomi atskiruose masyvuose.

  • 23 Užduotis papildoma stipresniems .

    Sukurti kaip pavaizduota. Turime sukurti trijų dimencijų vaizdą. Rutuliukai turi būti atvaizuodjami kaip taškai, kurių pozicijos ir greitis (greitis atsitiktinis), saugojamas masyve. Turi būti 200 taškų masyvas. X, Y, Z koordinatės ir greitis saugomi atskiruose masyvuose. Rutuliukai turi skristi iš abiejų pusių.

  • Sprendimas
    pamoka23meteoritai
  • 24 Užduotis .

    Reikia sukurti programą, kaip parodyta. Mygtukai turi būti aprašome kaip objektai.

  • Sprendimas
    pamoka24a pamoka24

EKSPERTŲ UŽDUOTYS 

  • 1. Užduotis

    Pagal pateiktą pavyzdį, padarykite įdentišką vaizdą. Kad būtų lengviau susigaudyti koordinatėse, paspaudus ant paveikslėlio pelytės mygtuku gausime foną su koordinatėmis.

    Turime kintamuosius, kurie pateikti kode. Reikia tuos kintamuosius panaudoti, kad gautme tokį pat vaizdą kaip pateikta. pvz line(a, f, b, g);

    Reiks panaudoti: line, rect, ellipse, triangle

  • Sprendimas
    Programuojame processing programoje arba paspaudus mygtuką "programuoti" turėsime langą, kuriame atliksime veiksmus analogiškus processing programai.
    Nustatome ekrano dydį: size(600, 600);
    NoStroke() raktažodžiu nustatome, kad būtų paveikslėliai be linijų kraštinėse.
    Nustatome fono spalvą pasinaudojus background(?); ? - [0..255].
    Stačiakampiui piešti pasinaudojame rect(?, ?, ?, ?);  ? - [0..255].
    Elipsei piešti pasinaudojame ellipse(?, ?, ?, ?);  ? - [0..255].
    Norint piešti figūrą turime rašyti taip: 
    	beginShape();         
    	vertex(?, ?);
    	...
    	...
    	vertex(?, ?);
    	endShape();  
    Norime piešti tik dalį ar visą ellipsę - naudosime arc(?, ?, ?, ?, ?, ?);
    1 parametras atstumas nuo krašto.
    2 atstumas nuo viršaus.
    3 elipsės ilgis.
    4 elipse aukštis.
    5 kokiu kampu pradėsime piešti.
    6 kokiu kampu baigsime piešti.
    Galimos kampo reikšmės nuo 0 iki 2*PI kas atitinka (0..360). Skaičius galime daryti ir didesnius bet jie yra kartotiniai ir neturi prasmės.
  • Atsakymas

    Atsakymas skirtas pasitikrinti

    void setup() {
    	size(600, 600);
    	noStroke();
    	background(140);
    	fill(170);
    	rect(0, 0, width, 20);
    	fill(160);
    	rect(0, height-100, width, 100);
    	fill(110);
    	rect(0, height-110, width, 10); 
    	fill(180);
    	rect(width/2-300/2, height-200, 300, 10);     
    	rect(width/2-260/2, height-190, 260, 15);     
    	rect(width/2-260/2, height-175, 10, 100);     
    	rect(width/2+260/2-10, height-175, 10, 100);    
    	fill(110);
    	rect(width/2-260/2, height-75, 10, 5);         
    	rect(width/2+260/2, height-75, -10, 5);
    	fill(160);
    	rect(width/2-260/2, height-190, 260, 5);      
    	fill(200);
    	rect(width/2+150, height-140, 70, 10);   
    	rect(width/2+150, height-130, 10, 60);   
    	rect(width/2+210, height-130, 10, 60);   
    	fill(220, 50, 110);
    	rect(width/2+150, height-150, 70, 10);    
    	fill(110);
    	rect(width/2+150, height-75, 10, 5);    
    	rect(width/2+210, height-75, 10, 5);
    	fill(180);
    	rect(width/2+150, height-130, 10, 5);    
    	rect(width/2+210, height-130, 10, 5);
    	fill(200);
    	rect(width/2-180, height-140, 200, 10);   
    	rect(width/2-180, height-140, 10, 70);    
    	rect(width/2+10, height-130, 10, 60);    
    	fill(220, 50, 110);
    	rect(width/2-180, height-150, 200, 10);   
    	fill(110);
    	rect(width/2-180, height-75, 10, 5);      
    	rect(width/2+10, height-75, 10, 5);
    	fill(180);
    	rect(width/2-180, height-130, 10, 5);
    	rect(width/2+10, height-130, 10, 5);
    	fill(255, 40);
    	ellipse(width/2, 290, 50, 50);   
    	fill(255, 30);
    	ellipse(width/2, 290, 60, 60);   
    	fill(255, 20);
    	ellipse(width/2, 290, 70, 70);   
    	fill(255, 10);
    	ellipse(width/2, 290, 80, 80);   
    	fill(255, 150);                 
    	ellipse(width/2, 290, 40, 40);
    	fill(30);
    	rect(width/2-2, 0, 4, 250);      
    	fill(60);
    	rect(width/2-50, 250, 100, 50); 
    	fill(0, 200, 255);
    	rect(0, 100, 80, 300);  
    	fill(35, 190, 95);
    	rect(0, 300, 80, 100);   
    	fill(220, 220, 255);
    	beginShape();         
    	vertex(0, 200);
    	vertex(40, 230);
    	vertex(40, 300);
    	vertex(0, 300);
    	endShape();
    	fill(200, 200, 235);
    	rect(40, 230, 40, 70);  
    	fill(90, 90, 95);
    	beginShape();
    	vertex(0, 200);        
    	vertex(80, 200);
    	vertex(80, 240);
    	vertex(40, 240);
    	endShape();
    	fill(70, 70, 75);
    	rect(15, 190, 20, 10);  
    	fill(200, 130, 215);
    	rect(0, 240, 10, 30);   
    	fill(100);
    	rect(0, 100, 80, 10);    
    	rect(80, 100, 10, 300);  
    	rect(0, 260, 80, 10);    
    	fill(120);
    	rect(0, 400, 100, 10);  
    	fill(100);
    	rect(0, 410, 90, 30);   
    	fill(80);
    	rect(0, 410, 90, 10);
    	fill(40);
    	rect(0, 110, 110, 4);
    	ellipse(110, 112, 12, 12);
    	fill(255, 150);
    	rect(50, 110, 50, 270);   
    	rect(50, 110, 50, 15);    
    	fill(200);
    	rect(width-110, 190, 110, 170);
    	fill(230, 175, 0);
    	rect(width-100, 200, 100, 150);
    	fill(190, 140, 0);
    	ellipse(width/2-20, height-240, 30, 30); 
    	ellipse(width/2+15, height-240, 30, 30);  
    	fill(0, 150, 0);
    	ellipse(width/2-25, height-248, 3, 3);   
    	fill(200, 150, 0);
    	ellipse(width/2, height-240, 30, 30);    
    	fill(0, 150, 0);
    	ellipse(width/2+3, height-250, 3, 3);
    	fill(0, 150, 255);
    	arc(width/2, height-240, 80, 80, 0, PI); 
    	fill(0, 120, 230);
    	rect(width/2-42, height-240, 84, 5);     
    	fill(255, 30);
    	rect(width/2-100, height-250, 30, 50);   
    	rect(width/2+100, height-250, -30, 50);
    	fill(185, 15, 15, 150);
    	rect(width/2-95, height-230, 20, 25);    
    	rect(width/2+95, height-215, -20, 10);
    	fill(50);
    	rect(width-35, height-125, 20, 25, 10, 10, 0, 0);
    } 
  • 2. Užduotis

    Pagal pateiktą pavyzdį, padarykite įdentišką vaizdą.

    Reiks panaudoti: cos, sin, sukurti objektą, radians, dinaminį masyvą (pvz.: ArrayList)

  • Sprendimas
    
    							
  • Atsakymas

    Atsakymas skirtas pasitikrinti

    int maxAge = 100;  
    ArrayList obj; 
    boolean pause = false;     
    void setup() {
    size(500, 500);
    background(120, 110, 100);
    obj = new ArrayList();
    for (int i=0; i < 3; i++) {
    Objektas f = new Objektas(width/2, height/2);
    obj.add(f);
    }
    }
    void draw() {
    if (!pause) {
    for (int i=obj.size()-1; i>=0; i-=1) {
    	Objektas f = obj.get(i);
    	f.update();
    	if (f.distFromCenter >= width/2-50 || f.age > maxAge) {
    		obj.remove(i);
    	}
    	f.display();
    }
    if (frameRate < 30) {
    	setup();
    }
    }
    }
    
    
    
    
    
    class Objektas {
    float angleChangeAmt = radians(8);
    float speed =          1;
    float chanceSplit =    2;
    float splitAngle =     radians(16);
    float x, y, prevX, prevY;
    float angle;
    float distFromCenter;
    int age = 0;
    Objektas(float _x, float _y) {
    x =     _x;
    y =     _y;
    prevX = x;
    prevY = y;
    angle = random(0, TWO_PI);
    }
    Objektas(float _x, float _y, float _angle) {
    x = _x;
    y = _y;
    angle = _angle;
    }
    void update() {
    age += 1;
    distFromCenter = sqrt(pow(width/2-x, 2) + pow(height/2-y, 2));
    angle += random(-angleChangeAmt, angleChangeAmt);
    prevX = x;
    prevY = y;
    x += cos(angle) * speed;
    y += sin(angle) * speed;    
    if (random(100) < chanceSplit) {
    	Objektas f = new Objektas(x, y, angle+splitAngle);
    	obj.add(f);
    	angle -= splitAngle;
    }
    }
    void display() {    
    stroke(255, 245, 235, 60);
    line(prevX, prevY, x, y);
    }
    }
    									
     
  • 7 Užduotis

    Padarykite taip, kaip parodyta programoje. Turime panaudoti rekursija atvaizduojant paveikslėlį. Atvaizdavimui nesinaudoti žinomo dydžio ciklu.

  • video aprašai
  • Atsakymas
    									int lygisMin = 3;
        int lygisMax = 10;
        float ilgis = 70;
        
        float kampasMin = PI/24;
        float kampasMax = PI/6;
    
        void recursiveTree (int lygis, float ilgis, float kampas){
            if (lygis>0){  
                pushMatrix();           
                rotate (kampas);         
                line (0,0,0,-ilgis);   
                pushMatrix();           
                translate(0,-ilgis);   
                scale (0.85f);          
                recursiveTree (lygis-1, ilgis, kampas);  
                popMatrix();  
                popMatrix(); 
                pushMatrix();
                rotate (-kampas);
                line (0,0,0,-ilgis);
                pushMatrix();
                translate(0,-ilgis);
                scale (0.85f);
                recursiveTree (lygis-1, ilgis, kampas);
                popMatrix();
                popMatrix();
            }
        }
    
        public void setup() {
            size(500, 500);
            stroke(27, 25, 9);
            strokeWeight(3);
        }
    
        public void draw() {
            background(color(245,247,232));
            
            float kampasP = map (mouseX, 0, width, kampasMin, kampasMax); 
            int lygis = (int)map (mouseY, height,0, lygisMin, lygisMax); 
            
            pushMatrix(); 
            translate (width/2, height); 
            recursiveTree (lygis, ilgis, kampasP); 
            popMatrix(); 
        }
      
Redaktorius