Попадания и очки
Пора за небольшой проект! В этом мини-проекте вы напишете целую программу самостоятельно, используя то, что узнали в первых трёх уроках: переменные и массивы с их типами, условия и функции с типизированными параметрами и возвращаемыми значениями.
Упражнения здесь немного отличаются от прежних. В заданиях сказано, что должна вывести программа, а не как её написать. Правильных способов много, так что выбирайте тот, который понятен вам. Только помните, что TypeScript запускает программу лишь тогда, когда не находит в ней ни одной ошибки типов, поэтому в вашей программе их быть не должно. Если застрянете, вернитесь к уроку, где вы узнали то, что вам нужно.
Проект. Деревня проводит соревнование по стрельбе из лука на летней ярмарке, а вы пишете табло для судей. За три упражнения ваша программа подсчитает попадания и очки лучника, присудит медаль, а в конце сравнит двух лучников и объявит победителя. Каждое упражнение продолжает предыдущее: редактор начинается с готовой программы из предыдущего шага, которая может отличаться от вашей. Это нормально.
Данные. Константы в начале программы хранят то, что записали судьи: archer — это имя лучника, а arrows — массив типа number[] — хранит очки за каждую стрелу, от 0 до 10. Стрела с 0 очков не попала в мишень. В настоящем приложении судьи вводили бы очки сами. Здесь программа берёт их из констант, и ваш код должен работать с константами, а не с их значениями, скопированными в него: когда вы меняете константы, программа по-прежнему должна выводить правильный результат. Чтобы это проверить, каждое упражнение запускает вашу программу ещё и с другими данными, и с ними она тоже должна справляться.
Задача. Кира выпустила 6 стрел, и 5 из них попали в мишень. Вместе они стоят 40 очков. Программа выводит:
Участник: Кира
Попаданий: 5 из 6
Очки: 40Подсказка: для каждого вычисления напишите отдельную функцию, например такую, которая принимает стрелы и возвращает их очки. Помните из урока о функциях, что у каждого параметра должен быть тип и что с возвращаемым типом TypeScript проверяет, что возвращает функция. Эти функции пригодятся в последнем упражнении.
Задание
- 1
Выведите имя лучника и сколько из стрел попали в мишень, как в примере.
- 2
Ниже выведите очки за все стрелы вместе.