Тема:
Условные операторы
Строки
Арифметика
Литералы объектов
Циклы «for»
Графика
Цели:
Нарисуй что-то, используя не менее 1000 цветков.
Заметки:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# Этот уровень - место рисования цветками. # Цель - экспериментировать и получать удовольствие! # Если ты что-либо нарисуешь, используя 1000 цветков, ты пройдешь уровень. def drawPixel(x,y,color): hero.setFlowerColor(color) hero.toggleFlowers(False) hero.moveXY(x, y) hero.toggleFlowers(True) hero.moveXY(x+0.5, y+0.5) hero.moveXY(x-0.5, y+0.5) hero.moveXY(x-0.5, y-0.5) hero.moveXY(x+0.5, y-0.5) hero.toggleFlowers(False) def setColor(c): if c == "p": color = "pink" if c == "r": color = "red" if c == "b": color = "blue" if c == "e": color = "purple" if c == "y": color = "yellow" if c == "w": color = "white" return color def drawImages(): aImages = [ "wwwwwwwwwww", "wwwbbwbbwww", "wwwbbwbbwww", "wwwwwwwwwww", "wwwwbbbwwww", "wwwbwwwbwww", "wwwbbbbbwww", "wwwbwwwwwww", "wwwbwwwwwww", "wwwbwwwbwww", "wwwwbbbwwww", "wwwwwwwwwww", "wwwwwwwwwww", "prbeyw" ] for y in range(len(aImages)): if y%2==0: x=len(aImages[y])-1 while (x>=0): color = setColor(aImages[y][x]) drawPixel(60+x*2, 80-y*2, color) x-=1 else: for x in range(len(aImages[y])): color = setColor(aImages[y][x]) drawPixel(60+x*2, 80-y*2, color) drawImages() #hero.moveXY(100, 100) |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
// Этот уровень - место рисования цветками. // Цель - экспериментировать и получать удовольствие! // Если ты что-либо нарисуешь, используя 1000 цветков, ты пройдешь уровень. hero.drawPixel = function(x, y, color) { hero.setFlowerColor(color); hero.toggleFlowers(false); hero.moveXY(x, y); hero.toggleFlowers(true); hero.moveXY(x+0.5, y+0.5); hero.moveXY(x-0.5, y+0.5); hero.moveXY(x-0.5, y-0.5); hero.moveXY(x+0.5, y-0.5); hero.toggleFlowers(false); }; hero.setColor = function(c) { var color; if (c== "p") color = "pink"; if (c== "r") color = "red"; if (c== "b") color = "blue"; if (c== "e") color = "purple"; if (c== "y") color = "yellow"; if (c== "w") color = "white"; return color; }; hero.drawImages = function() { var aImages=[ "wwwwwwwwwww", "wwwbbwbbwww", "wwwbbwbbwww", "wwwwwwwwwww", "wwwwbbbwwww", "wwwbwwwbwww", "wwwbbbbbwww", "wwwbwwwwwww", "wwwbwwwwwww", "wwwbwwwbwww", "wwwwbbbwwww", "wwwwwwwwwww", "wwwwwwwwwww", "prbeyw" ]; var color; var x; for (var y=0; y< aImages.length; y++){ if ( y%2 === 0) { for (x = (aImages[y].length-1); x>=0; x--){ color = hero.setColor(aImages[y][x]); hero.drawPixel(60+x*2, 80-y*2, color); } } else { for (x=0; x<=aImages[y].length-1; x++){ color = hero.setColor(aImages[y][x]); hero.drawPixel(60+x*2, 80-y*2, color); } } } }; hero.drawImages(); |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# Этот уровень - место рисования цветками. # Цель - экспериментировать и получать удовольствие! # Если ты что-либо нарисуешь, используя 1000 цветков, ты пройдешь уровень. @drawPixel = (x, y, color) -> @setFlowerColor color @toggleFlowers false @moveXY(x, y) @toggleFlowers true @moveXY x + 0.5, y + 0.5 @moveXY x - 0.5, y + 0.5 @moveXY x - 0.5, y - 0.5 @moveXY x + 0.5, y - 0.5 @toggleFlowers false return @setColor = (c) -> if c=="p" color = "pink" if c == "r" color = "red" if c == "b" color = "blue" if c == "e" color = "purple" if c == "y" color = "yellow" if c == "w" color = "white" return color @drawImages = () -> aImages = [ "wwwwwwwwwww", "wwwbbwbbwww", "wwwbbwbbwww", "wwwwwwwwwww", "wwwwbbbwwww", "wwwbwwwbwww", "wwwbbbbbwww", "wwwbwwwwwww", "wwwbwwwwwww", "wwwbwwwbwww", "wwwwbbbwwww", "wwwwwwwwwww", "wwwwwwwwwww", "prbeyw" ] for y in [0..aImages.length-1] if y%2==0 for x in [aImages[y].length-1..0] color = @setColor(aImages[y][x]) @drawPixel 60+x*2, 80-y*2, color else for x in [0..aImages[y].length-1] color = @setColor(aImages[y][x]) @drawPixel 60+x*2, 80-y*2, color return @drawImages() |
Clojure:
1 |
;; |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
-- Этот уровень - место рисования цветками. -- Цель - экспериментировать и получать удовольствие! -- Если ты что-либо нарисуешь, используя 1000 цветков, ты пройдешь уровень. function self.drawPixel(x, y, color) self:setFlowerColor(color) self:toggleFlowers(false) self:moveXY(x, y) self:toggleFlowers(true) self:moveXY(x + 0.5, y + 0.5) self:moveXY(x - 0.5, y + 0.5) self:moveXY(x - 0.5, y - 0.5) self:moveXY(x + 0.5, y - 0.5) self:toggleFlowers(false) end function self.setColor(c) local color if c =="p" then color = "pink" end if c =="r" then color = "red" end if c =="b" then color = "blue" end if c =="e" then color = "purple" end if c =="y" then color = "yellow" end if c =="w" then color = "white" end return color end function self.drawImages() local aImages = { "wwwwwwwwwww", "wwwbbwbbwww", "wwwbbwbbwww", "wwwwwwwwwww", "wwwwbbbwwww", "wwwbwwwbwww", "wwwbbbbbwww", "wwwbwwwwwww", "wwwbwwwwwww", "wwwbwwwbwww", "wwwwbbbwwww", "wwwwwwwwwww", "wwwwwwwwwww", "prbeyw"} local color for y=1, #aImages, 1 do if y%2 == 0 then for x=#aImages[y], 1, -1 do color = self.setColor(aImages[y][x]) self.drawPixel(60+x*2, 80-y*2, color) end else for x=1, #aImages[y] do color = self.setColor(aImages[y][x]) self.drawPixel(60+x*2, 80-y*2, color) end end end end self.drawImages() |
Комментарии: