π
<-
Chat plein-écran
[^]

Tour de Magie n°01 en Python

Tour de Magie n°01 en Python

Message non lude cent20 » 03 Jan 2020, 10:15

Parce qu'il n'y a pas que les hommes politiques qui sont capable de prestidigitation, je vous propose un petit script en python qui fait un tour de magie, certes très connu, mais qui fait quand même son effet ...

Code: Tout sélectionner
# https://nsi.xyz Vincent ROBERT aka cent20

# Livre des Ombres
grimoire = ["1. Pense à un nombre.", "2. Double ce nombre", "3. Ajoute 10", "4. Divise par 2", "5. Retranche le nombre du\n   départ", "6. Le résultat de ton calcul"]
manuscrit = ["Ne me dit rien,", "je ne veux rien savoir, mais","je vais lire tes pensées", "par ce que je lis en toi", "comme dans un livre ouvert", "" ]
medium = ["Je suis un algorithme doté", "d'un don magique et je vais"," deviner ce que tu penses !", "Es-tu prêt ?"]
chaman = "cent20"
runes = "Tour de magie n°01 par "+chaman

# Incantation magique
ouvrir, sommaire, memoire = range, len, len
apparition = boniment = print
incantation, baguette, talisman  = input, chr, int

def chapeau():
  global runes
  illusion = 0 # Pour l'instant aucune magie !
  while illusion < talisman(runes[-2]):
    illusion+=1
    lapin=foulard=illusion
  for illusion in range(42,120,talisman(chaman[4])**4):
    lapin+=1
  return lapin**foulard+foulard+foulard
  # Beaucoup de lapin et de foulard pour un seul chapeau !

def magie(couleur):
  # Magie blanche ou noire ?
  apparition("\n"+"\n"*9*(couleur=="blanche")+"-"*27*(couleur=="noire")+"\n")

def pentacle():
  # Nécessaire pour un bon tour de magie
  for souvenir in ouvrir(memoire(medium)-1):
    apparition(medium[souvenir])
  magie("noire")
  boniment(medium[souvenir+1])

def sorcellerie():
  # Diablerie ! Que fait ce code !
  magie("blanche")
  apparition(runes)
  magie("noire")
  pentacle()
  incantation()   
  for page in ouvrir(sommaire(grimoire)):
    magie("blanche")
    apparition(grimoire[page])
    if page != memoire(chaman)-1 :
        magie("noire")
        boniment(manuscrit[page])
    incantation()
  detournement()
  magie("noire")

def detournement():
  # Que se cache t'il dans la boîte ?
  magie("noire")
  apparition("est : \t",baguette(chapeau()))
  #  Toi aussi, deviens théurge ! 

sorcellerie()


Vous pouvez le tester ici : https://workshop.numworks.com/python/cent20/magie01

Fait extraordinaire, ce script arrive à tourner sur une Numworks avec la ROM Stock, c'est à dire en dépit d'une mémoire d'éxécution des scripts python ridiculement faible. Et faire tourner un script python sur une numworks, c'est déjà en soit un sacré tour de magie !

Soutenez la demande pour obtenir 32kB pour le tas python
en approuvant cette demande : https://github.com/numworks/epsilon/pull/1064
> Il suffit de cliquer sur les différentes émoticônes sous le message de debrouxl .
Le pouce pour soutenir, le coeur parce que vous aimez, et la fusée car il faut que ça avance vite !

Bonne année à tous !
Dernière édition par cent20 le 11 Jan 2020, 17:10, édité 2 fois.
Image
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
Avatar de l’utilisateur
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 46.1%
 
Messages: 1013
Images: 64
Inscription: 17 Mai 2012, 09:49
Localisation: Avignon
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: nsi_xyz

Re: Tour de Magie n°01 en Python

Message non lude Larwive » 03 Jan 2020, 10:35

L'explication du tour de magie est cryptée ici, mais je ne vous dirai pas de quelle manière :
PLFQK IBKLJ YOBAB ABMXO QKLKZ ELFPF QIBKL JYOBA BABMX OQKMI RPKLK IBALR YIBKM IRPKM IRPAF ULKXG LRQBA FULKA FSFPB MXOAB RULKO BQOXK ZEBIB KLJYO BABAB MXOQ
À vous de le décrypter !

J'ai un autre tour de magie ici : archives_voir.php?id=2510854
Dernière édition par Larwive le 03 Jan 2020, 15:00, édité 1 fois.
Je dis que je ne dis rien, à part que mes programmes sont disponibles ici. Image

En mettant à profit mes pouvoirs de devin, sachant que j'ai écrit ma signature bien avant ta venue, ton pseudo est Anonymous.:whistle:
Avatar de l’utilisateur
LarwiveProgrammeur
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 88.2%
 
Messages: 282
Images: 20
Inscription: 25 Oct 2018, 17:41
Localisation: Chez moi
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ère année d'école d'ingénieur informatique
GitHub: Larwive

Re: Tour de Magie n°01 en Python

Message non lude Bisam » 03 Jan 2020, 12:42

Franchement, j'adore ce script ! Une obfuscation parfaitement lisible, cela relève de la magie !
Certains trucs pourraient être simplifiés en utilisant la magie de Python lui-même... mais est-ce vraiment important ?
Par exemple, on pourrait écrire :
Code: Tout sélectionner
for page in grimoire:
    magie("blanche")
    apparition(page)
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5665
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Tour de Magie n°01 en Python

Message non lude cent20 » 03 Jan 2020, 14:03

Bisam a écrit:Franchement, j'adore ce script ! Une obfuscation parfaitement lisible, cela relève de la magie !
Certains trucs pourraient être simplifiés en utilisant la magie de Python lui-même... mais est-ce vraiment important ?
Par exemple, on pourrait écrire :
Code: Tout sélectionner
for page in grimoire:
    magie("blanche")
    apparition(page)


J'adore ! :favorite: :favorite: :favorite:

Je ne connais python que depuis Juin dernier, je suis preneur de toutes les bonnes astuces.
Le seul soucis c'est que du coup
Code: Tout sélectionner
if page !=
risque de ne plus marcher vu que page n'est plus un nombre ...
Image
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
Avatar de l’utilisateur
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 46.1%
 
Messages: 1013
Images: 64
Inscription: 17 Mai 2012, 09:49
Localisation: Avignon
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: nsi_xyz

Re: Tour de Magie n°01 en Python

Message non lude cent20 » 03 Jan 2020, 16:16

LePetitMage a écrit:L'explication du tour de magie est cryptée ici, mais je ne vous dirai pas de quelle manière :
PLFQK IBKLJ YOBAB ABMXO QKLKZ ELFPF QIBKL JYOBA BABMX OQKMI RPKLK IBALR YIBKM IRPKM IRPAF ULKXG LRQBA FULKA FSFPB MXOAB RULKO BQOXK ZEBIB KLJYO BABAB MXOQ
À vous de le décrypter !

J'ai un autre tour de magie ici : archives_voir.php?id=2510854


:D

Il ne faut jamais dévoiler les tours de magie d'un magicien, ou alors en faisant soit même un tour de magie !

Je vais en coder d'autre mais il me faut du temps, j'ai deux projets magique compatibles numworks sur le feu. Pour l'instant, je retourne sur mon cours "Interaction client-serveur".
Image
Enseignant de mathématiques et d'informatique. Spécialité NSI : Des projets, des tutos, mais aussi de l'art
Calculatrice NumWorks : Des applications et des jeux, scripts, 📙 Découvrir la NumWorks
Avatar de l’utilisateur
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 46.1%
 
Messages: 1013
Images: 64
Inscription: 17 Mai 2012, 09:49
Localisation: Avignon
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: nsi_xyz

Re: Tour de Magie n°01 en Python

Message non lude Extra44 » 03 Jan 2020, 18:31

cent20 a écrit:
Bisam a écrit:Franchement, j'adore ce script ! Une obfuscation parfaitement lisible, cela relève de la magie !
Certains trucs pourraient être simplifiés en utilisant la magie de Python lui-même... mais est-ce vraiment important ?
Par exemple, on pourrait écrire :
Code: Tout sélectionner
for page in grimoire:
    magie("blanche")
    apparition(page)


J'adore ! :favorite: :favorite: :favorite:

Je ne connais python que depuis Juin dernier, je suis preneur de toutes les bonnes astuces.
Le seul soucis c'est que du coup
Code: Tout sélectionner
if page !=
risque de ne plus marcher vu que page n'est plus un nombre ...

C'est vrai que pour un programmeur...c'est marrant ton code !! :favorite:

Pour ta page qui n'est plus un nombre tu n'as qu'à créer une fonction dernierepage() qui te renvoie la page demandée et donc a faire
If page !=dernierepage() ....
Bon reste ptet a adapter le nom de la fonction ( avec/sans paramètre?)
Avatar de l’utilisateur
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Prochain niv.: 58.4%
 
Messages: 591
Images: 1
Inscription: 20 Jan 2011, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: S.I.


Retourner vers Programmation Python

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 20 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1380 utilisateurs:
>1332 invités
>42 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)