Я ненавижу раздувание кода!
Поэтому я решил заменить свою систему Windows 7 на версию для гольфа. Однако я знаю, что это нелегко, поэтому давайте сначала создадим прототип. Он возьмет список окон у пользователя и покажет их с помощью псевдографического дисплея на стандартном выходе.
Например: пользовательский ввод:
0,0,15,10 15,10,20,15 10,13,15,15 9,1,16,3 17,5,20,7 11,2,17,4 15,4,19,6 13,3,18,5
Выходы Code Golf® Window Manager ™:
┌──────────────┐
│ :::::::: ┌─────┴┐
│ │ ::::::::: ┌────┴┐
│ :::::::: └─┤: ┌───┴┐
│ :::::::::: └─┤ :::: ├┐
│ :::::::::::: └─┬──┘├┐
│ :::::::::::::: ├─┬─┘│
│ :::::::::::::: │ └──┘
│ │ ::::::::::::::
│ │ ::::::::::::::
└──────────────┼────┐
│ │ ::::
│ │ ::::
┌────┤ :::: │
│ │ :::: :::: │
└────┴────┘
Входные данные:
- Взяты из стандартного ввода (или, если ваша система не имеет
stdin, любой метод, который может обеспечить несколько строк ввода) - Каждая строка содержит 4 числа, разделенных запятыми - координаты окна
- Первые два числа: левый верхний угол; последние два числа: нижний правый угол
- Использование
x,yобозначений
Выход:
- Запишите его в стандартный вывод (или, если ваша система не имеет
stdout, что-нибудь, что отображает моноширинный текст) - Используйте одиночные символы рисования рамки из кодовой страницы 437 для рисования границ окна
- Окна, указанные позже во входных данных, скрывают указанные ранее
- Заполните окна символом двоеточия:
: - Начальные и конечные пробелы в порядке, если они не нарушают выравнивание окон
Примечания:
- Максимальное разрешение, которое я хочу поддерживать: 76 (горизонтальное) на 57 (вертикальное)
- Не нужно поддерживать плохой ввод
- Максимальное количество окон: 255 (если вам нужен лимит)
- Моя
cmdоболочка Windows 7 отображает кодовую страницу 437 символов по умолчанию; если у кого-то есть способ сделать это на Linux (используяxtermили что-то еще), пожалуйста, опишите это здесь
Для справки, коды символов:
┌da ─c4 ┬c2 ┐bf
│b3 :3a │b3 │b3
├c3 ─c4 ┼c5 ┤b4
└c0 ─c4 ┴c1 ┘d9
Всего: 12 разных персонажей.
javascript:$('pre').css('line-height','1em')