├── Chapter 3
├── Programming Challenge #4.js
├── Programming Challenge #2.js
└── Programming Challenge #3.js
├── Chapter 8
├── Programming Challenge #1.js
├── Programming Challenge #2.js
└── Programming Challenge #3.html
├── README.md
├── Chapter 4
├── Programming Challenge #2.js
└── Programming Challenge #1.js
├── Chapter 10
├── Programming Challenge #1.html
├── Programming Challenge #2.html
├── Programming Challenge #3.html
└── Programming Challenge #4.html
├── Chapter 9
├── Programming Challenge #2.html
├── Programming Challenge #1.html
└── Programming Challenge #3.html
├── Chapter 6
├── Programming challenge #1.html
├── Programming challenge #2.html
└── Programming challenge #3.html
├── Chapter 13
├── Programming Challenge #2.html
├── Programming Challenge #3.html
├── Programming Challenge #1.html
└── Programming Challenge #4.html
├── LICENSE
├── .gitignore
├── Chapter 12
├── Programming Challenge #1.html
├── Programming Challenge #2.html
└── Programming Challenge #3.html
├── Chapter 16
├── Programming Challenge #1.html
├── Programming Challenge #2.html
└── Programming Challenge #3.html
├── Chapter 14
├── Programming Challenge #1.html
├── Programming Challenge #2.html
├── Programming Challenge #3.html
└── Programming Challenge #4.html
├── Chapter 7
├── Programming Challenge #2.html
├── Programming Challenge #3.html
└── Programming Challenge #4.html
├── Chapter 11
├── Programming Challenge #1.html
├── Programming Challenge #2.html
├── Programming Challenge #3.html
└── Programming Challenge #4.html
├── Chapter 15
├── Programming Challenge #1.html
├── Programming Challenge #3.html
└── Programming Challenge #2.html
└── Chapter 17
├── Programming Challenge #1.html
├── Programming Challenge #2.html
├── Programming Challenge #3.html
└── Programming Challenge #4.html
/Chapter 3/Programming Challenge #4.js:
--------------------------------------------------------------------------------
1 | [3, 2, 1].join(" больше, чем ");
2 | // "3 больше, чем 2 больше, чем 1"
--------------------------------------------------------------------------------
/Chapter 8/Programming Challenge #1.js:
--------------------------------------------------------------------------------
1 | var add = function (a, b) {
2 | return a + b;
3 | };
4 |
5 | var multiply = function (a, b) {
6 | return a * b;
7 | };
8 |
9 | add(multiply(36325, 9824), 777);
10 | // 356857577
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # JavaScriptForKidsSolutionsRU
2 | Решения упражнений из книги [Ника Моргана](https://github.com/skilldrick) [«JavaScript для детей. Самоучитель по программированию»](https://www.mann-ivanov-ferber.ru/books/javascript-dlya-detej/).
3 |
--------------------------------------------------------------------------------
/Chapter 4/Programming Challenge #2.js:
--------------------------------------------------------------------------------
1 | var myCrazyObject = {
2 | "name": "Нелепый объект",
3 | "some array": [7, 9, { purpose: "путаница", number: 123 }, 3.3], "random animal": "Банановая акула"
4 | };
5 |
6 | myCrazyObject["some array"][2].number;
7 | // 123
--------------------------------------------------------------------------------
/Chapter 4/Programming Challenge #1.js:
--------------------------------------------------------------------------------
1 | var scores = {
2 | "Фёдор": 0,
3 | "Хабиб": 0
4 | };
5 |
6 | // Увеличиваем счёт Фёдора на 1000
7 | scores["Фёдор"] += 1000;
8 |
9 | // Увеличиваем счёт Хабиба на 100
10 | scores["Хабиб"] += 100;
11 |
12 | // Показываем счёт игроков
13 | scores;
14 | // { 'Фёдор': 1000, 'Хабиб': 100 }
--------------------------------------------------------------------------------
/Chapter 10/Programming Challenge #1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Перемещение мышки
5 |
6 |
7 |
8 | Привет, мир!
9 |
10 |
11 |
12 |
20 |
21 |
--------------------------------------------------------------------------------
/Chapter 8/Programming Challenge #2.js:
--------------------------------------------------------------------------------
1 | var areArraysSame = function (arr1, arr2) {
2 | if (arr1.length !== arr2.length) {
3 | return false;
4 | }
5 |
6 | for (var i = 0; i < arr1.length; i++) {
7 | if (arr1[i] !== arr2[i]) {
8 | return false;
9 | }
10 | }
11 |
12 | return true;
13 | };
14 |
15 | areArraysSame([1, 2, 3], [4, 5, 6]);
16 | // false
17 |
18 | areArraysSame([1, 2, 3], [1, 2, 3]);
19 | // true
20 |
21 | areArraysSame([1, 2, 3], [1, 2, 3, 4]);
22 | // false
23 |
--------------------------------------------------------------------------------
/Chapter 9/Programming Challenge #2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Изучаем DOM
5 |
6 |
7 |
8 | Привет, мир!
9 |
10 |
11 |
12 |
19 |
20 |
--------------------------------------------------------------------------------
/Chapter 6/Programming challenge #1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Моя первая настоящая HTML-страничка
5 |
6 |
7 | Привет, мир!
8 | Моя первая веб-страничка.
9 |
18 |
19 |
--------------------------------------------------------------------------------
/Chapter 6/Programming challenge #2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Моя первая настоящая HTML-страничка
6 |
7 |
8 | Привет, мир!
9 | Моя первая веб-страничка.
10 |
21 |
22 |
--------------------------------------------------------------------------------
/Chapter 9/Programming Challenge #1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Изучаем DOM
5 |
6 |
7 |
8 | Привет, мир!
9 |
10 |
11 |
12 |
24 |
25 |
--------------------------------------------------------------------------------
/Chapter 9/Programming Challenge #3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Изучаем DOM
5 |
6 |
7 |
8 | Привет, мир!
9 |
10 |
11 |
12 |
24 |
25 |
--------------------------------------------------------------------------------
/Chapter 13/Programming Challenge #2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Canvas
5 |
6 |
7 |
8 |
9 |
10 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/Chapter 6/Programming challenge #3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Моя первая настоящая HTML-страничка
5 |
6 |
7 | Привет, мир!
8 | Моя первая веб-страничка.
9 |
29 |
30 |
--------------------------------------------------------------------------------
/Chapter 13/Programming Challenge #3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Canvas
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/Chapter 3/Programming Challenge #2.js:
--------------------------------------------------------------------------------
1 | var randomBodyParts = ["глаз", "нос", "череп"];
2 | var randomAnimalBodyParts = ["хвост", "пузо", "рот"];
3 | var randomAdjectives = ["вонючий", "унылый", "дурацкий"];
4 | var randomAnimals = ["жабы", "выдры", "коровы", "мартышки", "крысы"];
5 |
6 | // Выбор случайной части тела из массива randomBodyParts:
7 | var randomBodyPart = randomBodyParts[Math.floor(Math.random() * 3)];
8 |
9 | // Выбор случайной части тела животного из массива randomAnimalBodyParts:
10 | var randomAnimalBodyPart = randomAnimalBodyParts[Math.floor(Math.random() * 3)];
11 |
12 | // Выбор случайного прилагательного из массива randomAdjectives:
13 | var randomAdjective = randomAdjectives[Math.floor(Math.random() * 3)];
14 |
15 | // Выбор случайного животного из массива randomAnimals:
16 | var randomAnimal = randomAnimals[Math.floor(Math.random() * 5)];
17 |
18 | // Соединяем случайные строки в предложение:
19 | var randomInsult = "У тебя " + randomBodyPart + " ещё более " + randomAdjective + " чем " + randomAnimalBodyPart + " у " + randomAnimal + "!!!";
20 | randomInsult;
21 | // "У тебя череп ещё более дурацкий чем хвост у мартышки!!!"
22 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Philippe Rigovanov
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Runtime data
9 | pids
10 | *.pid
11 | *.seed
12 | *.pid.lock
13 |
14 | # Directory for instrumented libs generated by jscoverage/JSCover
15 | lib-cov
16 |
17 | # Coverage directory used by tools like istanbul
18 | coverage
19 |
20 | # nyc test coverage
21 | .nyc_output
22 |
23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24 | .grunt
25 |
26 | # Bower dependency directory (https://bower.io/)
27 | bower_components
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Compiled binary addons (http://nodejs.org/api/addons.html)
33 | build/Release
34 |
35 | # Dependency directories
36 | node_modules/
37 | jspm_packages/
38 |
39 | # Typescript v1 declaration files
40 | typings/
41 |
42 | # Optional npm cache directory
43 | .npm
44 |
45 | # Optional eslint cache
46 | .eslintcache
47 |
48 | # Optional REPL history
49 | .node_repl_history
50 |
51 | # Output of 'npm pack'
52 | *.tgz
53 |
54 | # Yarn Integrity file
55 | .yarn-integrity
56 |
57 | # dotenv environment variables file
58 | .env
59 |
60 |
--------------------------------------------------------------------------------
/Chapter 3/Programming Challenge #3.js:
--------------------------------------------------------------------------------
1 | var randomBodyParts = ["глаз", "нос", "череп"];
2 | var randomAnimalBodyParts = ["хвост", "пузо", "рот"];
3 | var randomAdjectives = ["вонючий", "унылый", "дурацкий"];
4 | var randomAnimals = ["жабы", "выдры", "коровы", "мартышки", "крысы"];
5 |
6 | var randomBodyPart = randomBodyParts[Math.floor(Math.random() * 3)];
7 | var randomAnimalBodyPart = randomAnimalBodyParts[Math.floor(Math.random() * 3)];
8 | var randomAdjective = randomAdjectives[Math.floor(Math.random() * 3)];
9 | var randomAnimal = randomAnimals[Math.floor(Math.random() * 5)];
10 |
11 | var randomInsult = ["У тебя", randomBodyPart, "ещё более", randomAdjective, "чем", randomAnimalBodyPart, "у", randomAnimal].join(" ") + "!!!";
12 | randomInsult;
13 | // "У тебя череп ещё более дурацкий чем хвост у мартышки!!!"
14 | // Метод .join(" ") менее гибкий, например перед !!! нам не нужен был пробел,
15 | // так что пришлось все равно использовать оператор +
16 | // Но зато метод .join(" ") может вывести содержимое любого массива разделенное пробелами,
17 | // а ведь в массиве могут быть и тысячи и миллионы элементов,
18 | // так что такой способ, хоть и менее гибкий, но гораздо более мощный
--------------------------------------------------------------------------------
/Chapter 13/Programming Challenge #1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Canvas
5 |
6 |
7 |
8 |
9 |
10 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/Chapter 10/Programming Challenge #2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Интерактивное программирование
5 |
6 |
7 |
8 | Привет, мир!
9 |
10 |
11 |
12 |
52 |
53 |
--------------------------------------------------------------------------------
/Chapter 12/Programming Challenge #1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Гонки
5 |
6 |
7 |
8 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/Chapter 10/Programming Challenge #3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Интерактивное программирование
5 |
6 |
7 |
8 | Привет, мир!
9 |
10 |
11 |
12 |
56 |
57 |
--------------------------------------------------------------------------------
/Chapter 16/Programming Challenge #1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Змейка!
5 |
6 |
7 |
8 |
9 |
10 |
11 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/Chapter 14/Programming Challenge #1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Прыгающий мяч
5 |
6 |
7 |
8 |
9 |
10 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/Chapter 12/Programming Challenge #2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Гонки
5 |
6 |
7 |
8 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/Chapter 14/Programming Challenge #2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Прыгающий мяч
5 |
6 |
7 |
8 |
9 |
10 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/Chapter 7/Programming Challenge #2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Виселица!
5 |
6 |
7 | Виселица!
8 |
57 |
58 |
--------------------------------------------------------------------------------
/Chapter 16/Programming Challenge #2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Змейка!
5 |
6 |
7 |
8 |
9 |
10 |
11 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/Chapter 12/Programming Challenge #3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Гонки
5 |
6 |
7 |
8 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/Chapter 14/Programming Challenge #3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Прыгающий мяч
5 |
6 |
7 |
8 |
9 |
10 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/Chapter 7/Programming Challenge #3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Виселица!
5 |
6 |
7 | Виселица!
8 |
63 |
64 |
--------------------------------------------------------------------------------
/Chapter 7/Programming Challenge #4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Виселица!
5 |
6 |
7 | Виселица!
8 |
63 |
64 |
--------------------------------------------------------------------------------
/Chapter 10/Programming Challenge #4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Интерактивное программирование
5 |
6 |
7 |
8 | Привет, мир!
9 |
10 |
11 |
12 |
67 |
68 |
--------------------------------------------------------------------------------
/Chapter 14/Programming Challenge #4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Прыгающий мяч
5 |
6 |
7 |
8 |
9 |
10 |
76 |
77 |
78 |
--------------------------------------------------------------------------------
/Chapter 11/Programming Challenge #1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Найди клад!
5 |
6 |
7 | Найди клад!
8 |
9 |
10 |
11 |
12 |
13 |
14 |
75 |
76 |
--------------------------------------------------------------------------------
/Chapter 11/Programming Challenge #2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Найди клад!
5 |
6 |
7 | Найди клад!
8 |
9 |
10 |
11 |
12 |
13 |
14 |
77 |
78 |
--------------------------------------------------------------------------------
/Chapter 11/Programming Challenge #3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Найди клад!
5 |
6 |
7 | Найди клад!
8 |
9 |
10 |
11 |
12 |
13 |
14 |
83 |
84 |
--------------------------------------------------------------------------------
/Chapter 11/Programming Challenge #4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Найди клад!
5 |
6 |
7 | Найди клад!
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
87 |
88 |
--------------------------------------------------------------------------------
/Chapter 8/Programming Challenge #3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Виселица!
5 |
6 |
7 | Виселица!
8 |
88 |
89 |
--------------------------------------------------------------------------------
/Chapter 15/Programming Challenge #1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Ввод с клавиатуры
5 |
6 |
7 |
8 |
9 |
98 |
99 |
--------------------------------------------------------------------------------
/Chapter 13/Programming Challenge #4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Виселица
5 |
6 |
7 |
8 |
9 |
10 |
118 |
119 |
120 |
--------------------------------------------------------------------------------
/Chapter 15/Programming Challenge #3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Ввод с клавиатуры
5 |
6 |
7 |
8 |
9 |
116 |
117 |
--------------------------------------------------------------------------------
/Chapter 15/Programming Challenge #2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Ввод с клавиатуры
5 |
6 |
7 |
8 |
9 |
121 |
122 |
123 |
--------------------------------------------------------------------------------
/Chapter 16/Programming Challenge #3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Виселица!
5 |
6 |
7 |
8 |
9 |
10 |
148 |
149 |
--------------------------------------------------------------------------------
/Chapter 17/Programming Challenge #1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Змейка!
5 |
6 |
7 |
8 |
9 |
10 |
11 |
231 |
232 |
233 |
--------------------------------------------------------------------------------
/Chapter 17/Programming Challenge #2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Змейка!
5 |
6 |
7 |
8 |
9 |
10 |
11 |
240 |
241 |
--------------------------------------------------------------------------------
/Chapter 17/Programming Challenge #3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Змейка!
5 |
6 |
7 |
8 |
9 |
10 |
11 |
253 |
254 |
--------------------------------------------------------------------------------
/Chapter 17/Programming Challenge #4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Змейка!
5 |
6 |
7 |
8 |
9 |
10 |
11 |
263 |
264 |
--------------------------------------------------------------------------------