fusion/index.html

189 lines
8.6 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/png" href="logo.png" />
<title>FUSION</title>
<script defer data-domain="fusion.boulbicorp.fr" src="https://plausible.boulbicorp.fr/js/script.js"></script>
<style>
body {
font-family: Arial, sans-serif;
font-size: 2rem;
text-align: center;
background-color: #e0e0e0;
color: #333;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 100vh;
}
h1 {
font-size: 3rem;
color: #007BFF;
}
p {
font-size: 1.5rem;
color: #555;
margin-bottom: 0px;
}
main {
margin-top: 2rem;
}
input {
text-align: center;
font-size: 3rem;
margin-bottom: 1rem;
padding: 0.5rem;
width: 80%;
max-width: 500px;
border: 2px solid #ccc;
border-radius: 5px;
}
button {
font-size: 2rem;
padding: 0.5rem 1rem;
border: none;
border-radius: 5px;
background-color: #007BFF;
color: #fff;
cursor: pointer;
transition: background-color 0.3s;
}
button:hover {
background-color: #0056b3;
}
a {
color: #007BFF;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
@media (max-width: 1000px) {
body {
width: 100%;
}
input {
font-size: 4rem;
}
}
#nb_input {
width: 3rem;
font-size: 1.5rem;
}
</style>
</head>
<body>
<h1>FUSION</h1>
<p>Trouvez l'inspiration et les idées pour vos projets grâce au subtil mélange de deux mots aléatoires.</p>
<p>Nombre de mots a générer : <input id="nb_input" type="number" min="1"></p>
<main>
<input type="text" disabled />
<input type="text" disabled />
<br>
<button onclick="generer()">Générer</button>
</main>
<p><a href="/FUSION.apk">Telechargez</a> l'apk de l'application.</p>
<p><a onclick="telecharger()">Telechargez</a> la liste des mots.</p>
<p>Site inspiré de : <a href="https://www.youtube.com/watch?v=yEFT5zqXtoY">Ockam Razor</a></p>
<script>
var mots = [
// Ockam Razor
"vollaile", "rose", "bouche", "visuel", "conduire", "écrire", "légume", "ange", "ampoule", "magie", "tour", "société", "légende", "village",
"gâteau", "colère", "sang", "lumière", "ville", "oreille", "muscle", "secrétaire", "viande", "dragon", "corde", "glace", "astéroïde", "oeil",
"diriger", "drapeau", "génie", "rouge", "jambon", "toboggan", "police", "humeur", "rire", "perdu", "ciel", "metal", "armes", "chirurgie",
"invention", "trou noir", "palais", "musique", "fusée", "samouraï", "porte", "revolution", "os", "vie", "lunnettes", "transformer", "sphinx", "course",
"espace", "prisonnier", "coeur", "odeur", "ninja", "social", "chat", "soleil", "langue", "baignoire", "volcan", "geisha", "message", "serpent",
"pont", "étoile", "océan", "miroir", "chirurgie esthétique", "arc en ciel", "voleur", "rêve", "loup garou", "technologie",
// Dico
"araignée", "gravité", "antigravité", "balise", "bibliothèque", "laser", "canon", "cerveau", "cave", "grotte", "force", "champ", "champ de force",
"astronaute", "ordinateur", "cyber", "matière", "difforme", "desert", "nuit", "argent", "fusion", "gaz", "carburant", "humain", "monde", "navigation",
"saut", "hyper", "intelligence artificielle", "pensée", "mélange", "mécanique", "mecha", "titan", "univers", "nano", "alien", "apocalypse", "psy",
"race", "réalité", "virtuel", "réplique", "robot", "sabre", "katana", "fumée", "berserk", "chaos", "démesure", "illusions", "démon", "vampire",
"élément", "fleur", "sorcier", "farfadet", "kraken", "pirates", "trésor", "sable", "normal", "oiseau", "ténèbre", "vision", "mer",
// Custom
"denrée", "fortune", "math", "mental", "dévorer", "rare", "gemme", "diamant", "or", "féroce", "guerre", "mort", "pays", "mythe", "rune", "château",
"parler", "écrire", "dire", "raconter", "chanter", "invoquer", "descente", "enfer", "machine", "souvenir", "seul", "courir", "vide", "chevalier",
"agriculture", "ferme", "plante", "moyen âge", "contrôle", "lien", "ensemble", "dé", "aléatoire", "hasard", "pari", "appel", "saut", "voler",
"création", "imaginaire", "four", "bois", "hélicoptère", "repos", "repas", "nourriture", "cuisiner", "couper", "ego", "surpasser", "super", "miel",
"flamme", "enfant", "sauver", "programme", "voleur", "banque", "gouverner", "famille", "groupe", "coopérer", "police", "armée", "tank", "avion",
"chasse", "pêche", "science", "mouvement", "statue", "créature", "son", "bureau", "travail", "mythologie", "livre", "feuille", "artifice", "explosion",
// Le D
"effondrement ", "empreinte", "fragile", "horizon", "blessure", "otage", "tapis", "inspecter", "copie", "fraction", "siamois", "arome", "cible",
"rivage", "relation", "harem", "mutation", "cadre", "loup", "effacer", "cavalier", "religion", "hallucination", "faux", "bocal", "ancien", "ancêtre",
"transport", "verre",
];
var nbInput = document.getElementById("nb_input");
nbInput.value = 2;
nbInput.max = mots.length - 1;
nbInput.onchange = (state) => {
var val = nbInput.value;
var inputs = document.getElementsByTagName("main")[0].getElementsByTagName("input");
if (val < 1) {
val = 1;
nbInput.value = 1;
}
if (val > mots.length - 1) {
val = mots.length - 1;
nbInput.value = mots.length - 1;
}
if (val > inputs.length)
addInput(inputs, val - inputs.length);
else if (val < inputs.length)
removeInput(inputs, inputs.length - val);
}
function removeInput(inputs, n) {
for (let i=0; i<n; i++) {
inputs[inputs.length-1].remove();
}
}
function addInput(inputs, n) {
var begin = inputs.length;
for (let i=0; i<n; i++) {
inputs[inputs.length-1].insertAdjacentHTML("afterend", '<input type="text" disabled />');
}
generer(begin);
}
function doublon(mot, inputs) {
for (let i=0; i<inputs.length-1; i++) {
if (inputs[i].value == mot) return true;
}
return false;
}
function generer(begin = 0) {
var inputs = document.getElementsByTagName("main")[0].getElementsByTagName("input");
for (let i=begin; i<inputs.length; i++) {
var mot = "";
do {
mot = mots[Math.floor(Math.random() * mots.length)];
} while (doublon(mot, inputs));
inputs[i].value = mot;
}
}
generer();
function telecharger() {
var el = document.createElement('a');
el.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(JSON.stringify(mots, null, 2)));
el.setAttribute('download', 'fusion_liste_mots.json');
el.style.display = 'none';
document.body.appendChild(el);
el.click();
document.body.removeChild(el);
}
</script>
</body>
</html>