Skip to content

07. სიები და ობიექტები

სწავლას ვაგრძელებთ ხანის აკადემიაზე. ხანის აკადემიის ინსტრუქცია და მეცადინეობის პრინციპი მე-5 სემინარში წერია. ამ სემინარის გასაგებად აუცილებელია წინა ორი კვირის სემინარის გავლა.

გავაკეთეთ ყველა სავარჯიშო ქვემოთ მოცემულ თავებში:

სავარჯიშოების გავრცობა

ქვემოთ არის რამდენიმე სავარჯიშოს ალტერნატიული პირობა/ამოხსნა. სხვა სავარჯიშოები მაინც გასაკეთებელია, მაგრამ ამათზე მნიშვნელოვანია ეს დამატებითი ნაწილებიც გაარჩიოთ.

მასივები

საყვარელი ცხოველები

while-ის მაგივრად for ცილკით ასე დაიწერებოდა:

var favoriteAnimals = ["parrots", "cats", "dogs", "dolphin"];

fill(0, 0, 0);
for (var i=0; i<favoriteAnimals.length; i++) {
    text(favoriteAnimals[i], 200, 200+20*i);
}

თანავარსკვლავედების შემქმნელი

მოდი ერთი გრძელი image() ხაზის მაგივრად, მისი არგუმენტები (x, y, star), ცალკე ცვლადებად გავიტანოთ. ასე კოდი უფრო წაკითხვადი ხდება.

var xPositions = [100, 200, 197];
var yPositions = [200, 30, 150];

var drawStars = function() {
    background(9, 5, 59);
    imageMode(CENTER);
    var star = getImage("space/star");
    for (var i = 0; i < yPositions.length; i++) {
        var x = xPositions[i];
        var y = yPositions[i];
        text(i, x, y-20);
        image(star, x, y, 30, 30);
    }
};

ახლა წინა კვირას რომ random() ფუნქცია შეგვხვდა, ეგ გამოვიყენოთ და ვარსკვლავები შემთხვევით შერჩეულ x/y კოორდინატებზე დაიხატება.

var drawManyStars = function() {
    background(9, 5, 59);
    imageMode(CENTER);
    var star = getImage("space/star");
    for (var i = 0; i < 330; i++) {
        var x = random(0, 358);
        var y = random(0, 364);
        text(i, x, y-20);
        image(star, x, y, 20, 20);
    }
};

drawManyStars();

ობიექტები

ფილმის მიმოხილვა

დასაწყისისთვის, movies ცვლადში კიდევ 1-2 წიგნი ჩაამატე. მოდი, for ციკლში ჩასმამდე, არსებული კოდი ფუნქციად გადავაკეთოთ. დააკვირდი, რომელ ხაზებში გამოიყენება არგუმენტები

function displayMovie(movie, yStart) {
    fill(84, 140, 209);
    textAlign(CENTER, CENTER);
    textSize(20);

    text(movie.title, 200, yStart);

    fill(0, 0, 0);
    textSize(13);

    text(movie.review, 151, yStart + 30);
}

ამის შემდეგ უფრო მარტივი იქნება ციკლში ჩასმა. თუ 88+98*i არ გესმის რატომ წერია, დაუბრუნდი წინა კვირის სავარჯიშოებს.

for (var i=0; i < movies.length; i++) {
    displayMovie(movies[i], 50 + 100*i);
}