Можно такой вариант, чтобы не учитывать, у кого там HP больше.
1 карта (атакующая) побеждает вторую: (HP 1 карты)*2 HP второй карты = урон по сопернику. Если число получилось положительным, то урон наносится, из HP второй карты вычитается 2*HP первой. Вторая карта исчезает
Если число отрицательное, то просто вычитается HP2 2*HP1 ослабил вражескую карту, молодец, раз уж выиграл.
Пример:
1 карта, грань 4, HP 2 атакует вторую. Вторая, грань 1, HP 3. Вторая карта исчезает, враг получает урон в 4 HP. Все счастливы.
Теперь те же условия, но у первой 1 HP, у проигравшей 3. Проигравшая получает урон в 1*2, у нее остается 1 HP. Все счастливы.
-----------------
Случай если карта атакует, но проигрывает.
Тогда она получает урон в |(HP вражеской карты) (свои HP)| по модулю. Но и вражеская карта получает урон (свои HP) (HP атакующей карты)/2. Битва же все же произошла.
В результате могут быть варианты:
Первая карта (атакует и проигрывает) HP 4, вражеская HP 2. Первая получает урон в |2-4| = 2HP, а вот вторая 2 4/2 = 0, то есть погибает, хоть и выиграла. А все потому, что слишком слаба по HP.
Короче говоря, у тебя могут быть 10 по всем граням, но ты проиграешь, потому что мало HP.
-------------------