柔道 : Différence entre versions

De Design numérique
Aller à : navigation, rechercher
(2) Code)
Ligne 26 : Ligne 26 :
  
 
[[Fichier:Code.png|vignette|gauche|le premier code]]
 
[[Fichier:Code.png|vignette|gauche|le premier code]]
 +
→ This script takes a random line from one file, a random line from another file and put them together in another file
 +
 +
* put the number of lines of file 1 in a variable
 +
* choose a random number between 1 and the number of lines from file 1
 +
* do the same things with file 2
 +
* take the first "random_line1" lines from file 1, then take the last line of the result, then put it in WazaSelection.txt if WazaSelection.txt already exists, its content is erased before.
 +
* take the first "random_line2" lines from file 2, then take the last line of the result, then append it to WazaSelection.txt
 +
* print the results to the console
 
[[Fichier:Calls.png|vignette|gauche|exécution du code]]
 
[[Fichier:Calls.png|vignette|gauche|exécution du code]]
 
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>

Version du 18 décembre 2018 à 10:51

Projet initial

OK, le projet initial était de lier la pratique du terminal avec un sujet que j'aborde dans un autre cours, à savoir le judo.

Je pensais d'abord traduire les sons produits par un judoka chutant suite à l'exécution des techniques propres au kata. https://www.youtube.com/watch?v=YOcVfmmMBLY

Kano Shihan projetant Yoshitsugu YAMASHITA avec Uki-goshi

Mais je ne savais pas comment aborder le terminal dans cette optique là. Et je n'avais pas encore pris réellement en main le programme, donc même avec les recherches sur le net, mes maigres essais se sont très vite révélés être des échecs, de quoi baisser les bras...

Mais c'est en m’intéressant aux projets des autres étudiants que j'ai pu découvrir les possibilités qui s'offraient grâce au terminal. C'est le projet de Léna Bruyère qui m'a le plus inspiré et décidé de travailler sur la notion d'aléatoire.

En effet, l'idée maintenant est de faire décider par la machine l’exécution d'une technique de judo debout suivie d'une technique de judo au sol, le tout aléatoirement. Excellent exercice pour les judokas à court d'idée d'enchaînement.

Pour ce faire, la première étape du projet est de lister l'ensemble des techniques de Nage-waza (68) et de Katame-waza (32), respectivement les techniques de projections et les techniques de contrôles.

Les principales techniques de projections en judo, poster.

La seconde est de rédiger un script qui irait dans un premier temps chercher aléatoirement un technique dans le premier fichier Nage-waza et dans un deuxième temps dans le fichier Katame-waza.

Et en pratique?

1) Documents texte

La première chose faite était la création des documents textes (ci-dessous):

liste des techniques de judo debout
liste des techniques de judo au sol






























































2) Code

Ensuite il fallait déterminer la commande qui permetterait de damander au terminal de selectionner aléatoirement une technique du groupe Nage-waza et une autre du groupe Katame-waza. Pour se faire j'ai demandé à mon entourage de m'aider et on a réussi à créer un code (complexe) qui fonctionnait!

le premier code

→ This script takes a random line from one file, a random line from another file and put them together in another file

  • put the number of lines of file 1 in a variable
  • choose a random number between 1 and the number of lines from file 1
  • do the same things with file 2
  • take the first "random_line1" lines from file 1, then take the last line of the result, then put it in WazaSelection.txt if WazaSelection.txt already exists, its content is erased before.
  • take the first "random_line2" lines from file 2, then take the last line of the result, then append it to WazaSelection.txt
  • print the results to the console
exécution du code
































Ici, le code est simplifiable donc avec Alexia, nous avons chercher la manière la plus simple d'exécuter ma demande. Après quelques recherches et test, le code simplifié ne faisait plus qu'une ligne et ne prenait même pas la forme d'un script!

test simplification du code (1)

→ ici, en plus de la commande cat qui sert à afficher, on a utilisé la commande shuf qui sert à déterminer la selection aléatoire par l'ordinateur
→ pour que le terminal ne selectionne qu'une seule technique je lui suggère -n1. Ainsi, il ne va selectionner qu'une seule ligne du texte initial. D'où l'importance de bien revenir à la ligne à chaque technique différente dans le fichier texte.