223 lines
4.1 KiB
HTML
223 lines
4.1 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Cousin generator</title>
|
|
<style>
|
|
#resultat .phrase:first-letter {
|
|
text-transform: uppercase;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<h1>Générateur de Cousin</h1>
|
|
|
|
<form>
|
|
<input type="button" id="generate" value="Générer" />
|
|
</form>
|
|
|
|
<div id="resultat">
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
function getRandomInt (max, exclude = null) {
|
|
|
|
let nb = null;
|
|
|
|
while (nb == exclude || nb === null) {
|
|
|
|
nb = Math.floor(Math.random() * max);
|
|
}
|
|
|
|
return nb;
|
|
}
|
|
|
|
function a (liste) {
|
|
|
|
return liste[getRandomInt(liste.length)];
|
|
}
|
|
let bouton = document.getElementById("generate");
|
|
|
|
bouton.addEventListener("click", function () {
|
|
|
|
let resultat = document.getElementById("resultat");
|
|
|
|
let sujetSM = [
|
|
"le Capital"
|
|
, "l'être naturel"
|
|
, "le gauchisme"
|
|
, "le spectacle"
|
|
, "le Grand Remplacement"
|
|
];
|
|
|
|
let sujetSF = [
|
|
, "l'aliénation"
|
|
, "la baise tendantielle du taux de profit"
|
|
, "la communauté germanique"
|
|
, "la mise en jachère"
|
|
, "l'actualité"
|
|
];
|
|
|
|
let sujetPM = [
|
|
"les manuscrits de 48"
|
|
];
|
|
|
|
let sujetPF = [
|
|
"les forces contre-révolutionnaires"
|
|
];
|
|
|
|
let attributsDuSujetSM = [
|
|
"de la marchandise"
|
|
, "de l'aliénation"
|
|
, "de la valeur marchande"
|
|
, "du billet vert"
|
|
, "de l'équivalent universel d'échange"
|
|
, "contre-révolutionnaire"
|
|
, "du Capital"
|
|
, "LGBTiste"
|
|
, "spéctaculaire-mardand"
|
|
];
|
|
|
|
let attributsDuSujetSF = [
|
|
"de la marchandise"
|
|
, "de l'aliénation"
|
|
, "de la valeur marchande"
|
|
, "du billet vert"
|
|
, "de l'équivalent universel d'échange"
|
|
, "contre-révolutionnaire"
|
|
, "du Capital"
|
|
, "LGBTiste"
|
|
, "spéctaculaire-mardande"
|
|
];
|
|
|
|
let attributsDuSujetPM = [
|
|
"de la marchandise"
|
|
, "de l'aliénation"
|
|
, "de la valeur marchande"
|
|
, "du billet vert"
|
|
, "de l'équivalent universel d'échange"
|
|
, "contre-révolutionnaires"
|
|
, "du Capital"
|
|
, "LGBTistes"
|
|
, "spéctaculaires-mardands"
|
|
];
|
|
|
|
let attributsDuSujetPF = [
|
|
"de la marchandise"
|
|
, "de l'aliénation"
|
|
, "de la valeur marchande"
|
|
, "du billet vert"
|
|
, "de l'équivalent universel d'échange"
|
|
, "contre-révolutionnaires"
|
|
, "du Capital"
|
|
, "LGBTistes"
|
|
, "spéctaculaires-mardandes"
|
|
];
|
|
|
|
|
|
let verbeSingulier = [
|
|
"produit"
|
|
, "va entraîner"
|
|
, "préfigure"
|
|
, "annonce"
|
|
, "génère"
|
|
];
|
|
|
|
let verbePluriel = [
|
|
"produisent"
|
|
, "vont entraîner"
|
|
, "préfigurent"
|
|
, "annoncent"
|
|
, "génèrent"
|
|
];
|
|
|
|
let complementDuVerbe = [
|
|
"mécaniquement"
|
|
, "in fine"
|
|
];
|
|
|
|
let COD = [
|
|
"un nouveau Rapalo"
|
|
, "la mise en jachère"
|
|
, "les guerres du Capital"
|
|
, "la communauté de l'Être"
|
|
, "la crise finale du Capitalisme"
|
|
];
|
|
|
|
let CCL = [
|
|
"de Brest à Vladivoskov"
|
|
, "en Europe"
|
|
, "partout dans le monde"
|
|
];
|
|
|
|
let CCT = [
|
|
"en 2022"
|
|
];
|
|
|
|
let phrase = [
|
|
"À bas l'État."
|
|
, "À bas la marchandise."
|
|
, "Il faut lire."
|
|
]
|
|
|
|
function genererPhrase () {
|
|
|
|
s = '<p class="phrase">';
|
|
|
|
// Sujet
|
|
|
|
let auPluriel = getRandomInt(2);
|
|
let auFeminin = getRandomInt(2);
|
|
|
|
s += auPluriel ?
|
|
(auFeminin ? a(sujetPF) : a(sujetPM))
|
|
: (auFeminin ? a(sujetSF) : a(sujetSM));
|
|
|
|
let attributsDuSujet = auPluriel ?
|
|
(auFeminin ? attributsDuSujetPF : attributsDuSujetPM)
|
|
: (auFeminin ? attributsDuSujetSF : attributsDuSujetSM);
|
|
|
|
let as_1 = getRandomInt(attributsDuSujet.length);
|
|
s += " " + attributsDuSujet[as_1];
|
|
let has2AS = getRandomInt(2);
|
|
let as_2 = getRandomInt(attributsDuSujet.length, as_1);
|
|
s += has2AS ? (" " + attributsDuSujet[as_2]) : "";
|
|
|
|
// Verbe
|
|
|
|
s += " " + (auPluriel ? a(verbePluriel) : a(verbeSingulier));
|
|
|
|
s += " " + a(complementDuVerbe);
|
|
|
|
// Compléments
|
|
|
|
s += " " + a(COD);
|
|
|
|
let hasCCL = getRandomInt(2);
|
|
|
|
s += hasCCL ? " " + a(CCL) : "";
|
|
|
|
let hasCCT = getRandomInt(2);
|
|
s += hasCCT ? " " + a(CCT) : "";
|
|
|
|
s += '. </p>';
|
|
|
|
return s;
|
|
}
|
|
|
|
resultat.innerHTML += genererPhrase();
|
|
resultat.innerHTML += genererPhrase();
|
|
resultat.innerHTML += genererPhrase();
|
|
resultat.innerHTML += genererPhrase();
|
|
resultat.innerHTML += genererPhrase();
|
|
resultat.innerHTML += genererPhrase();
|
|
|
|
|
|
resultat.innerHTML += a(phrase);
|
|
resultat.innerHTML += " ";
|
|
|
|
});
|
|
</script>
|
|
|
|
</body>
|
|
</html> |