Как поменять 2 макроса в с ++? - PullRequest
0 голосов
/ 09 января 2020

У меня есть проект из университета, и он просит нас создать новый псевдоязык с использованием макросов с препроцессором.

Хотя есть одна команда, которую я просто не могу найти способ заставить ее работать.

Команда выглядит следующим образом:

DAMAGE DEFENDER 12

Я пробовал несколько вещи и, как я упоминаю в названии, если можно как-то поменять макросы, это может решить мою проблему.

DEFENDER = Player [1-turn], который является объектом класса игрока, и ход идет из От 0 до 1,

Я пытался реализовать функцию с использованием DAMAGE, но это невозможно, потому что в DEFENDER и числе нет запятой, плюс я не могу закрыть скобки после 12.

I попытался с перегрузкой оператора, и кажется, что он может работать, только если обмен возможен. Я думал о том, чтобы сделать макрос DAMAGE минусом (-) и сделать что-то подобное

Player[1-turn] - 12

Может быть, что-то еще, например, использовать MACRO при условии?

Например #define DEFENDER Player[1-turn] CONDITION_MACRO

#define CONDITION_MACRO -/+ (for damage or heal)

Но УЩЕРБ стоит первым в качестве ключевого слова. Также макрос DEFENDER используется в других макросах, таких как GET_HP (DEFENDER), поэтому полезно оставаться таким, но если у вас есть идеи, которые могут решить проблему в обоих случаях, я был бы очень признателен.

...