tous les textes

This commit is contained in:
Didictateur 2026-02-25 09:03:22 +01:00
parent 089f20f686
commit 0b2669f776
5 changed files with 287 additions and 3 deletions

View file

@ -18,9 +18,9 @@
<li><a href="/frontend/pages/riichi/chap6.html">Chapitre 6 : Annoncer la victoire</a></li>
<li><a href="/frontend/pages/riichi/chap7.html">Chapitre 7 : Le vent du joueur</a></li>
<li><a href="/frontend/pages/riichi/chap8.html">Chapitre 8 : Les Yakus</a></li>
<li><a href="">Chapitre 9 : Le riichi</a></li>
<li><a href="">Chapitre 10 : Le furiten</a></li>
<li><a href="">Chapitre 11 : Une partie complète (complète ?)</a></li>
<li><a href="/frontend/pages/riichi/chap9.html">Chapitre 9 : Le riichi</a></li>
<li><a href="/frontend/pages/riichi/chap10.html">Chapitre 10 : Le furiten</a></li>
<li><a href="/frontend/pages/riichi/chap11.html">Chapitre 11 : Une partie complète (complète ?)</a></li>
</ul>
</li>
<li class="dropdown">

View file

@ -171,6 +171,53 @@ const texts = {
<br>
Une liste exhaustive des yakus les plus courants au moins courants sont présentés dans<br>
l'onglet dédié.
`,
chap9:`
Le Riichi est le yaku le plus important du jeu ! Ce n'est pas pour rien<br>
que ça s'appelle ainsi.<br>
<br>
Le principe est très simple. Lorsqu'une personne est en Tenpai (à une tuile<br>
de la victoire), et que sa main est FERMÉE, alors il peut déclarer le riichi.<br>
À ce moment , elle ne peut plus changer sa main: soit elle gagne par Tsumo<br>
ou Ron, soit elle défausse une tuile qui fait gagner quelqu'un d'autre.<br>
<br>
À partir de maintenant, il va donc falloir bien réfléchir aux appels<br>
(pon et chii), puisque cela ouvre la main et fixe des groupes, et va donc<br>
restreindre les yakus qui seront réalisables.
`,
chap10:`
À ce stade de l'histoire, vous conaissez toutes les règles principales pour jouer<br>
au Riichi. Mais on va s'attarder sur le cas du Furiten. Pour faire court, c'est<br>
l'inderdiction pour une personne de faire Ron si elle aurait déjà avoir gagné.<br>
<br>
Il y a deux cas:<br>
- Une des tuiles de ta défausse pourrait compléter ta main<br>
- Tu refuses de Ron quelqu'un<br>
<br>
Dans le premier cas, tu es foutu. Tu as l'interdiction de faire un Ron, et tu ne<br>
peux gagner qu'avec un Tsumo. Dans le second cas, c'est un furiten temporaire,<br>
et il faut attendre ton tour pour pouvoir Ron de nouveau.<br>
<br>
Précisions:<br>
- Même si une tuile ne te donne pas de yaku, du momentqu'elle te permet de<br>
rendre ta main valide, il y a la question du furiten<br>
- Une tuile t'empêche de faire ron sur N'IMPORTE QU'ELLE tuile<br>
<br>
L'objectif derrière cette règle est d'empêcher de viser quelqu'un spécifiquement.<br>
<br>
Cela permet également de savoir quelles tuiles peuvent être défausser pour ne pas<br>
faire gagner quelqu'un d'autre.
`,
chap11:`
Ça y est, tu as fait le plus gros travail ! Félicitation<br>
d'être arrivé jusqu'ici !<br>
<br>
Après t'être entrainé à jouer des parties, je teconseil<br>
très vivement de lire la section Scoring, a minima les<br>
deux premiers chapitres
`
},

View file

@ -0,0 +1,79 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Tuto Riichi</title>
<link rel="stylesheet" href="/frontend/css/style.css">
<link rel="stylesheet" href="/frontend/css/speech-bubble.css">
<link rel="stylesheet" href="/frontend/css/hand.css">
<style>
#menu {
position: relative;
z-index: 10;
}
#mascotte {
position: absolute;
top: 670px;
right: 100px;
z-index: 999;
transform: scaleX(-1);
cursor: pointer;
}
#mascotte img {
width: 250px;
height: auto;
display: block;
}
.speech-bubble {
position: absolute;
top: 100px;
right: 170px;
z-index: 1;
display: none;
}
.speech-bubble.visible {
display: flex;
}
h2 {
text-align: center;
margin-top: 40px;
margin-bottom: 20px;
color: white;
}
</style>
</head>
<body>
<div id="menu"></div>
<div class="speech-bubble">
<div class="speech-text" id="speech-text"></div>
</div>
<div id="mascotte"></div>
<script src="/frontend/js/fr/texts.js"></script>
<script>
// Charger le menu
fetch('/components/menu.html')
.then(r => r.text())
.then(html => document.getElementById('menu').innerHTML = html);
// Afficher la mascotte et le texte
const mascolteEl = document.getElementById('mascotte');
mascolteEl.innerHTML = '<img src="/img/tilineau/idle.png" alt="Tilineau">';
document.getElementById('speech-text').innerHTML = texts.riichi.chap10;
// Toggle bulle de dialogue au clic sur la mascotte
const speechBubble = document.querySelector('.speech-bubble');
mascolteEl.addEventListener('click', () => {
speechBubble.classList.toggle('visible');
mascolteEl.innerHTML = speechBubble.classList.contains('visible')
? '<img class="explaining" src="/img/tilineau/explaining.png" alt="Tilineau">'
: '<img src="/img/tilineau/idle.png" alt="Tilineau">';
});
</script>
</body>
</html>

View file

@ -0,0 +1,79 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Tuto Riichi</title>
<link rel="stylesheet" href="/frontend/css/style.css">
<link rel="stylesheet" href="/frontend/css/speech-bubble.css">
<link rel="stylesheet" href="/frontend/css/hand.css">
<style>
#menu {
position: relative;
z-index: 10;
}
#mascotte {
position: absolute;
top: 670px;
right: 100px;
z-index: 999;
transform: scaleX(-1);
cursor: pointer;
}
#mascotte img {
width: 250px;
height: auto;
display: block;
}
.speech-bubble {
position: absolute;
top: 500px;
right: 170px;
z-index: 1;
display: none;
}
.speech-bubble.visible {
display: flex;
}
h2 {
text-align: center;
margin-top: 40px;
margin-bottom: 20px;
color: white;
}
</style>
</head>
<body>
<div id="menu"></div>
<div class="speech-bubble">
<div class="speech-text" id="speech-text"></div>
</div>
<div id="mascotte"></div>
<script src="/frontend/js/fr/texts.js"></script>
<script>
// Charger le menu
fetch('/components/menu.html')
.then(r => r.text())
.then(html => document.getElementById('menu').innerHTML = html);
// Afficher la mascotte et le texte
const mascolteEl = document.getElementById('mascotte');
mascolteEl.innerHTML = '<img src="/img/tilineau/idle.png" alt="Tilineau">';
document.getElementById('speech-text').innerHTML = texts.riichi.chap11;
// Toggle bulle de dialogue au clic sur la mascotte
const speechBubble = document.querySelector('.speech-bubble');
mascolteEl.addEventListener('click', () => {
speechBubble.classList.toggle('visible');
mascolteEl.innerHTML = speechBubble.classList.contains('visible')
? '<img class="explaining" src="/img/tilineau/explaining.png" alt="Tilineau">'
: '<img src="/img/tilineau/idle.png" alt="Tilineau">';
});
</script>
</body>
</html>

View file

@ -0,0 +1,79 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Tuto Riichi</title>
<link rel="stylesheet" href="/frontend/css/style.css">
<link rel="stylesheet" href="/frontend/css/speech-bubble.css">
<link rel="stylesheet" href="/frontend/css/hand.css">
<style>
#menu {
position: relative;
z-index: 10;
}
#mascotte {
position: absolute;
top: 670px;
right: 100px;
z-index: 999;
transform: scaleX(-1);
cursor: pointer;
}
#mascotte img {
width: 250px;
height: auto;
display: block;
}
.speech-bubble {
position: absolute;
top: 350px;
right: 170px;
z-index: 1;
display: none;
}
.speech-bubble.visible {
display: flex;
}
h2 {
text-align: center;
margin-top: 40px;
margin-bottom: 20px;
color: white;
}
</style>
</head>
<body>
<div id="menu"></div>
<div class="speech-bubble">
<div class="speech-text" id="speech-text"></div>
</div>
<div id="mascotte"></div>
<script src="/frontend/js/fr/texts.js"></script>
<script>
// Charger le menu
fetch('/components/menu.html')
.then(r => r.text())
.then(html => document.getElementById('menu').innerHTML = html);
// Afficher la mascotte et le texte
const mascolteEl = document.getElementById('mascotte');
mascolteEl.innerHTML = '<img src="/img/tilineau/idle.png" alt="Tilineau">';
document.getElementById('speech-text').innerHTML = texts.riichi.chap9;
// Toggle bulle de dialogue au clic sur la mascotte
const speechBubble = document.querySelector('.speech-bubble');
mascolteEl.addEventListener('click', () => {
speechBubble.classList.toggle('visible');
mascolteEl.innerHTML = speechBubble.classList.contains('visible')
? '<img class="explaining" src="/img/tilineau/speaking.png" alt="Tilineau">'
: '<img src="/img/tilineau/idle.png" alt="Tilineau">';
});
</script>
</body>
</html>