Вернуться к основам...
Как учитель в местной начальной (начальной?) Школе, вам нужен способ учить свой класс своим временным таблицам. В вашем распоряжении 100 квадратов и множество красных ручек. Вы также должны быть в состоянии быстро показать классу правильные ответы.
Теперь вы достаточно умны, чтобы написать программу, которая умеет делать временные таблицы, но можете ли вы нарисовать их на сотне квадратов?
Соревнование
Выведите сто квадратов в стандартный вывод или эквивалент, используя коды ANSI-Escape, чтобы заштриховать числа, кратные вводу.
- Выведите сетку 10x10, содержащую числа 1-100.
- Это не имеет значения выравнивания 2-значных чисел в каждом поле, если оно является последовательным
- Для однозначных чисел вы можете заполнить до двухзначного числа и использовать то же форматирование, что и для двухзначных чисел или по центру в середине поля.
- Если число в блоке кратно вводу, закрасьте весь блок красным.
- Это означает, что вся коробка, а не только часть номера
Например, с учетом ввода 3
выведите заданную сотню
Это код гольф, поэтому выигрывает самый короткий ответ в байтах!
code-golf
arithmetic
grid
синий
источник
источник
<table>
, например?white
илиgrey
?curses
его использование не должно иметь значения - красный в любом случае короткий.Ответы:
Python 2, 166 байт
Заменить
♥
на восьмеричное033
(экранирующий символ ANSI).объяснение
Мы рассматриваем вывод как
41×21
сетку и непосредственно вычисляем символ и цвет в каждой точке.То есть структура кода:
для какой-то функции
F
.Результат
F
всегда имеет следующую форму:Мы используем строку формата
'\33[%dm%s\33[m'
, где первым%d
является либо 0, либо 41, и%s
это символ, который мы хотим напечатать.Для цвета у нас есть следующая формула:
Я не собираюсь полностью объяснять это, но он в основном перебирает все прямоугольники, которые должны быть окрашены в красный цвет, и проверяет,
(x, y)
находится ли внутри какой-либо из них.Обратите внимание на использование цепочки операторов: я переписал
-1<A<5 and -1<B<3
в5>A>-1<B<3
.Для персонажа у нас есть следующая формула:
Если
y % 2 == 0
тогда дляx = 0, 1, …
этого будет генерировать+---+---+---…
Если
y % 2 == 1
тогда дляx = 0, 1, …
этого будет генерировать| p |p+1|p+2…
источник
Юлия,
219182169167 байтИспользуется так:
!7
Ungolfed:
Обратите внимание, что это очень просто, для максимальной читабельности.
источник
HTML + Javascript, 379
HTML:
Javascript:
jsfiddle.
источник