Skip to content

Commit

Permalink
Merge pull request #3 from ANesbytnov/master
Browse files Browse the repository at this point in the history
Правки по тексту задания
  • Loading branch information
dfitiskin authored Oct 3, 2017
2 parents 44234f8 + ed5f7a5 commit 2e8d0ac
Showing 1 changed file with 29 additions and 29 deletions.
58 changes: 29 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
- Белые стены препятствий.
- Красные огненные шары и лаву.
- Желтые монетки.
- Игрок бардового цвета, потому что в данный момент он умер от сталкновения с огненным шаром.
- Игрока бордового цвета, потому что в данный момент он умер от столкновения с огненным шаром.

Игрок управляется стрелками с клавиатуры. Основная цель каждого уровня — собрать все монетки.

Expand All @@ -29,7 +29,7 @@
#### Подготовка репозитория

1. Установить git.
2. Создайте аккаунт в сервисе [GitHub] или [BitBucket]
2. Создайте аккаунт в сервисе [GitHub] или [BitBucket].
3. Создайте публичный репозиторий.
4. Скопируйте ссылку на репозиторий (рекомендуем использовать HTTPS, если ранее вы не сталкивались с SSH).
5. Клонируйте ваш репозиторий локально, используя команду `git clone`.
Expand All @@ -43,17 +43,17 @@
https://github.com/netology-code/js-game/releases

2. Разверните архив проекта в папку, созданную при подготовке репозитория.
3. Ваш код пишите в файле `./game.js`
4. Для запуска игры откройте в браузере файл `./index.html`
5. Для запуска тестов откройте в браузере файл `./test/index.html`
3. Ваш код пишите в файле `./game.js`.
4. Для запуска игры откройте в браузере файл `./index.html`.
5. Для запуска тестов откройте в браузере файл `./test/index.html`.

Менять остальные файлы не рекомендуется.

#### Публикация промежуточных версий

1. Добавьте к коммиту файл `game.js` командой `git add game.js`
2. Сделайте коммит `git commit`
3. Опубликуйте изменения с помощью команды `git push`
1. Добавьте к коммиту файл `game.js` командой `git add game.js`.
2. Сделайте коммит `git commit`.
3. Опубликуйте изменения с помощью команды `git push`.

#### Создание локального сервера (необязательно)

Expand All @@ -63,18 +63,18 @@

##### Локальный сервер на php

1. Установить php на компьютер
2. Для запуска сервера в папке проекта запустить команду `php -S localhost:3000`
3. Для запуска игры откройте в браузере адрес `http://localhost:3000/index.html`
4. Для запуска тестов откройте в браузере адрес `http://localhost:3000/test/index.html`
1. Установить php на компьютер.
2. Для запуска сервера в папке проекта запустить команду `php -S localhost:3000`.
3. Для запуска игры откройте в браузере адрес `http://localhost:3000/index.html`.
4. Для запуска тестов откройте в браузере адрес `http://localhost:3000/test/index.html`.

##### Локальный сервер на NodeJS

1. Установить NodeJS
2. В папке проекта выполнить команду `npm install`
3. Для запуска сервера в папке проекта запустить команду `npm start`
4. Для запуска игры откройте в браузере адрес `http://localhost:3000/index.html`
5. Для запуска тестов откройте в браузере адрес `http://localhost:3000/test/index.html`
1. Установить NodeJS.
2. В папке проекта выполнить команду `npm install`.
3. Для запуска сервера в папке проекта запустить команду `npm start`.
4. Для запуска игры откройте в браузере адрес `http://localhost:3000/index.html`.
5. Для запуска тестов откройте в браузере адрес `http://localhost:3000/test/index.html`.

При использовании NodeJS тесты и игра будут обновляться автоматически при изменении файлов.

Expand All @@ -85,7 +85,7 @@

Для реализации в онлайн-песочнице вам нужно:

1. Зарегистрироваться на сервисе [CodePen]
1. Зарегистрироваться на сервисе [CodePen].
2. Открыть заготовку проекта по ссылке:

https://codepen.io/dfitiskin/pen/XRZqWd?editors=0010
Expand All @@ -100,7 +100,7 @@ https://netology-university.bitbucket.io/wm/resourses/codepen-guide.html

#### Repl.it

1. Зарегистрироваться на сервисе [Repl.it]
1. Зарегистрироваться на сервисе [Repl.it].
2. Создать новую песочницу «HTML, CSS, JS»

https://repl.it/languages/web_project
Expand All @@ -124,7 +124,7 @@ https://netology-university.bitbucket.io/wm/resourses/codepen-guide.html
</html>
```

4. Нажмите кнопку «Save»
4. Нажмите кнопку «Save».
5. Реализовать код игры, последовательно следуя инструкции, во вкладке «index.js».
6. Периодически сохраняйте результат, чтобы не потерять изменения.
7. Отправляйте наставнику на проверку ссылку на вашу песочницу, которую можно получить по кнопке «Share».
Expand All @@ -140,13 +140,13 @@ https://netology-university.bitbucket.io/wm/resourses/codepen-guide.html
Просто кликайте на соответствующий пункт, чтобы сосредоточиться на нем.

Процесс реализации можно построить таким образом:
1. Выбрать компонет или даже метод компонента.
1. Выбрать компонент или даже метод компонента.
2. Отфильтровать тесты, оставив только выбранный компонент или его метод.
3. Реализовать код, который удовлетворит первому проваленному тесту.
4. Убедиться, что тест помечен как успешный.
5. Если еще остались проваленные тесты, вернуться к пункту 3.

Такой подход называется «разработка через тестирование», или TDD. За тем лишь исключением, что тесты уже написаны.
Такой подход называется «разработка через тестирование» или TDD. За тем лишь исключением, что тесты уже написаны.

## Процесс и порядок реализации

Expand Down Expand Up @@ -239,9 +239,9 @@ DOMDisplay(document.body, level);

Инициализирует процесс регулярной отрисовки текущего состояния игрового поля и обработку событий клавиатуры.

Принимает два аргумента: уровень, объект класса `Level` и конструктор объекта, отвечающего за отрисовку. В случае реализации игры в браузере вторым аргументом необходимо использовать класс `DOMDisplay`.
Принимает два аргумента: уровень (объект класса `Level`) и конструктор объекта, отвечающего за отрисовку. В случае реализации игры в браузере вторым аргументом необходимо использовать класс `DOMDisplay`.

Функция возвращает промис, который разрешится статусом завершения игры, _строка_. С учетом реализации класса `Level` он может принимать значения `won` и `lost`.
Функция возвращает промис, который разрешится статусом завершения игры, _строка_. С учетом реализации класса `Level` он может принимать значения `won` или `lost`.

Пример использования:
```javascript
Expand Down Expand Up @@ -320,7 +320,7 @@ runGame(schemas, parser, DOMDisplay)

### Вектор

Необходимо реализовать класс `Vector`, который позволит контролировать расположение объектов в двухмерном пространстве и управлять их размером и перемещением.
Необходимо реализовать класс `Vector`, который позволит контролировать расположение объектов в двумерном пространстве и управлять их размером и перемещением.

#### Конструктор

Expand Down Expand Up @@ -384,7 +384,7 @@ console.log(`Текущее расположение: ${finish.x}:${finish.y}`);

#### Метод `isIntersect`

Метод проверяет, пересекается ли текущий объект с переданным объектом, и если да, возвращает `true`, иначе `false`.
Метод проверяет, пересекается ли текущий объект с переданным объектом, и если да, возвращает `true`, иначе `false`.

Принимает один аргумент — движущийся объект типа `Actor`. Если передать аргумент другого типа или вызвать без аргументов, то метод бросает исключение.

Expand Down Expand Up @@ -445,7 +445,7 @@ items.forEach(status);

Сетка уровня представляет собой координатное двумерное поле, представленное двумерным массивом. Первый массив — строки игрового поля; индекс этого массива соответствует координате Y на игровом поле. Элемент с индексом `5` соответствует строке с координатой Y, равной `5`. Вложенные массивы, расположенные в элементах массива строк, представляют ячейки поля. Индекс этих массивов соответствует координате X. Например, элемент с индексом `10`, соответствует ячейке с координатой X, равной `10`.

Так как `grid` — это двумерный массив, представляющий сетку игрового поля, то чтобы узнать, что находится в ячейке с координатами X=10 и Y=5 (10:5), необходимо получить значение `grid[5][10]`. Если значение этого элемента равно `undefined`, то эта ячейка пуста. Иначе там будет строка, описывающая препятствие. Например, `wall` — для стены и `lava` — для лавы. Отсюда вытекает следующий факт: все препятствия имеют целочисленные размеры и координаты.
Так как `grid` — это двумерный массив, представляющий сетку игрового поля, то, чтобы узнать, что находится в ячейке с координатами X=10 и Y=5 (10:5), необходимо получить значение `grid[5][10]`. Если значение этого элемента равно `undefined`, то эта ячейка пуста. Иначе там будет строка, описывающая препятствие. Например, `wall` — для стены и `lava` — для лавы. Отсюда вытекает следующий факт: все препятствия имеют целочисленные размеры и координаты.

#### Конструктор

Expand All @@ -459,13 +459,13 @@ items.forEach(status);

Имеет свойство `player` — движущийся объект, тип которого — свойство `type` — равно `player`.

Имеет свойство `height` — высоту игрового поля, равное числу строк в сетке из первого аргмента.
Имеет свойство `height` — высоту игрового поля, равное числу строк в сетке из первого аргумента.

Имеет свойство `width` — ширину игрового поля, равное числу ячеек в строке сетки из первого аргумента. При этом, если в разных строках разное число ячеек, то `width` будет равно максимальному количеству ячеек в строке.

Имеет свойство `status` — состояние прохождения уровня, равное `null` после создания.

Имеет свойство `finishDelay` — таймаут после окончания игры, равен `1` после создания. Необходим, чтобы после выигрыша или проигрыша игра не завершалась мнгновенно.
Имеет свойство `finishDelay` — таймаут после окончания игры, равен `1` после создания. Необходим, чтобы после выигрыша или проигрыша игра не завершалась мгновенно.

#### Метод `isFinished`

Expand Down

0 comments on commit 2e8d0ac

Please sign in to comment.