newsare.net
Всякий раз, когда мне нужно было распарсить что-то JSON'оподобное, я использовал утилиту jq. В состав дефолтных пакетов она еще входит не во всехПерекладывание JSON'ов 80-го уровня или рогалик на jq
Всякий раз, когда мне нужно было распарсить что-то JSON'оподобное, я использовал утилиту jq. В состав дефолтных пакетов она еще входит не во всех линуксовых дистрибутивах, но уж на моем компьютере она точно была всегда с того момента, как я о ней узнал. Я думаю, что сегодня она действительно стала тем, чем видели ее разработчики — sed'ом для данных в формате JSON.И все же было обидно, что максимум, что я могу сходу написать — это cat file.json | jq .[«key»][0]. Поэтому я решил изучить эту штуку поподробнее. Всегда же приятно показать коллегам, как вписываешь в терминал адскую нечитаемую команду, которая, тем не менее, делает ровно то, что требуется. В программную архитектуру сегодня умеет каждый, а вот буквально переложить джейсон — это задача поинтереснее :)Одним из источников вдохновения для меня стала старая статья про шахматы на sed. Раз уж мы и тут имеем дело с sed (пусть и для данных другого формата), то логичным выбором для учебного проекта тоже становится игра. Но я не шахматист, а больше картежник, поэтому и запрограммировать ради обучения решил карточную игру.Выбор пал на Scoundrel — это игра-рогалик, в которую можно в одиночку играть, имея на руках стандартную колоду из 54 карт. По сути дела, пасьянс с некоторым rouge-like антуражем. Задумка обалденная, но когда я играл в эту игру реальными картами, мне очень не хватало погружения: все же сложно представлять, что бубновая десятка — это мощнейшее оружие, а трефовый туз — жесткий босс, от которого с высокой вероятностью придется сбегать. К счастью, программирование позволяет запрятать всю внутреннюю карточную логику настолько глубоко, что человек, который впервые столкнется с этой игрой в терминале, вряд ли догадается, что первоисточником стал пасьянс. Читать далее Read more











