Užduotys

PRADEDANTIEJI - 1 KLASĖS UŽDUOTYS

  • 4. Užduotis Žaidimas „Plaukiame į salą“ (2020-11-16 - 2020-11-22)

    Paspausti norint programuoti SCRATCH programos langą

    Šios pamokos tikslas yra suprogramuoti žaidimą, kurio esmė laivas plaukia į sąlą. Pakeliui laivas turi išvengti kliūtis. Reikia padaryti kiek įmanoma panašesnį į pateiktą mūsų žaidimą.

    Papildomai stipresniems: padaryti rodykles, kad pagreitėtų 3-5 taškai. Laikmačio rodymas.

  • video aprašas
  • Sprendimas
  • Atsakymas

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

  • 4. Užduotis Žaidimas „Plaukiame į salą“ (2020-11-16 - 2020-11-22)

    Paspausti norint programuoti SCRATCH programos langą

    Šios pamokos tikslas yra suprogramuoti žaidimą, kurio esmė laivas plaukia į sąlą. Pakeliui laivas turi išvengti kliūtis. Reikia padaryti kiek įmanoma panašesnį į pateiktą mūsų žaidimą.

    Papildomai: kai pasiekiame salą, turi atsirasti kitas veikėjas ir vėl pradėti nuo pradžios

  • video aprašas
  • Sprendimas
  • Atsakymas

ŽINOVAI 3-4 KLASĖS UŽDUOTYS

  • 4 a. Užduotis (2020-11-16 - 2020-11-22)

    Kamuoliukas turi judėti atsitiktinai, bet negali išeiti už programos krašto. Reikia padaryti kiek įmanoma panašesnį į mūsų pateiktą pavyzdį. Fono nuotrauka (data/forest.png).

  • 4 b. Užduotis (2020-11-16 - 2020-11-22)

    Kalėdų senio elnias ("data/Reindeer.png") turi judėti atsitiktinai, bet negali išeiti už programos krašto. Reikia padaryti kiek įmanoma panašesnį į mūsų pateiktą pavyzdį. Fono nuotrauka (data/christmas.jpg).

  • video aprašas
  • 4a. Atsakymas

    Atsakymas skirtas pasitikrinti

    									int x;
    									int y;
    									int speed = 5;
    									void setup()
    									{
    									 size(400,400);
    									 x =width/2;
    									 y =height/2;
    									 
    									}
    									void draw()
    									{
    									
    									 fill(255, 255,255);
    									 ellipse(x, y, 7,7);
    									 x+=random(-speed, speed);
    									 y+=random(-speed, speed);
    									 if(x < 0) x =0;
    									 if(y < 0) y =0;
    									 if(x > width) x =width;
    									 if(y > height) y =height;
    									} 
    
  • 4b. Atsakymas

    Atsakymas skirtas pasitikrinti

    									PImage img;	
    PImage reindeer;									
    int x;									
    int y;									
    int speed = 5;									
    void setup()									
    {									 
    size(400,400);									 
    img = loadImage("data/christmas.jpg");	
    reindeer= loadImage("data/Reindeer.png");
    x =width/2;
    y =height/2;
    }
    void draw()		
    {																										
    image(img, 0,0,width, height);
    image(reindeer, x, y, 100,100);	
    x+=random(-speed, speed);
    y+=random(-speed, speed);
    if(x < 0)  x =0;
    if(y < 0) y =0;
    if(x > width-70) x =width-75;
    if(y > height-70) 
    y =height-75;
    }
    								
  • 1c. Atsakymas

    Atsakymas skirtas pasitikrinti

    void setup()
    {
      size(400, 400);
    }
    void draw()
    {
    background(0, 0, 0);
    fill(150, 150, 150);
    ellipse(210, 200, 300, 300);
    fill(0, 0, 0);
    ellipse(280, 130, 70, 70);
    fill(0,0,0);
    rect(0, 200, 420, 10); 
    } 
  • 5 a. Užduotis (2020-11-23 - 2020-11-29)

    Turime nupiešti tokias pat figūras kaip pateikta pavyzdyje. Mums reikės noStroke, beginShape(), vertex(x, y) ir endShape().

    noStroke() - aplink figūrą nėra linijos.

    beginShape(); vertex(?, ? ); vertex(?, ? ); vertex(?, ? ); endShape(); kur beginShape()- pradedame piešti figūrą, vertex(x, y) - taškai x ir y koordinačių atžvilgiu, endShape() baigiame piešti. Taškų gali būti begalo daug ir visus juos sujungia.

  • 5 b. Užduotis (2020-11-23 - 2020-11-29)

    Turime nupiešti tokias pat figūras kaip pateikta pavyzdyje. Mums reikės stroke, strokeWeight(), beginShape(), vertex(x, y) ir endShape().

    stroke(255, 0, 0) - aplink figūrą linijos spalva, šiuo atveju raudona spalva.

    beginShape(); vertex(?, ? ); vertex(?, ? ); vertex(?, ? ); endShape(); kur beginShape()- pradedame piešti figūrą, vertex(x, y) - taškai x ir y koordinačių atžvilgiu, endShape() baigiame piešti. Taškų gali būti begalo daug ir visus juos sujungia.

  • video aprašas
  • 5a. Atsakymas

    Atsakymas skirtas pasitikrinti

    void setup()
    {
    size(100, 200); 
    background(0); 
    noStroke(); 
    fill(250, 230, 5); 
    beginShape(); 
    vertex(20, 10); 
    vertex(20, 60); 
    vertex(30, 50); 
    vertex(20, 110); 
    vertex(30, 100); 
    vertex(20, 170); 
    vertex(60, 75); 
    vertex(50, 85); 
    vertex(60, 35); 
    vertex(50, 45); 
    vertex(60, 10); 
    endShape();
    }
    	
  • 5b. Atsakymas

    Atsakymas skirtas pasitikrinti

    void setup() {
    size(400, 400);
    background(255);
    stroke(255, 0, 0);
    strokeWeight(4);
    fill(255, 0, 0, 128);
    beginShape();
    
    vertex(200, 40);
    vertex(140, 120);
    vertex(40, 120);
    vertex(140, 180);
    vertex(40, 300);
    
    vertex(200, 220);
    vertex(360, 300);
    vertex(260, 180);
    vertex(360, 120);
    vertex(260, 120);
    vertex(200, 40);
    endShape();
    }
    									
  • 6a Užduotis. 2020-11-30 - 2020-12-06

    Turime atvaizduoti džiunglėse sukantį veikėją. Veikėjų paveikslėliai gali būti šie ("data/kroko.png, data/lion.png, data/animal2.jpg, data/bird.png"). Sukimuisi mes turime panaudoti rotate funkcija. Paukštis turi pasisukti 90 laipsniu kai paspaudžiame pelytę.

  • 6b Užduotis. 2020-11-30 - 2020-12-06

    Turime atvaizduoti džiunglėse sukantį veikėją. Veikėjų paveikslėliai gali būti šie ("data/kroko.png, data/lion.png, data/animal2.jpg, data/bird.png"). Fono paveikslėlis ("data/forest.png"). Sukimuisi mes turime panaudoti rotate(skaicius) ir translate(skaicius, skaicius) funkcijas. Paukštis turi judėti ten kur pelytė.

  • video aprašai
  • Atsakymai
    atsakymas 6a
    	PImage pim;
    	float rot=0;
    	void setup(){
    		size(400,400);
    		pim = loadImage("data/kroko.png");
    	}
    	void draw(){
    		background(255);	
    		translate(width/2, height/2);
    		rotate(rot);
    		image(pim,-width/2,-height/2, width, height);	
    	}
    	void mouseClicked(){
    		rot+=PI/2;
    	}
    
    atsakymas 6b
    	PImage img;
    	PImage fonas;
    	float angle = 0.0;									
    	void setup() {									
    	size(320, 320);									
    	img = loadImage("bird.png");
    	fonas= loadImage("data/forest.png");							
    	}									
    	void draw() {		
    	image(fonas, 0,0,width, height);						
    	translate(mouseX, mouseY);									
    	rotate(angle);									
    	image(img, -15, -15, 30, 30);									
    	angle += 0.1;									
    	} 
    

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

  • 4a Užduotis (2020-11-16 - 2020-11-22)

    Atvaizduokite 4 kamuoliukus (ellipse) pasinaudojus žinomo dydžio ciklu. Padarykite taip, kaip parodyta programoje. Turime atvaizduoti 9 kartus tą patį gyvūną (gyvūno paveikslėlis "data/animal2.png"). Atvaizdavimui reikia pasinaudoti žinomo dydžio ciklą.

  • 4a Užduotis (2020-11-16 - 2020-11-22)

    Atvaizduokite kamuoliuko (ellipse) judėjimą pasinaudojus žinomo dydžio ciklu. Kamuoliuko judėjimui reikia pasinaudoti du ciklus, kurių dydis 50. Cikle tui būti x ir y koordinačių taškai. Atvaizdavimui reikia pasinaudoti žinomo dydžio ciklą.

  • video aprašai
  • 4a. Atsakymas
    PImage animal; 
    void setup() {
    size(450, 300);
    animal = loadImage("data/animal2.png");
    } 
    void draw() {
    for(int i=0; i < width; i+=50)
    	{
    	image(animal, i,100, 50, 100);
    }
    } 
    
  • 4a. Atsakymas
    int num = 50;
    int[] x = new int[num]; 
    int[] y = new int[num]; 
    void setup() { 
    size(400, 400);
    noStroke();
    fill(255, 102);
    }
    void draw() { 
    background(0); 
    for (int i = num-1; i > 0; i--) { 
    x[i] = x[i-1];
    y[i] = y[i-1];
    }
    
    x[0] = mouseX; 
    y[0] = mouseY; 
    for (int i = 0; i < num; i++) { 
    ellipse(x[i], y[i], i/2.0, i/2.0); 
    } 
    } 
    
  • 5a Užduotis (2020-11-23 - 2020-11-29)

    Suprogramuokite taip kaip parodyta. Reikia piešti linijas į kairę, dešinę, viršų ir apačia. Linijos kryptis atsitiktine kryptimi

  • 5b Užduotis

    Padarykite taip, kaip parodyta programoje. Turime atvaizduoti 9 eilutes, kuriose 9 kartus pasikartoja tas pats gyvūnas (gyvūno paveikslėlis "data/animal2.png"). Turi būti 81 gyvūno kopijos. Atvaizdavimui reikia pasinaudoti žinomo dydžio ciklą.

  • video aprašai
  • 5a. Atsakymas
    int x, y, px, py, walk;   
    void setup() {
    size(800, 800);
    background(50);
    x = px = width/2;
    y = py = height/2;
    walk = 10;
    }
    void draw() {
    stroke(color(random(255), random(255), random(255) ));
    line(x, y, px, py);
    px = x;
    py = y;
    if (random(100) < 50) {
    	if (random(100) < 50) {
    		x -= walk;
    	} else {
    		x += walk;
    	}
    } else {
    	if (random(100) < 50) {
    		y -= walk;
    	} else {
    		y += walk;
    	}
    }
    }
    										
    	
  • 5b. Atsakymas
    PImage animal;
    void setup() {
    size(450, 450);
    animal = loadImage("data/animal2.png");
    }									 
    void draw() {
    for (int j = 0; j < height; j+=50)
    {
    for(int i=0; i < width; i+=50)
    {
    image(animal, i, j, 50, 50); 
    }
    }
    } 
    	
  • 6a Užduotis.

    Turime atvaizduoti džiunglėse sukantį veikėją. Veikėjo paveikslėlis gali būti vienas iš šių ("data/kroko.png, data/lion.png, data/animal2.jpg, data/bird.png"). Sukimuisi mes turime panaudoti rotate funkcija. Paukštis turi pasisukti 90 laipsniu kai paspaudžiame pelytę.

  • 6b Užduotis.

    Turime atvaizduoti džiunglėse sukantį paukštį. Paukščio paveikslėlis ("data/bird.png"). Fono paveikslėlis ("data/forest.png"). Sukimuisi mes turime panaudoti rotate(), translate(skaicius, skaicius), funkcija. Vienoje eilėje turi suktis 5 paukščiai. Atsitiktinoje vietoje dar du paveiksliai.

  • video aprašai
  • Atsakymas
    	PImage pim;
    	float rot=0;
    	void setup(){
    		setup(400,400);
    		pim = loadImage("data/bird.png");
    	}
    	void draw(){
    		background(255);	
    		translate(width/2, height/2);
    		rotate(rot);
    		image(pim,-width/2,-height/2, width, height);	
    	}
    	void mouseClicked(){
    		rot+=PI/2;
    	}  

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);
    }
    }
    									
     
Redaktorius
Vykdyti Stabdyti Naujas