Dierença entre #define e uma variável - Introdução à Programação em C

Olá, galera da comunidade!

Estou com uma pequena interrogação na minha cabeça.

Dentro do primeiro jogo desenvolvido no livro (Jogo da Adivinhação) existe o conceito de “Números Mágicos”, que são aqueles números importantes no código, porém ficam jogados pelo código. Para solucionar ou organizar esse problema foi aconselhado que se usasse a diretiva #define.
E a partir disso eu fiquei me perguntando? Qual seria a diferença entre usar #define e uma variável própria para o propósito (que no caso seria o número de tentativas para o usuário poder acertar o número certo)?

Adorei o livro e a possibilidade de poder compartilhar essa dúvida aqui e espero que possam me ajudar.

Vlw!