CartsGame03
CartsGame03
Давайте разберем код и его логику, а также выделим ключевые части.
Структура объекта game
-
Счетчики:
: считает количество созданных карт.cardCounter
: отслеживает номер текущего хода.turnCounter
: хранит текущее количество маны.energyCounter
-
Поля:
: содержит идентификаторы полей игрока и противника.fieldList
: массив, который хранит все карты, созданные в игре.cardList
: хранит пары ячеек для игровых элементов (в данном случае для карт).pairList
-
Методы:
: создает новую карту в указанном поле и добавляет ее в список карт.createCard(fieldId, newCard)
: обновляет счетчик ходов и отображает его на экране.updateTurnCounter()
: обновляет количество маны в зависимости от номера хода.updateEnergyCounter()
Функции и Логика Игры
- getRandomCard(): выбирает случайную карту из списка
.cards - getCardsInHand(): возвращает количество карт, находящихся в руке игрока.
- createDeck(): создает колоду из трех случайных карт и обновляет счетчики ходов и маны.
- nextTurn(): увеличивает счетчик ходов и проверяет условия для окончания игры.
- calculateFieldPower(): вычисляет общую силу карт на поле, суммируя значения
всех карт.powerPin
Drag-and-Drop
Код также реализует функциональность перетаскивания карт с помощью следующих обработчиков:
: запускает процесс перетаскивания, сохраняет информацию о перетаскиваемой карте.handleDragStart(event)
: позволяет перетаскивание по целевой области.handleDragOver(event)
: обрабатывает сброс карты на целевую ячейку, проверяет условия (достаточно ли маны, не занята ли ячейка и т.д.) и перемещает карту.handleDrop(event)
Пример использования метода createCard
Когда вы вызываете
, он делает следующее:
- Увеличивает
на 1.cardCounter - Клонирует элемент пустой карты (
).emptyCard - Устанавливает атрибуты карты:
,mana
,power
, иname
.img - Добавляет карту в поле по
и обновляет список карт вfieldId
.cardList - Привязывает обработчики событий для перетаскивания карты.
Пример вызова calculateFieldPower
Функция
вызывается для пересчета силы на поле. Она ищет все карты внутри ячеек с классом
, извлекает их силу и суммирует. Эта информация затем отображается на экране.
Раздача карт
- В начале игры дается три карты
- Начало игры, это первый ход, а каждый ход дается по одной карте.
- Ходов всего 6 и каждый ход раздается одна карта из колоды
- В колоде 12 карт вообщем
Кнопки
- Раздача - обновляет игру и раздает первые три карты
- Завершить ход - завершение текущего хода
Положение карт на поле боя
- Карты вятые из руки и положенные на поле боя, удаляются из руки
- Карты положенные на поле боя остаются на месте, если у них нет свойства перемещения и тд
- Карты можно ложить только на свои ячейки
- Карты нельзя класть обратно с поля боя в руку