Рубрика «fun» - 3

В первой части симулятора я описал правила игры и простейшую их реализацию.

Я благодарен всем кто оставил конструктивный комментарии первой версии. Это помогло мне оценить всю глубину проблемы. Отдельное спасибо пользователям kahi4, Ethril, Uri и lexasss

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

Настала пора двигаться дальше — к покорению просторов космоса управляемым аппаратом.

Симулятор солнечной системы. Ключ на старт!

По траектории понятно
Что Ваш полет идет к концу
Мы помним Вас, скорбим и любим.
Ваш ЦУП.

Читать полностью »

Задачки с Project Euler хороши тем, что позволяют развлечься и потренировать мозг на разных уровнях сложности для одной и той же задачи. Самый простенький подход — brute force. Первые два десятка задач на 99% решаются именно таким подходом. После отправки правильного ответа на задачу открывается ветка форума по ней. Любители из десятков стран соревнуются, кто процитирует решение поизощреннее. Более продвинутые используют встроенные возможности языков, на которых пишут решение, но суть одна и та же — перебор или явный с кучей вложенных циклов или неявный через вызов специальных функций. Особенно красиво это выглядит в языках Python или Ruby ( часто в одну-две строчки), помногословнее в Java и C++. Чем дальше, тем натужнее выглядят «силовые» решения, с использованием классов вроде BigInteger. С увеличением номера задачи грубую силу удается успешно применитьвсе реже и все сложнее. Появляется много задач на чистую математику, где нужно решить задачу на бумаге, а потом закодировать что-то совсем несложное. Иногда писать можно обойтись без написания кода вовсе, таких задач много — например, на применение комбинаторики.

Но иногда приятнее найти совсем нестандартное решение.
Читать полностью »

image

Сейчас, когда компьютерная графика достигает всё новых высот, модели в играх становятся близкими к фотореализму, а порог вхождения в игры становится всё ниже, сложно представить себе, что до сих пор развиваются игры, в которых на первое место выходит интересный геймплей и огромные возможности, а графики… нет. Имя этому жанру — Roguelike.

Цитата с Wikipedia:

Roguelike (читается как ро́углайк; сленг «рогалик») — поджанр компьютерных ролевых игр. Характерными особенностями roguelike являются генерируемые случайным образом уровни и необратимость смерти персонажа — в случае его гибели игроку предлагается начать игру заново. Большинство игр этого жанра было разработано на некоммерческой основе и использует двумерный текстовый интерфейс и управление клавиатурой.

Читать полностью »

Привет, в этом посте будет представлено немного кода, пару картинок и несколько видео, про то, как я реализовывал быстрый алгоритм взаимодействия ракет и юнитов на XNA (2000 — 3000 юнито) и не только.

Размещаем до 2000 юнитов (XNA)

Читать полностью »

Вступление

Изучая основы разработки под Android мне пришлось познакомится с таким замечательным языком, как Java. Читая очередной раздел гугловского GetStarted я наткнулся на такую конструкцию:

Button.OnClickListener mTakePicSOnClickListener = 
		new Button.OnClickListener() {
		@Override
		public void onClick(View v) {
			
		}
	};

Объявление представителя OnClickListener и переопределения у него метода onClick (поправьте меня Java программисты). Хм, подумал я, а круто бы эту фичу поиметь в Objective-C, а именно возможность переопределять реализацию метода у объекта(конкретного объекта, а не реализацию метода для всех объектов класса) да еще и через блоки в runtime (!) и забыл о этом всем… пока не оказался в полупустом автобусе в дождливую погоду. Времени было много и я решил поразмыслить над тем, что же тут можно сделать.
Зачем это нужно было? Изначально хотелось уметь делать так:

tableView1.delegate = [[NSObject new] override:@selector(tableView:didDeselectRowAtIndexPath:) imp:^void(NSIndexPath* ip){
       NSLog(@"selected row %i", ip.row);
}]
tableView2.delegate = [[NSObject new] override:@selector(tableView:didDeselectRowAtIndexPath:) imp:^void(NSIndexPath* ip){
       NSLog(@"selected row %i", ip.row);
}]

Обратите внимание, что предполагается изменение именно делегата и добавление/предопределение методов у него. А tableView остается оригинальным, без каких либо изменений.

Тем самым местом я чувствовал, что это вполне реализуемо благодаря богатому внутреннему миру Objective-C Runtime.
И да, то самое место меня не подвело.
Читать полностью »

один из шедевров неизвестного программиста
Всем привет. Недавно на просторах интернета наткнулся на очень занимательную вещицу, имя которой Instacode. Чем же занимателен данный сайт — а тем, что он работает по принципу Instagram, только вот изображения генерируются из вашего исходного кода. Не верите? А вы попробуйте. В общем, кому интересно — милости прошу под кат.

Читать полностью »

С вашего позволения, публикую топик от имени моего безвременно read-only друга и коллеги Terion. Возможно, мы промахнулись с хабом – сообщите нам об этом.

Следим за фигурой не отрываясь от компьютера

Нет, речь в посте пойдет не о гипножабе, которая через монитор закодирует вас на похудение, или еще о чем-то таком. Речь пойдет о счетчике потраченных за компьютером калорий. Точнее, потраченных на сайтах. А также о некоторых tips-n-tricks с анимацией.

Мы давно хотели сделать нечто подобное, а тут подвернулась возможность и мы с радостью принялись за дело. И получился тренажерный зал онлайн LazyS. Конечно, никто не претендует на абсолютную точность и, безусловно, это фановая игрушка, но цифры взяты и не с потолка. К тому же, там довольно забавные тренажеры.

Как это работает

Читать полностью »

в 23:02, , рубрики: fun, ithappens, linux, python, метки: , ,

Вот-с, собственно вечерком накодил читалку ithappens на питоне. Умеет сохранять цитаты в формат fortune (правда я не проверял :D) и выводить в файл, либо на терминал.

Читать полностью »

Bomberman Online и хабраэффект — 450 игроков на одной карте. Отчёт и детали игрового движка

Как и обещали в топике-анонсе нашей игры, выкладываем отчёт о хабраэффекте и детали игрового движка.
Читать полностью »

Bomberman Online — HTML5 мультиплеер онлайн игра от хабраюзеров. Тестируем нагрузку!Bombermine Online — результат последних двух недель тестирования и подготовки движка для большого кол-ва игроков онлайн.

Движок написан на Java + Jetty (бекэнд). Фронтэнд — HAProxy + Nginx + Node.js. Клиентсайд — GWT, который транслируется в HTML5/canvas + javascript + websockets. Хостится всё в облаке.

На данный момент рекорд — 50 игроков онлайн. Настроен весь необходимый софт для мониторинга нагрузки. После хабраэффекта обещаем выложить отчёт. Ждём гостей :-)

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js