Содержание

Комментарии к проектам на codingame

ONBOARDING (Вводный урок)

https://www.codingame.com/training/easy/onboarding

Условие Обучающая миссия для всех новичков: ваша программа должна найти, какая из двух целей является ближайшей.

Цель Ваша программа должна уничтожать вражеские корабли, стреляя в ближайшего врага на каждом ходу.

import sys # импорт системной библиотеки
import math # импорт библиотеки математических функций 
 
 
# "бесконечный" цикл игры (останавливается извне, когда тесты будут пройдены)
while True:
    enemy_1 = input()  # имя первого врага 
    dist_1 = int(input())  # дистанция до первого врага
    enemy_2 = input()  # имя второго врага
    dist_2 = int(input())  # дистанция до второго врага 
 
    # Здесь надо написать программу, которая находит имя врага, который ближе к защищаемому объекту.
    # Если требуется вывести отладочную информацию в консоль, следует использовать:
    # print("Debug messages...", file=sys.stderr)
    # где вместо "Debug messages...", можно выводить нужные сообщения или значения переменных...
 
 
    # Вместо фразы "name of the enemy" вывести значение переменной (enemy1 или enemy2), которое принадлежит врагу,
    # который находится ближе к защищаемому объекту.
 
    print("name of the enemy")

THE DESCENT (Снижение)

https://www.codingame.com/training/easy/the-descent

ЧТО Я БУДУ ИЗУЧАТЬ?

Циклы

Решение этой головоломки поможет вам понять концепцию циклов и способы получения максимального значения из списка целых чисел.

Задача

Простая проблема - опробовать платформу CodinGame: ваша программа должна найти самую высокую гору из списка гор.

Цель

Уничтожьте горы до того, как ваш корабль столкнется с одним из них. Для этого стреляйте в самую высокую гору на своем пути.

import sys
import math
 
# "Бесконечный" цикл, который заканчивается извне, когда пройдены все тесты.
# В каждом шаге цикла while передается набор из 8 значений (высоты 8 вершин).
# Необходимо найти номер самой высокой вершины в каждом шаге цикла while.
while True:
 
    for i in range(8):
        mountain_h = int(input())  # на каждом из 8 шагов цикла, считывается высота одной из 8 вершин
 
    # To debug: print("Debug messages...", file=sys.stderr)
 
    # Для того, чтобы разрушить гору, следует написать индекс (номер) самой высокой вершины.
    # Замените "4" на имя переменной, которая хранит номер самой высокой вершины.
    print("4")
 
 

TEMPERATURES (температуры)

ЧТО Я БУДУ ИЗУЧАТЬ?

Условные операторы, циклы, массивы.

Условие

Ваша программа должна анализировать записи температур, чтобы найти наиболее близкие к нулю.

Инструкция

Напишите программу, которая печатает температуру, ближайшую к 0 среди вводимых данных. Если два числа одинаково близки к нулю, положительное целое число должно считаться ближайшим к нулю (например, если температуры равны -5 и 5, то отобразите 5).

Ввод данных

Строка 1: N , количество измерений температуры для анализа

Строка 2: значения измерений температуры, представленные в виде целых чисел в диапазоне от -273 до 5526

Вывод

Выведите 0 (ноль), если температура не указана. В противном случае отобразите температуру, ближайшую к 0.

Ограничения

0 ≤ N <10000

Пример

Ввод                   Вывод
                        
5                      1      
1 -2 -8 4 5
import sys 
import math
 
 
n = int(input())  # количество измерений температуры 
# функция split() преобразует строку значений, разделенных пробелами, в список (массив)
# пример:
# >>> a = "1 -2 -8 4 5"
# >>> a.split()
# >>> ['1', '-2', '-8', '4', '5']
 
# 
result = 0 # целевая переменная
 
for i in input().split(): 
    # функция int(i) преобразует значение температуры, представленное в текстовом виде, к целочисленному значению
    t = int(i)
#   ........ вычисления .............
 
# To debug: print("Debug messages...", file=sys.stderr)
 
print(result) # вывод результата

POWER OF THOR - EPISODE 1

ЧТО Я БУДУ ИЗУЧАТЬ?

Условные операторы

Простое решение использует 8 условий. Есть способ упростить его и использовать только 4 условия.

Условие

Ваша программа должна позволять Thor достигать координаты источника энергии на 2D-поле.

Правила

Тор движется по карте, которая в ширину 40 единиц, а в высоту 18 единиц. Обратите внимание, что координаты (X и Y) начинаются в левом верхнем углу! Это означает, что самая верхняя левая ячейка имеет координаты «X = 0, Y = 0», а самая нижняя правая ячейка имеет координаты «X = 39, Y = 17».

При перемещении Тора по поверхности, его координаты меняются. Цель Тора, достичь точки с координатами источника энергии.

import sys
import math
 
# ---
# Hint: You can use the debug stream to print initialTX and initialTY, if Thor seems not follow your orders.
 
# light_x:  X позиция энергетического источника
# light_y:  Y позиция энергетического источника
# initial_tx: Thor's starting X position (точка начала движения Тора на оси x)
# initial_ty: Thor's starting Y position (точка начала движения Тора на оси y)
 
light_x, light_y, initial_tx, initial_ty = [int(i) for i in input().split()]
 
# игровой цикл (заканчивается автоматически, когда Тор достигнет цели, или когда у него закончится энергия)
while True:
    remaining_turns = int(input())  # Уровень энергии, которая остается еще у Тора.
 
 
    # To debug: print("Debug messages...", file=sys.stderr)
 
 
    # Для перемещения Тора, следует вывести одно из направлений: N NE E SE S SW W or NW
    print("SE")
 

Mars Lander - Episode 1 (посадка на Марс - эпизод 1)

Цель

Эта головоломка научит вас, как сравнивать значения, используя простое условие.

BRACKETS, EXTREME EDITION (правильная скобочная последовательность)

https://www.codingame.com/training/easy/brackets-extreme-edition

Стек, цикл…

Цель

Правильная скобочная последовательность. Это означает, что все скобки (), квадратные скобки [] и фигурные скобки {}должны быть правильно спарены и вложены.

Выражение не содержит пробельных символов.

https://yadi.sk/i/iZGayhgkXha83

PAPER LABYRINTH (бумажный лабиринт)

https://www.codingame.com/training/medium/paper-labyrinth

Graphs, BFS, Pathfinding, Strings, Compression