Ce projet est une implémentation du tour QR Code créé par Mickael Chatelain (magicdream.fr).
Le magicien présente un porte-clé comportant un QR code. Un spectateur le scanne avec son téléphone : une carte à jouer s'affiche (ex : 5 de Coeur). Le spectateur choisit ensuite librement une carte dans un jeu ordinaire et la pose face cachée. La carte est retournée : elle est différente. Le magicien propose alors de rescanner le même QR code... et cette fois, c'est la carte choisie qui apparaît. Le tour peut être répété plusieurs fois avec des cartes différentes.
Le secret repose sur un tableau de 60 cartes indexées par la minute courante de l'horloge. Le QR code pointe vers une page web qui affiche la carte correspondant à la minute en cours. Le magicien, grâce à son application, connaît à l'avance quelle carte va s'afficher et force le choix du spectateur en conséquence.
Deux applications sont disponibles pour le magicien (au choix) :
qrcode.gimickmagic.com) ainsi que le nom de la carte correspondant à la minute en cours.Les deux applications partagent le même tableau de 60 cartes (tableauCartes).
http://qrcode.gimickmagic.com/ et le glisser dans l'étiquette du porte-clé. Ce porte-clé est présenté au spectateur comme accessoire du tour.FLAG_KEEP_SCREEN_ON).Le tableau contient 60 entrées (indices 0 a 59, correspondant aux 60 minutes d'une heure) :
| Minutes | Cartes |
|---|---|
| 0-14 | AS ♠, 4 ♥, 7 ♣, 10 ♦, ROI ♠, 3 ♥, 6 ♣, 9 ♦, DAME ♠, 2 ♥, 5 ♣, 8 ♦, VALET ♠, 5 ♥, JOKER |
| 15-29 | AS ♥, 4 ♣, 7 ♦, 10 ♠, ROI ♥, 3 ♣, 6 ♦, 9 ♠, DAME ♥, 2 ♣, 5 ♦, 8 ♠, VALET ♥, 9 ♣, JOKER |
| 30-44 | AS ♣, 4 ♦, 7 ♠, 10 ♥, ROI ♣, 3 ♦, 6 ♠, 9 ♥, DAME ♣, 2 ♦, 5 ♠, 8 ♥, VALET ♣, 10 ♦, JOKER |
| 45-59 | AS ♦, 4 ♠, 7 ♥, 10 ♣, ROI ♦, 3 ♠, 6 ♥, 9 ♣, DAME ♦, 2 ♠, 5 ♥, 8 ♣, VALET ♦, ROI ♠, JOKER |
Les minutes 14, 29, 44 et 59 correspondent a un JOKER.
Les applications ont une date limite d'utilisation fixée au 1er juillet 2026. Passé cette date, une boîte de dialogue s'affiche et l'application se ferme. La date est configurable dans le companion object de chaque MainActivity.
Le script local_release.sh compile les deux projets et place les APK dans le dossier release/ (exclu de git). Le dossier est vidé à chaque exécution pour ne conserver que les 2 dernières APK.
./local_release.sh
Format des noms : {nom}-release_{JJMMAAAA_HHMMSS}_{git_hash}_demo.apk