Комментарии 100
Где взять круглую картинку с цветами в бОльшем разрешении?
+2
присоединяюсь! хочу колесо маны в большом разрешении!
+1
нашел в чуть большем: wiki.mtgsalvation.com/images/9/98/Color_wheel.jpg
0
Подозрительно много кода для такой просто задачи (имхо)
+1
Угу, обычных олдскульных массивов вполне бы хватило.
0
Пример в студию :)
0
Ну уел, лень писать, точнее дописывать, никаких сложностей в реализации нет, кроме, пожалуй, того, что она в своеборазном C-style получается местами. Если дело принципа, то я конечно могу найти время и дописать :D
Кстати, так и не понял что означает XB, это сколько сколько хочешь B столько и используешь? Из текста не очень понятно, в MtG играл пару раз в юности.
Кстати, так и не понял что означает XB, это сколько сколько хочешь B столько и используешь? Из текста не очень понятно, в MtG играл пару раз в юности.
0
Что такое «M:tG»? Выглядит как случайный набор символов.
-1
это коллекционная карточная игра Magic: The gathering. Сокращенно M:tg
+1
Magic: the Gathering??) Карточная ролевая игра.
-1
magic: the gathering
0
НЛО прилетело и опубликовало эту надпись здесь
кстате была и на PC )
0
Magic: The Gathering — типа настольная карточная игра с коллекционными картами. ну это если в двух словах.
Более привычное сокращение — MTG.
Более привычное сокращение — MTG.
0
Кхм, я один не понял о чем это? )
+3
Не один. Автор не с того начал. Лучше бы описал для начала план (с чего начнем, какие библиотеки будем использовать, расшифровал бы аббревиатуру M:tG), а то сходу ринулся код писать.
+3
Судя по всему это привычка многих авторов здесь писать статьи про то, что может понять узкий круг лиц, либо только после того как прочитаешь пол статьи. Я вообще в игры не играю но очень трудно было понять причем тут мана и программирование.
+4
Нет конечно, надеюсь, что не только сам автор понимает этот пост.
Как бы не хватает пары-тройки абзацев текста в начале:
Возникло желание поделиться своим опытом по реализации идеи игры Magic: the Gathering на C#/ Boo…
Игра представляет собой…
Важны такие нюансы как… Подводные камни…
Ну и в таком духе. А то кажется что это статья из долго играющего цикла и надо срочно искать начало.
Как бы не хватает пары-тройки абзацев текста в начале:
Возникло желание поделиться своим опытом по реализации идеи игры Magic: the Gathering на C#/ Boo…
Игра представляет собой…
Важны такие нюансы как… Подводные камни…
Ну и в таком духе. А то кажется что это статья из долго играющего цикла и надо срочно искать начало.
+3
Хорошо бы добавить ссылку на игру. Я думаю не все с нею знакомы.
Нпаример — ru.wikipedia.org/wiki/Magic
Нпаример — ru.wikipedia.org/wiki/Magic
+1
вопрос простой
нафига програмить мтг?
нафига програмить мтг?
-2
Так и не понял, а где разбор земель дающих any type ману?
0
В следующий раз, наверное.
0
Ух, таким макаром можно запрограммировать фундамент для карт уже лет через пять, и можно будет начать добавлять карты.
-2
Ах да, ну и конечно, спасибо за гажение — будьте уверены, я это запомню.
-4
Сейчас уже слишком много появилось видов земель, некоторые довольно замороченные :) Снежные, painlands, фильтры etc. Понятно что лучше сначала базовые реализовать, а потом уже расширять.
0
Не согласен, с тем, что сперва имеет смысл реализовывать базовые, потом расширять. В этом случае мы получаем постоянное объявление ручками новых переменных с тем чтоб добавить парочку типов… И горе нам, если карта требует в оплату например выкинуть из игры другую карту из руки (force of will), скинуть две карты (forbid) или ещё какое жуткое действие — они же тоже получаются «как бы маной». Или наоборот, то, что Вы перечислили.
0
Ах! вот чего-чего а тематики старого доброго МТГ не ожидал увидеть на хабре. Надобы расчехлить свою коллекцию и пересобрать эки по фану.
+2
А где снежная манна? я смотрю у нас в России все пропустили замерзшее изданиие.
+1
Снежная мана? Можно ссылочку?
0
en.wikipedia.org/wiki/Ice_Age_(Magic:_The_Gathering)
snow permanents
snow permanents
0
думаю это не очень существенно, особенно если учесть, что они отличаются только дополнительным навешенным типом.
0
Мэджик был хорошим развлечением, особенно, до закрытия клуба «Даймонд» на Китай-городе. :)
0
Пользуясь случаем, хочу прорекламировать пару игр схожей тематики — Spectromancer и Astral Masters, за которыми однажды провел пару нескучных недель, передвигая электронные кусочки бумаги, за неимением настоящих :)
0
Глянул на spectomancer — красиво…
0
Можно я не буду выражаться по поводу идеи астрал мастеров? =) Мне тут знакомый ее посоветовал года полтора назад, сказал что он в нее меня сделает. каково же было его разочарование. когда за 20 партий он меня ни разу не смог обыграть. Просто он не знал что есть такая вещь как мтг, в которую у меня стаж уже далеко за…
Сама игра конечно хороша. но только тога когда нет ничего другого.
Сама игра конечно хороша. но только тога когда нет ничего другого.
+1
Точно. Играю на даче в жестком оффлайне 8)
0
не надоело? в жало играть? мне с живыми противниками через час надоедает =(
0
с живыми противниками? а вы с кем простите играете, с Deep Blue? :))
На самом деле никакой онлайн с реальными живыми турнирами в Саргоне не сравнится, ни по атмосфере, ни по эмоциям.
На самом деле никакой онлайн с реальными живыми турнирами в Саргоне не сравнится, ни по атмосфере, ни по эмоциям.
0
Контекст вообще то состоял из Астралмастерс в данной ветке.
Я имел ввиду что даже в онлайне в эту игру надоедает с живыми играть.
А если бы я жил в Санкт-Петербурге, то в сам бы в Саргоне отвисал. Но увы… в нашем Мухосранске нет клубов. И мой DCI ID уже давно был бы исключен из рейтингов, если бы не добрые знакомые из Краснодара, которые раз в пол-года включают меня в какой-нибудь драфт, когда для четности не хватает человека.
Я имел ввиду что даже в онлайне в эту игру надоедает с живыми играть.
А если бы я жил в Санкт-Петербурге, то в сам бы в Саргоне отвисал. Но увы… в нашем Мухосранске нет клубов. И мой DCI ID уже давно был бы исключен из рейтингов, если бы не добрые знакомые из Краснодара, которые раз в пол-года включают меня в какой-нибудь драфт, когда для четности не хватает человека.
0
у меня есть ощущение, что проще было представить разные типы маны объектами наследниками класса ManaType, тогда Mana превратилась бы по существу в Dictionary<ManaType, Int>… макросы генерирующие толстый интерфейс для класса, выглядят в этом отношении сложновато…
+1
А как же с гибридной маной и т.д.?
0
этот Dictionary<ManaType,int> противно обрабатывать — 100%, я пробовал что-то подобное.
точнее вот так у меня было:
что по сути тоже самое (в чем-то даже проще).
точнее вот так у меня было:
Copy Source | Copy HTML
- type Mana =
- |Red of int
- |Green of int
- |Blue of int
- |White of int
- |Black of int
- |Colorless of int
Copy Source | Copy HTML
- type ManaCost = class
- ...
- val Cost : Mana list
- ...
- end
что по сути тоже самое (в чем-то даже проще).
0
мне кажется тебе правда немножко не хватило вступления. )) Резковато в бой рванул.
и еще мне кажется, что для первого раза этого слегка многовато. я в принципе был готов к чему-то такому, но и то мой мозг оказался сломан. :)) может воскресенье виновато.
кстати об этом косвенно свидетельствует и то, что пока нет ни одного комментария по теме поста. все про мтг :)
и еще мне кажется, что для первого раза этого слегка многовато. я в принципе был готов к чему-то такому, но и то мой мозг оказался сломан. :)) может воскресенье виновато.
кстати об этом косвенно свидетельствует и то, что пока нет ни одного комментария по теме поста. все про мтг :)
+1
Я все собирался под Linux написать мтгшку, но, видимо, уже так и не доберусь. Может попробуете ее на Mono наваять? Кроссплатформенный .NET вариант получится. А если еще и сорцы прятать не будете — так и помогут в будущем развитии.
+1
Ну что касается сорцов, то always welcome. Что касается презентационного слоя, то я вообще планировал делать что-то из стека Windows… не знаю есть ли аналог Direct2D на Mono, но писать под OpenGL уж точно не планировалось (в студенчестве объелся этим фреймворком)… а какие еще варианты есть? Конечно всегда можно на Silverlight или Flash…
Пока все совместимо с Моно…
Пока все совместимо с Моно…
0
Во первых. А как быть со странными манакостами, например по трешолду, грейвярду или фракшинам?
Кстате, а когда платишь колорлесс, какая пойдет в расход? Может на нужный инстант не отстаться, так что процесс не полностью автоматичный.
Да, и ещё, навряд ли есть какая-то надобность программировать Меджик, так как
"..., MAGIC: THE GATHERING are registered trademark of Wizards of the Coast, Inc. MicroProse Software ...", лицензия полностью пропреитарная на игру и правила, т.е. реализация правил в стороннем ПО не приветствуется, тем более уже давно есть www.wizards.com/default.asp?x=magic/magiconline
Кстате, а когда платишь колорлесс, какая пойдет в расход? Может на нужный инстант не отстаться, так что процесс не полностью автоматичный.
Да, и ещё, навряд ли есть какая-то надобность программировать Меджик, так как
"..., MAGIC: THE GATHERING are registered trademark of Wizards of the Coast, Inc. MicroProse Software ...", лицензия полностью пропреитарная на игру и правила, т.е. реализация правил в стороннем ПО не приветствуется, тем более уже давно есть www.wizards.com/default.asp?x=magic/magiconline
+1
Во-первых, странные манакосты — это отдельная тема, иногда они маркируются как Х, иногда в правилах, но к теме этого поста это не относится т.к. это семантика правил.
А насчет лицензии, можете написать большое грозное письмо Apprentice, Magic Workstation, Wagic и т.д. и предупредить их что то, что они делают нехорошо. Я не говорил что я прям игру пишу, я просто теоретизирую на тему правил в M:tG. Копирайт на мышление вроде пока не ввели.
А насчет лицензии, можете написать большое грозное письмо Apprentice, Magic Workstation, Wagic и т.д. и предупредить их что то, что они делают нехорошо. Я не говорил что я прям игру пишу, я просто теоретизирую на тему правил в M:tG. Копирайт на мышление вроде пока не ввели.
-1
Маленький оффтоп: если кто-то играет в MTG на Xbox 360 — пишите :)
0
ладно, с маной понятно, а продолжения то ждать? В MTG еще много чего интересного есть. Да и подтягивать знания по ООП интереснее в таком приложении. :)
+1
Что-то я сомневаюсь, что вам удастся запрограммировать весь MtG. Разве что ограниченный subset карт…
0
Главное — сделать непротиворечивый движок, а базу карт наполнять уже можно и коллективно.
-1
ставлю свою шляпу, что непротиворечивый движок сделать не получится, потому что нет общих правил в MtG, карты — это и есть сами правила
вам придется реализовать что-то вроде языка программирования шиворот-навыворот, с тотальным IoC, чтобы программу (правила) можно было динамически расширять прямо в run-time
вам придется реализовать что-то вроде языка программирования шиворот-навыворот, с тотальным IoC, чтобы программу (правила) можно было динамически расширять прямо в run-time
0
Вполне логично добавить базовые правила, их не так уж много. А потом идти не от маны, а от оплаты.
0
в общем, удачи
я когда-то занимался этой задачей, и забил, когда понял, что реализация MtG тянет на диссертацию, как минимум
я когда-то занимался этой задачей, и забил, когда понял, что реализация MtG тянет на диссертацию, как минимум
0
В рамках пары блоков всё не так уж страшно, а дальше просто объём программирования вырастает в геометрической прогрессии, так что в одиночку программировать ЭТО по-моему абсолютно невозможно.
Ну да скоро столкнусь с этим, вероятно, снова — один из проектов клонирует кое-какие части MTG.
Ну да скоро столкнусь с этим, вероятно, снова — один из проектов клонирует кое-какие части MTG.
0
Мне кажется интересно разобраться в этой теме хотя бы чтобы понимать как в принципе можно реализовать любое правило
0
не переживайте, автор это понимает лучше других. и он к этому готов :)
+1
У MtGO получилось. Если не брать в расчёт всякие Unhinged / Unglued, то вполне можно. Тем более специально к выходу MtGO механику подправили для более простой реализации в софте — слои расписали, например.
0
Magic интересен тем, что никогда не знаешь когда и какую свинью он тебе подложит.
Вот, например: Mishra's Workshop
Думаю таких подстав много :)
Вот, например: Mishra's Workshop
Думаю таких подстав много :)
+1
Начинал играть еще 4ой редакцией (и бумажной, и компьютерной), там на диске с игрой была офигительная бродилка, уже не помню названия, но суть в том, что гуляешь по каким-то территориям, выполняешь квесты, сражаешься с монстрами — и получаешь новые карты в колоду.
Если бы такое в виде малтиплеера реализовали — я бы подписался. У меня на M:tG-Online есть купленный аккаунт, но там играть совершенно не прет, не хватает какой-то изюминки.
PS: Залезть, что ли, на пыльный чердак и найти свои коробки с картами? :)
Если бы такое в виде малтиплеера реализовали — я бы подписался. У меня на M:tG-Online есть купленный аккаунт, но там играть совершенно не прет, не хватает какой-то изюминки.
PS: Залезть, что ли, на пыльный чердак и найти свои коробки с картами? :)
0
Ахх… Shandalar… да собственно игра была прикольная, и самое главное там AI действительно умел играть, что удивительно. Хотя одна особенность всех этих игр с AI в том, что когда подбираешь идеальную колоду, тебя уже не остановить…
У меня тоже на MTG Online акк есть, но там мне неинтересно то, что нужно постоянно тратить деньги на карты. По крайней мере на своем домашнем симуляторе я практикую бережливость и экономичность :)
У меня тоже на MTG Online акк есть, но там мне неинтересно то, что нужно постоянно тратить деньги на карты. По крайней мере на своем домашнем симуляторе я практикую бережливость и экономичность :)
0
Попробуйте www.yugioh-online.net/top/english/index.html, 2-я по популярности TCG в мире но в России почти не распространена. Возможно менее сбалансированная / продуманная чем МТГ но Имхо на много более фановая.
П.с Когда будите регистрировать Акаунт не указывайте сваю страну как РФ, а то ничего купить не получится )
П.с Когда будите регистрировать Акаунт не указывайте сваю страну как РФ, а то ничего купить не получится )
0
А в следующей статье мы попытаемся запрограммировать окружающую реальность +)
0
Как-то всё очень запутано.
А почему нельзя использовать битовую алгебру для этого?
public enum ManaColor: int
{
Undefined = 0,
Red = 2,
Blue = 4,
Green = 8
}
public class Mana
{
public int Color { get; set; }
}
var m = new Mana { Color = ManaColor.Red | ManaColor.Blue }
Зачем городить весь этот огород?
Или я что-то упустила?
А почему нельзя использовать битовую алгебру для этого?
public enum ManaColor: int
{
Undefined = 0,
Red = 2,
Blue = 4,
Green = 8
}
public class Mana
{
public int Color { get; set; }
}
var m = new Mana { Color = ManaColor.Red | ManaColor.Blue }
Зачем городить весь этот огород?
Или я что-то упустила?
0
Colorless забыла.
0
Тут простые подходы повсеместно не работают. Хардкодить количество земель, например, опрометчиво — вот появилась земля Snow/Frost, а я даже и не знал об этом.
0
А с каких это пор int — это хардкод?
что будет если я сделаю следующее:
var a = 10;
var b = (ManaColor)a;
какое значение будет в b?
А если нужно избавиться от enum'a, по используйте себе адаптер и всё тут:
что будет если я сделаю следующее:
var a = 10;
var b = (ManaColor)a;
какое значение будет в b?
А если нужно избавиться от enum'a, по используйте себе адаптер и всё тут:
public static class ManaColorDescriptor { public IManaColorDescription GetDescription(int manaColor) { //Можно в XML задезть, можно в базу, а можно и у сервиса спросить. Что душе угодно. //А умные дяди и тёти используют provider oriented design для этого. switch(manaColor) { сase 2: return new DefaultColorDescription { Color = "Red", Description = "Red Mana" }; default: return new DefaultColorDescription { Color = "Новыя мана", Description = "А кто будет конфиги править или ещё чего делать? Чё это за мана вообще?" }; } } }
0
Каждый определенный цвет маны порождает вместе с собой определенный набор дополнительной информации, которую очень напряжно реализовать с «ручным» подходом к проблеме. Например, мана участвует в формировании двойной маны, в подсчете общей суммы (converted mana cost) всей маны, в расчетах удовлетворения мана-стоимости а также — это тоже важно — в процессе разбора текстового описания и формирования соответствий в стиле black=swamp.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Программирование Magic: the Gathering — §1 Мана