NEW! Новый релиз 12.0.0 уже доступен! Подробности в Центре заботы

CartsGame03

0
README.md

CartsGame03

Alt logo

Давайте разберем код и его логику, а также выделим ключевые части.

Структура объекта
game

  1. Счетчики:

    • cardCounter
      : считает количество созданных карт.
    • turnCounter
      : отслеживает номер текущего хода.
    • energyCounter
      : хранит текущее количество маны.
  2. Поля:

    • fieldList
      : содержит идентификаторы полей игрока и противника.
    • cardList
      : массив, который хранит все карты, созданные в игре.
    • pairList
      : хранит пары ячеек для игровых элементов (в данном случае для карт).
  3. Методы:

    • createCard(fieldId, newCard)
      : создает новую карту в указанном поле и добавляет ее в список карт.
    • updateTurnCounter()
      : обновляет счетчик ходов и отображает его на экране.
    • updateEnergyCounter()
      : обновляет количество маны в зависимости от номера хода.

Функции и Логика Игры

  • getRandomCard(): выбирает случайную карту из списка
    cards
    .
  • getCardsInHand(): возвращает количество карт, находящихся в руке игрока.
  • createDeck(): создает колоду из трех случайных карт и обновляет счетчики ходов и маны.
  • nextTurn(): увеличивает счетчик ходов и проверяет условия для окончания игры.
  • calculateFieldPower(): вычисляет общую силу карт на поле, суммируя значения
    powerPin
    всех карт.

Drag-and-Drop

Код также реализует функциональность перетаскивания карт с помощью следующих обработчиков:

  • handleDragStart(event)
    : запускает процесс перетаскивания, сохраняет информацию о перетаскиваемой карте.
  • handleDragOver(event)
    : позволяет перетаскивание по целевой области.
  • handleDrop(event)
    : обрабатывает сброс карты на целевую ячейку, проверяет условия (достаточно ли маны, не занята ли ячейка и т.д.) и перемещает карту.

Пример использования метода
createCard

Когда вы вызываете

game.createCard(fieldId, newCard)
, он делает следующее:

  • Увеличивает
    cardCounter
    на 1.
  • Клонирует элемент пустой карты (
    emptyCard
    ).
  • Устанавливает атрибуты карты:
    mana
    ,
    power
    ,
    name
    , и
    img
    .
  • Добавляет карту в поле по
    fieldId
    и обновляет список карт в
    cardList
    .
  • Привязывает обработчики событий для перетаскивания карты.

Пример вызова
calculateFieldPower

Функция

calculateFieldPower()
вызывается для пересчета силы на поле. Она ищет все карты внутри ячеек с классом
botCell
, извлекает их силу и суммирует. Эта информация затем отображается на экране.

Раздача карт

  1. В начале игры дается три карты
  2. Начало игры, это первый ход, а каждый ход дается по одной карте.
  3. Ходов всего 6 и каждый ход раздается одна карта из колоды
  4. В колоде 12 карт вообщем

Кнопки

  1. Раздача - обновляет игру и раздает первые три карты
  2. Завершить ход - завершение текущего хода

Положение карт на поле боя

  1. Карты вятые из руки и положенные на поле боя, удаляются из руки
  2. Карты положенные на поле боя остаются на месте, если у них нет свойства перемещения и тд
  3. Карты можно ложить только на свои ячейки
  4. Карты нельзя класть обратно с поля боя в руку

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.