Compare commits

...

2 commits

4 changed files with 106 additions and 77 deletions

View file

@ -134,58 +134,88 @@
"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": 15,
"revenu_passif": 0.1
},
"george_boole": {
"nom": "George Boole",
"cout": 100,
"revenu_passif": 1
},
"grace_hopper": {
"nom": "Grace Hopper",
"cout": 1100,
"revenu_passif": 8
},
"jean_bartik": {
"nom": "Jean Bartik",
"cout": 12000,
"revenu_passif": 47
},
"claude_shannon": {
"nom": "Claude Shannon",
"cout": 130000,
"revenu_passif": 260
},
"alan_turing": {
"nom": "Alan Turing",
"cout": 1400000,
"revenu_passif": 1400
},
"maragaret_hamilton": {
"nom": "Margaret Hamilton",
"cout": 20000000,
"revenu_passif": 7800
},
"tim_berners_lee": {
"nom": "Tim Berner-Lee",
"cout": 100000000,
"revenu_passif": 44000
},
"dennis_ritchie": {
"nom": "Dennis Ritchie",
"cout": 500000000,
"revenu_passif": 260000
},
"linus_torvald": {
"nom": "Linus Torvald",
"cout": 1000000000,
"revenu_passif": 1600000
}
"collegues": {
"ada_lovelace": {
"nom": "Ada Lovelace",
"cout": 15,
"revenu_passif": 0.1,
"evolution": 0,
"narration": "Ada Lovelace est considérée comme la première programmeuse de l'histoire. Elle a collaboré avec Charles Babbage sur la machine analytique et a écrit des notes qui contiennent l'algorithme destiné à être exécuté par la machine, un concept essentiel à la programmation moderne.",
"wikipedia": "https://fr.wikipedia.org/wiki/Ada_Lovelace"
},
"george_boole": {
"nom": "George Boole",
"cout": 100,
"revenu_passif": 1,
"evolution": 0,
"narration": "George Boole était un mathématicien et logicien britannique, connu pour avoir formulé les bases de l'algèbre logique, un outil fondamental en informatique et en intelligence artificielle.",
"wikipedia": "https://fr.wikipedia.org/wiki/George_Boole"
},
"grace_hopper": {
"nom": "Grace Hopper",
"cout": 1100,
"revenu_passif": 8,
"evolution": 0,
"narration": "Grace Hopper était une informaticienne et contre-amiral de la marine américaine. Elle est connue pour ses travaux sur le développement du premier compilateur et pour avoir popularisé le terme 'bug' pour décrire un dysfonctionnement dans les programmes.",
"wikipedia": "https://fr.wikipedia.org/wiki/Grace_Hopper"
},
"jean_bartik": {
"nom": "Jean Bartik",
"cout": 12000,
"revenu_passif": 47,
"evolution": 1,
"narration": "Jean Bartik faisait partie de l'équipe originale des programmeuses d'ENIAC, l'un des premiers ordinateurs électroniques. Elle a joué un rôle crucial dans la programmation de cet appareil.",
"wikipedia": "https://fr.wikipedia.org/wiki/Jean_Bartik"
},
"claude_shannon": {
"nom": "Claude Shannon",
"cout": 130000,
"revenu_passif": 260,
"evolution": 1,
"narration": "Claude Shannon est considéré comme le père de la théorie de l'information. Ses travaux ont révolutionné les domaines de la communication et de l'informatique.",
"wikipedia": "https://fr.wikipedia.org/wiki/Claude_Shanon"
},
"alan_turing": {
"nom": "Alan Turing",
"cout": 1400000,
"revenu_passif": 1400,
"evolution": 1,
"narration": "Alan Turing était un mathématicien et cryptanalyste britannique, célèbre pour son travail sur la machine de Turing, une base fondamentale pour la conception des ordinateurs modernes.",
"wikipedia": "https://fr.wikipedia.org/wiki/Alan_Turing"
},
"maragaret_hamilton": {
"nom": "Margaret Hamilton",
"cout": 20000000,
"revenu_passif": 7800,
"evolution": 2,
"narration": "Margaret Hamilton est une informaticienne qui a dirigé l'équipe de développement logiciel pour la mission Apollo. Elle est connue pour avoir écrit le code qui a permis de poser l'homme sur la Lune.",
"wikipedia": "https://fr.wikipedia.org/wiki/Margaret_Hamilton"
},
"tim_berners_lee": {
"nom": "Tim Berner-Lee",
"cout": 100000000,
"revenu_passif": 44000,
"evolution": 2,
"narration": "Tim Berners-Lee est l'inventeur du World Wide Web. Son travail a permis de rendre Internet accessible et compréhensible pour le grand public.",
"wikipedia": "https://fr.wikipedia.org/wiki/Tim_Berners-Lee"
},
"dennis_ritchie": {
"nom": "Dennis Ritchie",
"cout": 500000000,
"revenu_passif": 260000,
"evolution": 2,
"narration": "Dennis Ritchie était un informaticien américain, co-créateur du langage de programmation C et du système d'exploitation UNIX, qui sont devenus des fondations de l'informatique moderne.",
"wikipedia": "https://fr.wikipedia.org/wiki/Dennis_Ritchie"
},
"linus_torvald": {
"nom": "Linus Torvald",
"cout": 1000000000,
"revenu_passif": 1600000,
"evolution": 3,
"narration": "Linus Torvalds est le créateur de Linux, un noyau de système d'exploitation open-source qui est devenu la base de nombreuses distributions utilisées dans des serveurs, des ordinateurs personnels et des appareils mobiles.",
"wikipedia": "https://fr.wikipedia.org/wiki/Linus_Torvalds"
}
}
}

View file

@ -6,9 +6,10 @@ class Collegue{
async chargerDepuisBdd() {
let data = await fetch("../bdd/arbre.json")
data = await data.json()
this.props = data["collegues"][this.nom];
this.cout = this.props.cout;
this.boost = this.props.boost;
this.props = data["collegues"][this.nom]
this.nom = this.props.nom
this.cout = this.props.cout
this.boost = this.props.boost
}
afficherAnimationDebloquage(){

View file

@ -31,4 +31,5 @@ function scoreCount(){
// check refresh la table magasin pour afficher une amélioration si un palier est atteint
remplirMagasinTechnologies()
remplirMagasinCollegues()
}

View file

@ -5,7 +5,8 @@ let magasin = {}
let sacado = {}
// 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_tech = 0
let evolution_coll = 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
@ -84,7 +85,7 @@ async function remplirMagasinTechnologies(){
}
// incrémente le score implicite d'evolution pour permettre à la prochaine amelioration de s'afficher
evolution += 1
evolution_tech += 1
}else{
// PAS ASSEZ RICHE !!!!!
alert("PAS ASSEZ RICHE !!!!!!!!!!!!")
@ -96,7 +97,7 @@ async function remplirMagasinTechnologies(){
btn_acheter.innerText = "Acheter"
// n'afficher l'amélioration que si le score est assez élevé
if((t.props.borne <= score) && (evolution === parseInt(t.props.evolution))){
if((t.props.borne <= score) && (evolution_tech === parseInt(t.props.evolution))){
ouvrirAlerte(tech[key]["narration"])
// met à jour le contenu du magasin
// pour ne pas re-afficher cette ligne et éviter un clignotement
@ -129,15 +130,16 @@ async function remplirMagasinCollegues(){
data = await data.json()
let tech = data["collegues"]
let collegues = data["collegues"]
for(const key in tech){
for(const key in collegues){
// ne va pas s'embeter à proecess si on a deja acheté l'amelioration
if(!sacado[key] && !magasin[key]){
el = tech[key]
el = collegues[key]
console.log(key)
const tr = document.createElement("tr")
const case_nom = document.createElement("td")
case_nom.innerText = el.nom
@ -154,18 +156,18 @@ async function remplirMagasinCollegues(){
let tmp = key
let t = new collegues(tmp)
let c = new Collegue(tmp)
// charge les propriétés de la technologie depuis la bdd sans mettre à jour le style directement après
await t.chargerDepuisBdd(false)
await c.chargerDepuisBdd()
/* fonction qui va s'activer lorsqu'on achète l'objet*/
btn_acheter.addEventListener("click", (event) =>{
// ne laisse acheter que si on a l'argent
if(score >= t.cout){
if(score >= c.cout){
// on améliore le style de la page :)
t.appliquerAmeliorationStyle()
c.appliquerAmeliorationStyle()
// et on ajouter l'amélioration dans l'abre des compétences débloquées
sacado[key] = true
@ -179,22 +181,17 @@ async function remplirMagasinCollegues(){
remplirMagasin()
// finalement, on lui débit son compte de points tel un vendeur de voitures
score -= t.cout
score -= c.cout
const score_aff = document.getElementById("score_affichage")
score_aff.innerText="SCORE : " + score
// augmentation du boost d'incrément
ouvrirAlerte("Incrémentation de la rentabilité de tes clicks de "+t.boost+" points !!")
ouvrirAlerte("Incrémentation de la rentabilité de tes clicks de "+c.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
}
boost += c.boost
// incrémente le score implicite d'evolution pour permettre à la prochaine amelioration de s'afficher
evolution += 1
evolution_coll += 1
}else{
// PAS ASSEZ RICHE !!!!!
alert("PAS ASSEZ RICHE !!!!!!!!!!!!")
@ -206,8 +203,8 @@ async function remplirMagasinCollegues(){
btn_acheter.innerText = "Acheter"
// n'afficher l'amélioration que si le score est assez élevé
if((t.props.borne <= score) && (evolution === parseInt(t.props.evolution))){
ouvrirAlerte(tech[key]["narration"])
if(evolution_coll === parseInt(c.props.evolution)){
ouvrirAlerte("Vous avez débloqué "+ c.nom+" !!"+collegues[key]["narration"])
// met à jour le contenu du magasin
// pour ne pas re-afficher cette ligne et éviter un clignotement
magasin[key] = true