This commit is contained in:
Justine Beau 2024-12-10 15:02:29 +01:00
commit 5e19d170c3
6 changed files with 96 additions and 246 deletions

View file

@ -6,7 +6,7 @@
"button": { "button": {
} }
}, },
"boost": 30, "boost": 2,
"cout": 10, "cout": 10,
"borne": 5, "borne": 5,
"evolution":0, "evolution":0,
@ -21,8 +21,8 @@
} }
}, },
"boost": 10, "boost": 5,
"cout": 10, "cout": 100,
"borne": 5, "borne": 5,
"evolution":1, "evolution":1,
"css_id": "t2.css", "css_id": "t2.css",
@ -37,7 +37,7 @@
} }
}, },
"boost": 10, "boost": 10,
"cout": 10, "cout": 1000,
"borne": 10, "borne": 10,
"evolution":2, "evolution":2,
"css_id": "t3.css", "css_id": "t3.css",
@ -51,8 +51,8 @@
} }
}, },
"boost": 10, "boost": 20,
"cout": 10, "cout": 10000,
"borne": 10, "borne": 10,
"evolution":3, "evolution":3,
"css_id": "t4.css", "css_id": "t4.css",
@ -66,8 +66,8 @@
} }
}, },
"boost": 10, "boost": 30,
"cout": 10, "cout": 100000,
"borne": 10, "borne": 10,
"evolution":3, "evolution":3,
"css_id": "t5.css", "css_id": "t5.css",
@ -81,8 +81,8 @@
} }
}, },
"boost": 10, "boost": 40,
"cout": 10, "cout": 1000000,
"borne": 10, "borne": 10,
"evolution":4, "evolution":4,
"css_id": "t6.css", "css_id": "t6.css",
@ -96,8 +96,8 @@
} }
}, },
"boost": 10, "boost": 50,
"cout": 10, "cout": 10000000,
"borne": 10, "borne": 10,
"evolution":5, "evolution":5,
"css_id": "t7.css", "css_id": "t7.css",
@ -111,8 +111,8 @@
} }
}, },
"boost": 10, "boost": 60,
"cout": 10, "cout": 1000000000,
"borne": 10, "borne": 10,
"evolution":6, "evolution":6,
"css_id": "t8.css", "css_id": "t8.css",
@ -126,8 +126,8 @@
} }
}, },
"boost": 10, "boost": 70,
"cout": 10, "cout": 10000000000,
"borne": 10, "borne": 10,
"evolution":7, "evolution":7,
"css_id": "t9.css", "css_id": "t9.css",
@ -138,53 +138,53 @@
"collegues": { "collegues": {
"ada_lovelace": { "ada_lovelace": {
"nom": "Ada Lovelace", "nom": "Ada Lovelace",
"cout": 10, "cout": 15,
"revenu_passif": 10 "revenu_passif": 0.1
}, },
"george_boole": { "george_boole": {
"nom": "George Boole", "nom": "George Boole",
"cout": 10, "cout": 100,
"revenu_passif": 10 "revenu_passif": 1
}, },
"grace_hopper": { "grace_hopper": {
"nom": "Grace Hopper", "nom": "Grace Hopper",
"cout": 10, "cout": 1100,
"revenu_passif": 10 "revenu_passif": 8
}, },
"jean_bartik": { "jean_bartik": {
"nom": "Jean Bartik", "nom": "Jean Bartik",
"cout": 10, "cout": 12000,
"revenu_passif": 10 "revenu_passif": 47
}, },
"claude_shannon": { "claude_shannon": {
"nom": "Claude Shannon", "nom": "Claude Shannon",
"cout": 10, "cout": 130000,
"revenu_passif": 10 "revenu_passif": 260
}, },
"alan_turing": { "alan_turing": {
"nom": "Alan Turing", "nom": "Alan Turing",
"cout": 10, "cout": 1400000,
"revenu_passif": 10 "revenu_passif": 1400
}, },
"maragaret_hamilton": { "maragaret_hamilton": {
"nom": "Margaret Hamilton", "nom": "Margaret Hamilton",
"cout": 10, "cout": 20000000,
"revenu_passif": 10 "revenu_passif": 7800
}, },
"tim_berners_lee": { "tim_berners_lee": {
"nom": "Tim Berner-Lee", "nom": "Tim Berner-Lee",
"cout": 10, "cout": 100000000,
"revenu_passif": 10 "revenu_passif": 44000
}, },
"dennis_ritchie": { "dennis_ritchie": {
"nom": "Dennis Ritchie", "nom": "Dennis Ritchie",
"cout": 10, "cout": 500000000,
"revenu_passif": 10 "revenu_passif": 260000
}, },
"linus_torvald": { "linus_torvald": {
"nom": "Linus Torvald", "nom": "Linus Torvald",
"cout": 10, "cout": 1000000000,
"revenu_passif": 10 "revenu_passif": 1600000
} }
} }
} }

View file

@ -1,195 +0,0 @@
{
"technologies": {
"html": {
"nom": "HTML",
"elements": {
"button": {
"nom": "button",
"cout": 30,
"boost": 10,
"borne": 20
}
},
"boost": 30,
"cout": 10,
"borne": 5,
"evolution":0,
"css_id": "t1.css",
"narration": "C'est le début de l'aventure web ! HTML, le langage de base, permet de structurer des pages avec des titres, des paragraphes, des listes, et surtout des boutons pour interagir avec les utilisateurs. Vous avez posé les premières pierres de l'Internet. Le web commence tout juste à s'ouvrir au monde."
},
"html+": {
"nom": "HTML+",
"elements": {
"button": {
}
},
"boost": 10,
"cout": 10,
"borne": 5,
"evolution":1,
"css_id": "t2.css",
"narration": "L'HTML+ améliore ce que vous avez construit. Plus de possibilités pour styliser votre page, et le pouvoir d'ajouter des formulaires et des éléments interactifs. Le web devient plus attrayant et engageant, prêt à accueillir un public plus large !"
},
"html_2.0": {
"nom": "HTML 2.0",
"elements": {
"button": {
}
},
"boost": 10,
"cout": 10,
"borne": 10,
"evolution":2,
"css_id": "t3.css",
"narration": "HTML 2.0 est arrivé ! Ce n'est pas juste une mise à jour, c'est une révolution. Avec cette version, vous pouvez organiser vos pages avec des tableaux et ajouter des formulaires interactifs. Le web devient un lieu où l'on peut entrer et interagir, et non seulement lire. Bienvenue dans l'ère de l'interaction !"
},
"html_3.2": {
"nom": "HTML 3.2",
"elements": {
"button": {
}
},
"boost": 10,
"cout": 10,
"borne": 10,
"evolution":3,
"css_id": "t4.css",
"narration": "L'HTML 3.2 marque un tournant décisif dans l'histoire du web. Grâce à l'introduction de la balise `<img>`, vous pouvez désormais ajouter des images à vos pages ! Le web devient visuel et prend vie avec des images. Vous êtes sur le point de changer la façon dont les utilisateurs perçoivent Internet."
},
"html_4.01": {
"nom": "HTML 4.01",
"elements": {
"button": {
}
},
"boost": 10,
"cout": 10,
"borne": 10,
"evolution":3,
"css_id": "t5.css",
"narration": "HTML 4.01 a ouvert la voie à une nouvelle ère de personnalisation du design web. L'ajout des feuilles de style CSS a permis de donner libre cours à la créativité. Vous avez désormais un contrôle total sur l'apparence de vos pages, et le web devient plus dynamique et élégant."
},
"xhtml_4.01": {
"nom": "XHTML 4.01",
"elements": {
"button": {
}
},
"boost": 10,
"cout": 10,
"borne": 10,
"evolution":4,
"css_id": "t6.css",
"narration": "XHTML 4.01 améliore encore la norme HTML, avec une plus grande rigueur et des règles de codage strictes. Vous commencez à créer des pages web plus robustes et accessibles, prêtes à supporter un contenu riche et diversifié. Le web devient plus stable et professionnel."
},
"xhtml_1.0": {
"nom": "XHTML 1.0",
"elements": {
"button": {
}
},
"boost": 10,
"cout": 10,
"borne": 10,
"evolution":5,
"css_id": "t7.css",
"narration": "Avec XHTML 1.0, vous atteignez un nouveau niveau de qualité. Vous écrivez un code plus propre et plus cohérent, et l'expérience utilisateur s'en trouve améliorée. Les pages se chargent plus rapidement et sont plus fiables. La perfection est en marche !"
},
"html_5": {
"nom": "HTML 5",
"elements": {
"button": {
}
},
"boost": 10,
"cout": 10,
"borne": 10,
"evolution":6,
"css_id": "t8.css",
"narration": "L'HTML 5 débarque ! C'est l'arrivée des vidéos et de l'audio sur le web. Grâce à la balise `<video>`, vous pouvez intégrer des vidéos directement dans vos pages, et la balise `<audio>` permet de diffuser des sons. Vous redéfinissez l'expérience multimédia sur Internet."
},
"xhtml_5": {
"nom": "XHTML 5",
"elements": {
"button": {
}
},
"boost": 10,
"cout": 10,
"borne": 10,
"evolution":7,
"css_id": "t9.css",
"narration": "XHTML 5 vous permet d'aller encore plus loin dans l'interactivité. Grâce à l'introduction des balises HTML5, vous pouvez gérer des éléments multimédia comme des vidéos, des sons, et même des animations interactives avec le JavaScript intégré. Le web devient une plateforme riche et immersive, tout est possible !"
}
},
"collegues": {
"ada_lovelace": {
"nom": "Ada Lovelace",
"cout": 10,
"revenu_passif": 10
},
"george_boole": {
"nom": "George Boole",
"cout": 10,
"revenu_passif": 10
},
"grace_hopper": {
"nom": "Grace Hopper",
"cout": 10,
"revenu_passif": 10
},
"jean_bartik": {
"nom": "Jean Bartik",
"cout": 10,
"revenu_passif": 10
},
"claude_shannon": {
"nom": "Claude Shannon",
"cout": 10,
"revenu_passif": 10
},
"alan_turing": {
"nom": "Alan Turing",
"cout": 10,
"revenu_passif": 10
},
"maragaret_hamilton": {
"nom": "Margaret Hamilton",
"cout": 10,
"revenu_passif": 10
},
"tim_berners_lee": {
"nom": "Tim Berner-Lee",
"cout": 10,
"revenu_passif": 10
},
"dennis_ritchie": {
"nom": "Dennis Ritchie",
"cout": 10,
"revenu_passif": 10
},
"linus_torvald": {
"nom": "Linus Torvald",
"cout": 10,
"revenu_passif": 10
}
}
}

View file

@ -70,4 +70,7 @@ table.table_magasin{
margin-top: 10px; margin-top: 10px;
margin-bottom: 10px; margin-bottom: 10px;
video{
visibility: visible;
} }

View file

@ -1,8 +1,29 @@
// prévention de l'empilement d'alertes, qui entrainerait la suppression de tous les messages sauf le dernier
// Pour cela, on utilise une file et une fonction asynchrone qui boucle et vide la file alerte par alerte
let file_alertes = []
function ouvrirAlerte(message){
file_alertes.push(message)
// si c'est la seule alerte en attente, on l'affiche
if(file_alertes.length == 1 ) {
afficherAlerte(file_alertes[0])
}
// sinon, elle sera automatiquement affichée lors de la fermeture de l'alerte juste avant dans la file
}
// Fonction pour afficher une alerte mais plus jolie que celle par défaut // Fonction pour afficher une alerte mais plus jolie que celle par défaut
function ouvrirAlerte(message) { function afficherAlerte(message) {
// on signale une alerte en train d'être visionnée
flag = true
// on prend les elements // on prend les elements
var modal = document.getElementById('alerte_jolie'); let modal = document.getElementById('alerte_jolie');
var messageElement = document.getElementById('message_alerte_jolie');
var messageElement = Ldocument.getElementById('message_alerte_jolie');
// Mettre le message // Mettre le message
messageElement.textContent = message; messageElement.textContent = message;
@ -19,4 +40,13 @@ function fermerAlerte() {
// et on cache en changeant la propriété css // et on cache en changeant la propriété css
modal.style.display = "none"; modal.style.display = "none";
}
// enlève notre élément de la file
file_alertes.shift()
// affiche récursivement les autres alertes en attentes
if(file_alertes.length > 0){
afficherAlerte(file_alertes[0])
}
}

View file

@ -30,7 +30,7 @@ function firstClick(){
function scoreCount(){ function scoreCount(){
const score_aff = document.getElementById("score_affichage") const score_aff = document.getElementById("score_affichage")
score += 1 score += boost
score_aff.innerText="SCORE : " + score score_aff.innerText="SCORE : " + score
// check refresh la table magasin pour afficher une amélioration si un palier est atteint // check refresh la table magasin pour afficher une amélioration si un palier est atteint

View file

@ -8,6 +8,9 @@ let sacado = {}
// premet de ne pas laisser le joueur acheter html 5 si il n'a pas débloqué html 1.0 etc.. // premet de ne pas laisser le joueur acheter html 5 si il n'a pas débloqué html 1.0 etc..
let evolution = 0 let evolution = 0
// variable qui permet d'augmenter la taille de l'incrément du score pour chaque clic, en fonction de la technlologie déloquée
let boost = 1
async function remplirMagasin(){ async function remplirMagasin(){
@ -26,12 +29,12 @@ async function remplirMagasin(){
const tr = document.createElement("tr") const tr = document.createElement("tr")
const nom = document.createElement("td") const case_nom = document.createElement("td")
nom.innerText = el.nom case_nom.innerText = el.nom
const boost = document.createElement("td") const case_boost = document.createElement("td")
boost.innerText = el.boost case_boost.innerText = el.boost
const cout = document.createElement("td") const case_cout = document.createElement("td")
cout.innerText = el.cout case_cout.innerText = el.cout
const test = document.createElement("td") const test = document.createElement("td")
const btn_acheter = document.createElement("button") const btn_acheter = document.createElement("button")
@ -69,7 +72,16 @@ async function remplirMagasin(){
score -= t.cout score -= t.cout
const score_aff = document.getElementById("score_affichage") const score_aff = document.getElementById("score_affichage")
score_aff.innerText="SCORE : " + score score_aff.innerText="SCORE : " + score
// augmentation du boost d'incrément
ouvrirAlerte("Incrémentation de la rentabilité de tes clicks de "+t.boost+" points !!")
if(t.props.evolution == 0){
boost += t.boost -1 // car sinon, le premier boost ne va pas entrainer un nombre rond de points par click :)
}else{
boost += t.boost
}
// incrémente le score implicite d'evolution pour permettre à la prochaine amelioration de s'afficher // incrémente le score implicite d'evolution pour permettre à la prochaine amelioration de s'afficher
evolution += 1 evolution += 1
@ -93,9 +105,9 @@ async function remplirMagasin(){
test.appendChild(btn_acheter) test.appendChild(btn_acheter)
tr.appendChild(nom) tr.appendChild(case_nom)
tr.appendChild(boost) tr.appendChild(case_boost)
tr.appendChild(cout) tr.appendChild(case_cout)
tr.appendChild(test) tr.appendChild(test)
table.appendChild(tr) table.appendChild(tr)