Commit 8c57608c authored by Alexandre (erdnaxe)'s avatar Alexandre (erdnaxe) 🎇

Initial commit

parents
.PHONY: clean
INPUT=article.md
OUTPUT=article.pdf
DEP=$(wildcard *.sty *.jpg *.png)
$(OUTPUT): $(INPUT) $(DEP)
pandoc $(INPUT) -o $(OUTPUT)
clean:
rm -f $(OUTPUT)
---
title: Problème 1. Tours de Hanoï
subtitle: SAPHIRE - 104
author: Alexandre IOOSS
toc: no
lang: fr-FR
papersize: a4
geometry: left=2cm, right=2cm, top=3cm, bottom=3cm
classoption: twoside
documentclass: scrartcl
numbersections: no
---
Le but est de lister les 127 mouvements pour déplacer les disques de la tour A à B.
```python
class Hanoi:
def __init__(self):
self.tours = {
'A': ['Violet', 'Indigo', 'Bleu', 'Vert', 'Jaune', 'Orange', 'Rouge'],
'B': [],
'C': []
}
self.numero_coup = 1
def _deplacer_un_disque(self, tour_initiale, tour_finale):
"""Déplace le disque en haut de la tour initiale vers la tour finale"""
self.tours[tour_finale].append(self.tours[tour_initiale].pop())
couleur_disque = self.tours[tour_finale][-1]
print(f"Coup {self.numero_coup} : " +
f"{couleur_disque} de {tour_initiale} à {tour_finale}")
self.numero_coup += 1
def deplacer_disques(self, n, tour_initiale, tour_finale, tour_temporaire):
"""Algorithme récursif qui résout les tours de Hanoï"""
# Cas de terminaison s'il n'y a qu'un disque à déplacer
if n == 1:
self._deplacer_un_disque(tour_initiale, tour_finale)
# On déplace les n-1 disques vers l'emplacement temporaire
self.deplacer_disques(n - 1, tour_initiale, tour_temporaire,
tour_finale)
# Déplace le disque libéré
self._deplacer_un_disque(tour_initiale, tour_finale)
# Repose les n-1 disques au dessus
self.deplacer_disques(n - 1, tour_temporaire, tour_finale,
tour_initiale)
```
## Test de l'algorithme
```python
hanoi = Hanoi()
hanoi.deplacer_disques(7, 'A', 'B', 'C')
```
Coup 1 : Rouge de A à B
Coup 2 : Orange de A à C
Coup 3 : Rouge de B à C
...
.PHONY: clean
INPUT=article.md
OUTPUT=article.pdf
DEP=$(wildcard *.sty *.jpg *.png)
$(OUTPUT): $(INPUT) $(DEP)
pandoc $(INPUT) -o $(OUTPUT)
clean:
rm -f $(OUTPUT)
---
title: Crous de quelque chose
subtitle: SAPHIRE - 42
toc: yes
lang: fr-FR
papersize: a4
geometry: left=2cm, right=2cm, top=3cm, bottom=3cm
classoption: twocolumn,twoside
documentclass: scrartcl
numbersections: yes
---
# Titre 1
## Titre 2
Bla bla bla...
.PHONY: clean
INPUT=slides.md
OUTPUT=slides.pdf
DEP=$(wildcard *.sty *.jpg *.png)
$(OUTPUT): $(INPUT) $(DEP)
pandoc -st beamer $(INPUT) -o $(OUTPUT)
clean:
rm -f $(OUTPUT)
---
title: Exemple de présentation
subtitle: avec le thème Cr@ns
author: Alexandre IOOSS
toc: yes
lang: fr-FR
logo: logo-crans.pdf
header-includes: |
\usetheme{Madrid}
\definecolor{a}{HTML}{df0e24}
\setbeamercolor{structure}{fg=a!90!black}
---
# Ma section
## Ma première frame
- c'est bien
- et en plus ce n'est pas verbeux
.PHONY: clean
INPUT=slides.md
OUTPUT=slides.pdf
DEP=$(wildcard *.sty *.jpg *.png)
$(OUTPUT): $(INPUT) $(DEP)
pandoc -st beamer $(INPUT) -o $(OUTPUT)
clean:
rm -f $(OUTPUT)
---
title: Exemple de présentation
subtitle: avec le thème ENS Paris-Saclay
author: Alexandre IOOSS
toc: yes
lang: fr-FR
logo: logo-ens.pdf
header-includes: |
\usetheme{Madrid}
\definecolor{a}{HTML}{00778b}
\setbeamercolor{structure}{fg=a!90!black}
---
# Ma section
## Ma première frame
- c'est bien
- et en plus ce n'est pas verbeux
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment