CartsGame03
год назад
год назад
год назад
год назад
год назад
год назад
README.md
CartsGame03

Давайте разберем код и его логику, а также выделим ключевые части.
Структура объекта game
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
createCard
Когда вы вызываете , он делает следующее:game.createCard(fieldId, newCard)
- Увеличивает
на 1.cardCounter - Клонирует элемент пустой карты (
).emptyCard - Устанавливает атрибуты карты:
,mana,power, иname.img - Добавляет карту в поле по
и обновляет список карт вfieldId.cardList - Привязывает обработчики событий для перетаскивания карты.
Пример вызова calculateFieldPower
calculateFieldPower
Функция вызывается для пересчета силы на поле. Она ищет все карты внутри ячеек с классом calculateFieldPower(), извлекает их силу и суммирует. Эта информация затем отображается на экране.botCell
Раздача карт
- В начале игры дается три карты
- Начало игры, это первый ход, а каждый ход дается по одной карте.
- Ходов всего 6 и каждый ход раздается одна карта из колоды
- В колоде 12 карт вообщем
Кнопки
- Раздача - обновляет игру и раздает первые три карты
- Завершить ход - завершение текущего хода
Положение карт на поле боя
- Карты вятые из руки и положенные на поле боя, удаляются из руки
- Карты положенные на поле боя остаются на месте, если у них нет свойства перемещения и тд
- Карты можно ложить только на свои ячейки
- Карты нельзя класть обратно с поля боя в руку