***
La chasse au cerf sous forme séquentielle
Plusieurs étapes de décision
Les joueurs jouent l'un après l'autre
les issues c'est nombre de noeud ^2
Pour résoudre un jeu comme ça on fait de l'induction à rebours
on regarde ce que le joueur a intérêt à faire selon le cas de figure
On met une étoile là où c'est le meilleur choix des deux
Celui qui joue en premier connaît les intérêts du joueur 2 donc le joueur 1 sait ce que le joueur va choisir
il va donc devoir choisir entre plus que 2 choix
il va donc choisir le choix qui maximise ses propres gain
un [[équilibre de nash]] parfait en sous-jeux
C,C et C,D = D1
D,C et D,D = D2
Pour le joueur 2, C,C et D,C ne sont pas des choix crédibles
Le joueur 1 va donc choisir D,D
-> Le jeu c'est le **dilemme du prisonnier**
Il est aussi possible que certains choix favorisent
pour joueur 2 = A,C
## Notes de bas de page
```dataviewjs
// === DONNÉES ===
const page = dv.current();
const file = page.file;
const outlinks = file.outlinks.length;
const inlinks = file.inlinks.length;
const qualite = Math.max(0, Math.min(100, page["qualité"] ?? 0));
// === CALCUL PROGRESSION (0–100) ===
const max_links = 30;
const s_out = Math.min(outlinks / max_links, 1) * 40;
const s_in = Math.min(inlinks / max_links, 1) * 30;
const s_qual = qualite * 0.3;
const total = Math.round(s_out + s_in + s_qual);
// === ICÔNES ===
const iconEmoji =
total <= 25 ? "🌱" :
total <= 50 ? "🌿" :
total <= 75 ? "🌳" :
"🦚";
const iconLabel =
total <= 25 ? "🌱 Graine" :
total <= 50 ? "🌿 Jeune pousse" :
total <= 75 ? "🌳 Arbre mature" :
"🦚 Forêt";
// === MISE À JOUR YAML SANS CRÉER DE NOUVELLES CLÉS ===
const tfile = app.workspace.getActiveFile();
const cache = app.metadataCache.getFileCache(tfile);
// 1. Si pas de frontmatter → on ne touche à rien
if (cache?.frontmatter) {
await app.fileManager.processFrontMatter(tfile, fm => {
// 2. On met à jour seulement si la propriété existe déjà
if (Object.prototype.hasOwnProperty.call(fm, "progression")) {
fm.progression = total;
}
if (Object.prototype.hasOwnProperty.call(fm, "icon")) {
fm.icon = iconEmoji;
}
});
}
// === AFFICHAGE ===
dv.table(
["Liens sortants", "Liens entrants", "Qualité", "Progression"],
[[outlinks, inlinks, `${qualite}/100`, `${iconLabel} — ${total}/100`]]
);
```