π
<-

Tour de Magie n°01 en Python

Tour de Magie n°01 en Python

Unread postby 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: Select all
# 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 !
Last edited by cent20 on 11 Jan 2020, 17:10, edited 2 times in total.
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
User avatar
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 48.5%
 
Posts: 1050
Images: 67
Joined: 17 May 2012, 09:49
Location: Avignon
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: nsi_xyz

Re: Tour de Magie n°01 en Python

Unread postby 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
Last edited by Larwive on 03 Jan 2020, 15:00, edited 1 time in total.
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 ClaudeBot [spider].:whistle:
User avatar
LarwiveProgrammeur
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 89.6%
 
Posts: 283
Images: 20
Joined: 25 Oct 2018, 17:41
Location: Chez moi
Gender: Male
Calculator(s):
MyCalcs profile
Class: Classe comme jamais.
GitHub: Larwive

Re: Tour de Magie n°01 en Python

Unread postby 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: Select all
for page in grimoire:
    magie("blanche")
    apparition(page)
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Tour de Magie n°01 en Python

Unread postby cent20 » 03 Jan 2020, 14:03

Bisam wrote: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: Select all
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: Select all
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
User avatar
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 48.5%
 
Posts: 1050
Images: 67
Joined: 17 May 2012, 09:49
Location: Avignon
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: nsi_xyz

Re: Tour de Magie n°01 en Python

Unread postby cent20 » 03 Jan 2020, 16:16

LePetitMage wrote: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
User avatar
cent20VIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 48.5%
 
Posts: 1050
Images: 67
Joined: 17 May 2012, 09:49
Location: Avignon
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: nsi_xyz

Re: Tour de Magie n°01 en Python

Unread postby Extra44 » 03 Jan 2020, 18:31

cent20 wrote:
Bisam wrote: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: Select all
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: Select all
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?)
User avatar
Extra44Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 58.4%
 
Posts: 591
Images: 1
Joined: 20 Jan 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: S.I.


Return to Programmation Python

Who is online

Users browsing this forum: ClaudeBot [spider] and 1 guest

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
904 utilisateurs:
>875 invités
>22 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)