# Which has better performance: 34 variables or a single 10^34 binary variable?

Edit: I realized I could test the second part (does it round) myself in the emulator. Pulp (maybe playdateSDK in general) only allows 17 digits before things start to get very weird, and digits beyond 17 start to get lost. If you go above 20 it just drops everything beyond 17 and adds power-of-10 notation.

So no important variables should be longer than 17 digits. I'm still going to use this to make multi-variables in binary-like notation.

Original Post:

The game I'm working on has cards which can have different abilities. When finished, there will be 34 different possible abilities for a card to have. For the various checks, I'm pretty sure this is going to mean each card will need to have a variable for each ability.

The card will have that information stored in one location when in the player's deck, then it will copy it to another location when in the player's hand, then it will copy that information to another location when it is played to one of the 8 places on the board for a card.

For 34 variables, that's a lot of copying.

I'm considering using a single 34-digit binary variable instead. Obviously it wouldn't be truly binary, but I would only put 1 or 0 in each digit spot to represent whether the ability is present or not.

Would there be a clear performance loss for using a variable this large? Would the variable get rounded at any point?

Alternatively, would there be a performance loss for using so many variables (1-digit each) and copying them so much?

If the answer to both is "that won't work practically," there are other ways I can do this, but I think these are the cleanest options.

Any insight from people with actual programming knowledge would be appreciated; I don't think this question is covered in the documentation, and even with a device I couldn't test it without tons of work implementing both ways and seeing the difference.