De todas las variables que tenemos que presentar en decimal, velocidad, ángulo y vidas son las más sencillas. Y son las más sencillas porque, por el rango de valores que toman actualmente, sus codificaciones binarias y BCD coinciden. Por tanto, podemos actuar como si ya estuvieran codificadas en BCD.
Efectivamente, la velocidad toma valores entre 0 y 3 y, en ese rango de valores, las codificaciones binaria y BCD son iguales. Lo mismo ocurre con el ángulo (0 – 7) y con las vidas (0 – 5). Las dos codificaciones empiezan a ser diferentes a partir del valor 10, que en binario se codifica como %0000-1010 y en BCD se codifica como %0001-0000. Pero hasta ahí son idénticas:
Número | Codificación binaria | Codificación BCD |
0 | 0000-0000 | 0000-0000 |
1 | 0000-0001 | 0000-0001 |
2 | 0000-0010 | 0000-0010 |
3 | 0000-0011 | 0000-0011 |
4 | 0000-0100 | 0000-0100 |
5 | 0000-0101 | 0000-0101 |
6 | 0000-0110 | 0000-0110 |
7 | 0000-0111 | 0000-0111 |
8 | 0000-1000 | 0000-1000 |
9 | 0000-1001 | 0000-1001 |
10 | 0000-1010 | 0001-0000 |
… | … | … |
Por tanto, en el caso de la velocidad, el ángulo y las vidas, podemos hacer cualquiera de estas cosas:
- Cambiar para usar la codificación y la aritmética BCD. No merece la pena.
- O seguir usando la codificación y la aritmética binaria.
Ni siquiera es necesario pasar usar “pintaBCD”. Se puede seguir usando “pintaHex2”, porque los números en el rango 0 – 9, además de codificarse igual en binario y BCD, también se pintan igual en decimal (“pintaBCD”) y en hexadecimal (“pintaHex2”):
Número | Representación decimal | Representación hexadecimal |
0 | 0 | 0 |
1 | 1 | 1 |
2 | 2 | 2 |
3 | 3 | 3 |
4 | 4 | 4 |
5 | 5 | 5 |
6 | 6 | 6 |
7 | 7 | 7 |
8 | 8 | 8 |
9 | 9 | 9 |
10 | 10 | a |
… | … | … |
En definitiva, para velocidad, ángulo y vidas no hace falta hacer nada, siempre y cuando sigan tomando valores entre 0 y 9. Ahora bien, si algún día se cambia el juego para, por ejemplo, meter 15 vidas, habrá que revisar esta decisión.