Теги ‘программирование’

.NET / Программирование Magic: the Gathering — §2 Карта

Нет комментариев »

Продолжим наше обсужедние программирования Magic the Gathering. Сегодня мы обсудим то, как формируется объектная модель конкретной карты. Поскольку карты взаимдействуют со всеми участниками системы (с игроками, другими картаим, и т.д.), мы также затронем вопросы реализации базового поведения карт. Как и предже, мы будем использовать языки программирования Boo и C#. Также, для примеров мы воспользуемся картами 8й и поздних редакций.[1]



Предыдущие посты: §1



Ненормальное программирование / Крестики-нолики по-русски!

Нет комментариев »

Здравствуйте, после прочтения топика «Боярское программирование»

захотелось написать что то такое :) Сил хватило на крестики-нолики, но я хочу написать что-то тридешное, на истинном Боярском!


Ненормальное программирование / «OOC для C, — это как Scala для Java»

Нет комментариев »

Сегодня на Hacker News наткнулся на пост о (похоже очень) новом языке "ooc". Бросил на день все дела, занялся ковырятельством — уж больно интересно выглядит.



Итак, "ooc — это современный, объектно-ориентированный, функционально(ватый), высокоуровневый, низкоуровневый, секси язык программирования". (Именно секси его и представляют разработчики, ну а я бы добавил что еще и "компилируемый")



По сути — ooc — транслятор языка высокого уровня в C со сборщиком мусора.



Как выразился один из посетителей сайта: "ooc для C, — это как Scala для Java" (jimbokun@HN).



Обязательный «Hello, World» на ooc:



hello.ooc:

"Hi, softer world =)" println()



на выходе hello.c и hello.exe.



ooc-компилятор транслирует это в c-код и использует доступный c компилятор (gcc, mingw, icc, tinycc) чтобы сделать из этого hello.exe (или ./hello). Поддержка tinycc заявлена, но в реальности ждем поддержки C99 в самом tinycc (автор обещал сделать обходные пути, но пока не работает), поэтому наслждаемся пока что довольно неслабого размера .exe’шниками (gcc от mingw других не делает).



Итак, что у нас уже есть в языке: классы, объекты, строгая типизация, угадывание типов (n := "Beer" length()), chaining (.dothis().dothat()), совместимость с c-библиотеками, абстрактные классы, шаблоны из C++, списки, разреженные(sparse) списки, хеши (ArrayList, SparseList, HashMap), for (i in list) { ... }, обертки для c-шных функций и классов, перегрузка операторов, полиморфизм, сборщик мусора (отключаемый), import file/name (не нужны .h, но .h можно использовать как extern), closures, eiffel’s contracts, исключения, reflections, pattern matching, ranges, ternary operator, bindings, generics, coroutines, GTK, SDL, OpenGL, GLU, GLUT bindings…



Как сказал товарищ varjag@ HN: «Я думаю это розыгрыш, сделанный пользователями Ruby, но нигде этого в тексте не вижу.» Нет, этот язык существует на самом деле. Примеры, линки, установка, подводные коряги — под катом…


Ненормальное программирование / Ненормальное программирование. Разработка IF игр

Нет комментариев »

Разработка игр





Кто не мечтал попробывать разработать собственную игру. Мы будем создавать игру в стиле interactive fiction Сюжет я взял на сайте одной из систем программирования RTADS. Система локализована на русский язык и содержит полный набор средств и руководств для программирования. Но… Программировать мы будем в другой системе Inform7 Она мне больше нравиться, т.к. я люблю английский. Итак сюжет.


Сюжет



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


.NET / Асинхронное программирование — цепочки вызовов

Нет комментариев »

Когда в коде фигурирует пара вызовов BeginXxx()/EndXxx(), это приемлимо. Но если алгоритм требует несколько таких вызовов подряд, то количество методов (или анонимных делегатов) преумножится и код станет менее читабельным. К счастью, эта проблема решена как в F# так и в C#.



Спортивное программирование / Когда алгоритм верный, а всё равно TL

Нет комментариев »

Многие удивляются, а как это разные людишки решают задачи так, что они принимаются моментально или почти моментально? Ответ прост: они ставят много интересных экспериментов, оптимизируют код, и порой приходят к забавным результатам. Тут я приведу несколько своих.


Ненормальное программирование / Примеры использование языкоориентированного программирования

Нет комментариев »

Идея language oriented programming (LOP), состоит в том, что во время разработки программы, постоянно создаются миниязыки. Они могут как расширять основной язык разработки, так и быть отдельными языками. Лучшим языком для LOP является Common Lisp с его макросами, но здесь речь пойдёт не о нём. Примеры использования LOP с Common Lisp советую посмотреть в замечательной книге Peter Seibel Practical Common Lisp. Я считаю, что LOP один из самых простых и эффективных способов программирования. Мы описываем задачу и предметную область на самом подходящем для этого языке, а потом стараемся его реализовать.



Я разрабатываю браузерные игры на Ruby, поэтому часто использую LOP, как для расширения языка и встроенных DSL (Ruby позволяет делать это очень хорошо), так и для создания миниязыков связанных со сложной игровой механикой. В этой статье я рассмотрю простое расширение основного языка, встроенный мини-DSL и два не встроенных языка. Буду приводить примеры в близкой мне тематике, надеюсь они будут вполне понятны.



.NET / Асинхронное программирование — тестирование событий

Нет комментариев »

Иногда приходится писать тесты для событий, и делать это неудобно – очень быстро начинают плодиться дополнительные методы и поля. О том, как тестировать события в C# я и хочу рассказать.



Ненормальное программирование / видеообзор работ с chaos constructions 2009

Нет комментариев »

Санкт-Петербургский фестиваль компьютерного искусства Chaos Constructions хорошо известен headhunter’ам от IT и игровой индустрии.



В этом году он снова проходил в выставочном центре Евразия, в конце августа. По его мотивам, manwe и tone подготовили видеообзор работ 2009-го года. Обзор можно посмотреть в онлайн качестве или скачать в нормальном.



image



Скачать эти миниатюры программистского искусства можно здесь: scene.rpod.ru/123692.html или с сайта party.cc.org.ru



update: перенес в ненормальное программирование %)


Спортивное программирование / На чём и как писать (часть 1. Eclipse и Java)

Нет комментариев »

image

image

В продолжение предыдущего поста.



Оговорюсь сразу: нет,я не пытаюсь унизить этими картинками Java или C++. Или вообще сказать, что такой-то язык лучше сякого-то языка. Я лишь хочу показать, что для разных задач разные языки являются удобнее. В этом топике можно прочесть советы по выбору IDE для олимпиадного программмирования и Будет рассмотрена часть случаев, когда Java удобнее.