.dev | Cards

Поскольку томными вечерами сейчас заниматься особо нечем, я с бумажкой и ручкой выдрочил алгоритм игры в карты (конкретно в Дурачка, но смысловая составляющая будет применима к практически любой карточной игре). Как результат, код для AI игры пишется за час с хвостиком и уместился в примерно 250 строк.

Основные постулаты:

  • Кажой карте присваивается определённый «вес», скажем от 0.01 до 1.00
  • Специальным картам (например козырям) к весу прибавляется 1.00, в принципе если играть в дурачка с сменным козырем, то можно к сменной масти прибавлять какой-то постепенно увеличивающийся «вес».
  • Игра AI делится на атаки и защиту
    • Атака
      • Цель №1 — повысить свой «средний вес» карт
      • Цель №2 — понизить «средний вес» карт противника
      • Лучший ход, соответственно, будет тот, который наиболее близко совпадает с моими целями
    • Защита
      • Цель №1 — удержать свой «средний вес» как можно выше (то бишь тут сразу ясно что порой выгодно «брать», вместо того, чтобы биться)
      • Цель №2 — сбить «средний вес» карт противника «выманивая» тяжёлые карты (ведь AI знает, что противник получит из колоды)
      • Стратегия элементарно расчитывается методом нехитрого перебора вариантов

Вот, собственно, и всё! Осталось сделать кучку опций и продумать интерфейс. В будущем меня, правда, ждёт более сложный момент изучения графического API iPhone, но это должно быть интересно!

Top

Слова: iphone

Комментарии Отключены