소스 검색

Merge branch 'master' of git.unistra.fr:tompeur/ecr19-t3-e

Theo Ertzscheid 6 년 전
부모
커밋
667c738a16
21개의 변경된 파일274개의 추가작업 그리고 371개의 파일을 삭제
  1. 0 12
      css/style.css
  2. 0 31
      css/styleacc.css
  3. 0 74
      html/jeu.html
  4. 0 11
      html/tuto.html
  5. 0 106
      js/events.js
  6. 0 19
      js/interface.js
  7. 0 58
      js/laws.js
  8. 0 34
      js/main.js
  9. 0 24
      js/utils.js
  10. 57 0
      src/control/ctrlEvents.js
  11. 22 0
      src/control/ctrlGameLaws.js
  12. 0 0
      src/control/ctrlIndicators.js
  13. 29 0
      src/control/ctrlLaws.js
  14. 3 0
      src/control/round.js
  15. 3 0
      src/control/utils.js
  16. 15 0
      src/model/events.js
  17. 6 0
      src/model/game.js
  18. 71 0
      src/model/indicators.js
  19. 14 0
      src/model/laws.js
  20. 52 0
      src/view/game.html
  21. 2 2
      src/view/index.html

+ 0 - 12
css/style.css

@@ -1,12 +0,0 @@
-body {
-	display: flex;
-}
-
-.flexRow {
-	display: flex;
-	flex-direction: row;
-}
-
-#topNavBar {
-	
-}

+ 0 - 31
css/styleacc.css

@@ -1,31 +0,0 @@
-*{
-    margin: 0;
-    padding: 0;
-}
-
-div
-{
-    display: flex;
-    flex-direction: column;
-    border: solid;
-    width: 50%;
-    height: 200px;
-    border-width: thin;
-    box-sizing: border-box;
-    justify-content: center;
-    align-items: center;
-
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    margin: auto;
-}
-button
-{
-    width: 8em;
-    margin: 2em;
-    background-color: aquamarine;
-    border-color: black;
-}

+ 0 - 74
html/jeu.html

@@ -1,74 +0,0 @@
-<!DOCTYPE html>
-<html>
-	<head>
-		<title>Tompeur</title>
-		<link rel="stylesheet" type="text/css" href="../css/style.css">
-		<meta lang="fr" charset="utf-8">
-	</head>
-	<body>
-		<!-- Barre de navigation -->
-		<div id="topNavBar" class="flexRow">
-
-			<!-- Le tour de jeu actuel -->
-			<div id="tour" class="flexRow">
-				<p>Tour : </p>
-				<p id="tourVal">0</p>
-			</div>
-
-			<!-- Les indicateurs -->
-			<div id="lsIndics" class="flexRow">
-
-				<div class="indicateur flexRow"> <!-- un indicateur particulier -->
-					<p>Crime : </p>
-					<p id="crime">0</p>
-				</div>
-
-				<div class="indicateur flexRow">
-					<p>Religion : </p>
-					<p id="religion">0</p>
-				</div>
-
-				<div class="indicateur flexRow">
-					<p>Economie : </p>
-					<p id="economie">0</p>
-				</div>
-
-				<div class="indicateur flexRow">
-					<p>Noblesse : </p>
-					<p id="noblesse">0</p>
-				</div>
-
-				<div class="indicateur flexRow">
-					<p>Peuple : </p>
-					<p id="peuple">0</p>
-				</div>
-
-			</div>
-		</div>
-
-		<!-- Liste des lois votées -->
-		<div id="lsLois">
-			<!-- Les lois seront insérées ici dynamiquement par le javascript -->
-		</div>
-		<!-- Fenetre principale -->
-		<div id="main">
-			<div id="evenement">
-				
-			</div>
-			<div id="lsChoixLois">
-				<div class="choixLoi" id="choixLoi1">
-
-				</div>
-				<div class="choixLoi" id="choixLoi2">
-
-				</div>
-			</div>
-		</div>
-
-	</body>
-	<script type="text/javascript"  src="../js/laws.js"></script>
-	<script type="text/javascript"  src="../js/events.js"></script>
-	<script type="text/javascript"  src="../js/utils.js"></script>
-	<script type="text/javascript"  src="../js/interface.js"></script>
-	<script type="text/javascript"  src="../js/main.js"></script>
-</html>

+ 0 - 11
html/tuto.html

@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-    <html>
-        <head>
-            <title>Tutoriel</title>
-            <link rel="stylesheet" type="text/css" href="styletuto.css">
-        </head>
-
-        <body>
-            <h1>A faire...</h1>
-        </body>
-    </html>

+ 0 - 106
js/events.js

@@ -1,106 +0,0 @@
-const events = [
-    {
-        nom : "Tremblement de terre",
-        description : "Un tremblement de terre vient de surgir, et beacoup des paysans se retrouvent sans toit sur leur têtes.",
-        lois : [
-            {
-                nom: "Recueil par les nobles",
-                descriptions: [
-                    "Les seigneurs ont pour obligation de recueillir dans leur château au moins le tiers le plus touché",
-                    "Les seigneurs ont pour obligation de recueillir dans leur château au moins la moitiée  la plus touchée",
-                    "Les seigneurs doivent recueillir l'ensemble de leurs paysans affectés"
-                ],
-                effets: {cri: 0, rel: 0, eco: 0, nob: -5, peu: 8},
-                niveau: 0
-            },
-            {
-                nom: "Recueil par l'église",
-                descriptions: [
-                    "L'église a pour obligation de recueillir au moins le tiers des fidèles les plus touché",
-                    "L'église a pour obligation de recueillir au moins la moitié des fidèles les plus touché",
-                    "L'église a pour obligation de recueillir la totalité des fidèles "
-                ],
-                effets: {cri: 0, rel: -3, eco: 0, nob: 0, peu: 4},
-                niveau: 0
-            }
-        ]
-    },
-    {
-        nom : "Annonce du pape",
-        description : "Le pape vient de déclarer que les criminels devaient être punis moins fortemment, en tant qu'enfants du seigneur.",
-        lois : [
-            {
-                nom: "Baisse des sentences criminelles",
-                descriptions: [
-                    "La peine de mort est réservée aux assassins.",
-                    "Les prisons sont financés par un nouvel impôt.",
-                    "Plus aucun criminel n'est puni, ils doivent seulement se repentir devant dieu."
-                ],
-                effets: {cri: 10, rel: 5, eco: -5, nob: -5, peu: -3},
-                niveau: 0
-            },
-            {
-                nom: "Transfert des criminels au vatican",
-                descriptions: [
-                    "Un centième des criminels sont désormais evoyés directement au pape.",
-                    "Un dixieme des criminels sont désormais evoyés directement au pape.",
-                    "La moitié des criminels sont désormais evoyés directement au pape.",
-                ],
-                effets: {cri: -10, rel: -3, eco: -3, nob: 2, peu: 4},
-                niveau: 0
-            }
-        ]
-    },
-    {
-        nom : "Famine",
-        description : "Les récoltes ont été pitoyables. Votre peuple se meurt de faim.",
-        lois : [
-            {
-                nom: "Baisse de la dime du clergé",
-                descriptions: [
-                    "La part de la dime réservée au clergé baisse d'un tiers.",
-                    "La part de la dime réservée au clergé baisse d'un quart.",
-                    "La part de la dime réservée au clergé baisse de moitié.",
-                ],
-                effets: {cri: 0, rel: -5, eco: 5, nob: 3, peu: 13},
-                niveau: 0
-            },
-            {
-                nom: "Baisse de la dime de la noblesse",
-                descriptions: [
-                    "La part de la dime réservée à la noblesse baisse d'un tiers.",
-                    "La part de la dime réservée à la noblesse baisse d'un quart.",
-                    "La part de la dime réservée à la noblesse baisse de moitié.",
-                ],
-                effets: {cri: 0, rel: 3, eco: 5, nob: -5, peu: 13},
-                niveau: 0
-            }
-        ]
-    },
-    {
-        nom : "Epidemie",
-        description : "Une épidémie d'une maladie inconnue s'est déclarée. Les victimes se font déjà nombreuses.",
-        lois : [
-            {
-                nom: "Baisse de la dime du clergé",
-                descriptions: [
-                    "La part de la dime réservée au clergé baisse d'un tiers.",
-                    "La part de la dime réservée au clergé baisse d'un quart.",
-                    "La part de la dime réservée au clergé baisse de moitié.",
-                ],
-                effets: {cri: 0, rel: -5, eco: 5, nob: 3, peu: 13},
-                niveau: 0
-            },
-            {
-                nom: "Baisse de la dime de la noblesse",
-                descriptions: [
-                    "La part de la dime réservée à la noblesse baisse d'un tiers.",
-                    "La part de la dime réservée à la noblesse baisse d'un quart.",
-                    "La part de la dime réservée à la noblesse baisse de moitié.",
-                ],
-                effets: {cri: 0, rel: 3, eco: 5, nob: -5, peu: 13},
-                niveau: 0
-            }
-        ]
-    }
-]

+ 0 - 19
js/interface.js

@@ -1,19 +0,0 @@
-/* 
- * majIndics : met a jour les valeurs des indicateurs sur l'interface
- */
-function majIndics() { 
-    document.querySelector("p#crime").innerHTML = indics[0];
-    document.querySelector("p#religion").innerHTML = indics[1];
-    document.querySelector("p#economie").innerHTML = indics[2];
-    document.querySelector("p#noblesse").innerHTML = indics[3];
-    document.querySelector("p#peuple").innerHTML = indics[4];
-}
-
-/* 
- * afficherEvenement : prends un evenement en parametre et affiche
- * se sdifferentes infos dans la fenetre d'evenements 
- * et ses lois associées dans la fenetre des lois
- */
-function afficherEvenement(event) {
-
-}

+ 0 - 58
js/laws.js

@@ -1,58 +0,0 @@
-const laws = [
-    {
-        id: 0,
-        nom: "Loi financement culte",
-        descriptions: [
-            "Les lieux de culte sont financés à 1/3 par l'Etat",
-            "Les lieux de culte sont financés à moitié par l'Etat",
-            "Les lieux de culte sont entièrement financés par l'Etat"
-        ],
-        effets: {"cri": 0, "rel": 5, "eco": -5, "nob": 0, "peu": 0},
-        niveau: 0
-    },
-    {
-        id: 1,
-        nom: "Impôt sur le blé",
-        descriptions: [
-            "Taxe de 3%",
-            "Taxe de 6%",
-            "Taxe de 9%"
-        ],
-        effets: {"cri": 1, "rel": 0, "eco": 3, "nob": 1, "peu": -2},
-        niveau: 0
-    },
-    {
-        id: 2,
-        nom: "Impôt sur le titre",
-        descriptions: [
-            "Les nobles paient 3% d'impôts",
-            "Les nobles paient 6% d'impôts",
-            "Les nobles paient 9% d'impôts"
-
-        ],
-        effets: {"cri":0, "rel": 0, "eco": 3, "nob": -2, "peu": 1},
-        niveau: 0
-    },
-    {
-        id: 3,
-        nom: "Liberté d'expression",
-        descriptions: [
-            "Abolition peine de mort pour les dissidents",
-            "Plus de prison pour les dissidents",
-            "Les gens peuvent dire ce qu'ils veulent"
-        ],
-        effets: {"cri": -1, "rel": -5, "eco": 0, "nob": 1, "peu": 3},
-        niveau: 0
-    },
-    {
-        id: 4,
-        nom: "Légalisation de la mandragore",
-        descriptions: [
-            "Dépénalisation de la consommation",
-            "Légalisation de la consommation",
-            "Organisation de la consommation par l'Etat"
-        ],
-        effets: {"cri": -2, "rel": -2, "eco": 1, "nob": 0, "peu": 1},
-        niveau: 0
-    }
-]

+ 0 - 34
js/main.js

@@ -1,34 +0,0 @@
-let indics = [0, 0, 0, 0, 0]; // Crime Religion Economie Noblesse Peuple 
-let body = document.body;
-
-
-
-
-/* init : mets en place les valeur initiales des indicateurs
- * et du tour
- *
- */
-function init() {
-    let divIndics = document.getElementById("lsIndics");
-    
-    for(let i = 0; i < indics.length; i++) {
-        indics[i] = getRndInteger(20,80);
-    }
-    majIndics();
-    document.querySelector("p#tourVal").innerHTML = "1";
-}
-
-
-
-function main() {
-    init();
-    let lost = false;
-    let tour = 1;
-    
-    //let event = getEvent(); 
-    //afficherEvenement(event);
-    
-     
-}
-
-main();

+ 0 - 24
js/utils.js

@@ -1,24 +0,0 @@
-/* aPerdu : retourne vrai si le joueur a perdu
- * c'est à dire si un des indicateurs n'ets plus compris entre 0 et 100
- */
-function aPerdu() {     
-    for( i in indics) {
-        if (i <=0 || i >=100) {
-            return true;
-        }
-    }
-    return false;
-}
-
-/*
- * getRndInteger : obtient un entier aleatoire entre min et max
- */
-function getRndInteger(min, max) {
-    return Math.floor(Math.random() * (max - min) ) + min;
-}
-
-/* getEvent : 
- */
-function getEvent() {
-    
-}

+ 57 - 0
src/control/ctrlEvents.js

@@ -0,0 +1,57 @@
+/*
+possibleEvents : liste des evenements possibles avec leurs ponderations
+      - event : evenement
+      - weight : ponderations
+*/
+
+let possibleEvents = [];
+
+
+function resetPossibleEvents() {
+  possibleEvents = [];
+}
+
+
+function addPossibleEvent(pEvent) {
+  possibleEvents.push(
+    {
+      pEvent : pEvent,
+      weight : getEventWeight(pEvent)
+    }
+  );
+}
+
+// à faire
+function getEventWeight(pEvent) {
+  let weight = 1;
+  return weight;
+}
+
+
+function testPossibleEvent(pEvent) {
+  if (
+    (clergy.wealth <= pEvent.clergy.wealth) &&
+    (clergy.influence <= pEvent.clergy.influence) &&
+    (nobility.wealth <= pEvent.nobility.wealth) &&
+    (nobility.influence <= pEvent.nobility.influence) &&
+    (nobility.army <= pEvent.nobility.army) &&
+    (people.wealth <= pEvent.people.wealth) &&
+    (people.wellBeing <= pEvent.people.wellBeing)
+  ) {
+    return true;
+  }
+  return false;
+}
+
+
+function allPossibleEvents() {
+
+  resetPossibleEvents();
+
+  for (let i = 0; i < events.length; i++) {
+    let currentEvents = events[i];
+    if (testPossibleEvent(currentEvents)) {
+      addPossibleEvents(currentEvents);
+    }
+  }
+}

+ 22 - 0
src/control/ctrlGameLaws.js

@@ -0,0 +1,22 @@
+function addPlayerLaw(pLaw) {
+  playerLaws.push(pLaw);
+}
+
+function removePlayerLaw(pLaw) {
+  for (var i = 0; i < playerLaws.length; i++) {
+    if (playerLaws[i] == pLaw) {
+      playerLaws.splice(i, 1);
+      break;
+    }
+  }
+}
+
+function getPlayerLawsByType(pPlayerLawType) {
+  let playerLawsOfTheType = [];
+  for (var i = 0; i < playerLaws.length; i++) {
+    if (playerLaws[i].type == pPlayerLawType) {
+      playerLawsOfTheType.push(playerLaws[i]);
+    }
+  }
+  return playerLawsOfTheType;
+}

+ 0 - 0
src/control/ctrlIndicators.js


+ 29 - 0
src/control/ctrlLaws.js

@@ -0,0 +1,29 @@
+<<<<<<< HEAD
+function getLawsByType(pLawType) {
+  let lawsOfTheType = [];
+  for (var i = 0; i < laws.length; i++) {
+    if (laws[i].type == pLawType) {
+      lawsOfTheType.push(laws[i]);
+    }
+  }
+  return lawsOfTheType;
+}
+=======
+let laws = [];
+
+function addLaw(law) {
+    laws.push(law);
+}
+
+function removeLaw(law) {
+    let trouve = false;
+    let i = 0;
+    while (!trouve && i < laws.length) {
+        if (laws[i] == law) {
+            trouve = true;
+            laws.splice(i, 1);
+        }
+        i++;
+    }
+}
+>>>>>>> eeb7ff6d99e2ccaf8b19c6a80bbf40f10c387570

+ 3 - 0
src/control/round.js

@@ -0,0 +1,3 @@
+function newRound(){
+  
+}

+ 3 - 0
src/control/utils.js

@@ -0,0 +1,3 @@
+function randInt(min, max) {
+  return Math.floor(Math.random() * (max - min + 1) ) + min;
+}

+ 15 - 0
src/model/events.js

@@ -0,0 +1,15 @@
+let events = [
+  {
+    name : "Nom de l'evenement",
+    threshold : {
+      clergy : { wealth : 0, influence : 0 },
+      nobility : { wealth : 0 , influence : 0 , army : 0 },
+      people : { wealth : 0 , wellBeing : 0 }
+    },
+    coefficient : {
+      clergy : { wealth : 0, influence : 0 },
+      nobility : { wealth : 0 , influence : 0 , army : 0 },
+      people : { wealth : 0 , wellBeing : 0 }
+    }
+  },
+]

+ 6 - 0
src/model/game.js

@@ -0,0 +1,6 @@
+let playerTaxes = {
+  clergy : 15,
+  nobility : 25
+}
+
+let playerLaws = [];

+ 71 - 0
src/model/indicators.js

@@ -0,0 +1,71 @@
+// INDICATEURS
+
+/*
+<<<<<<< HEAD
+=======
+TOTAL
+
+< contient l'influence et la richesse max >
+*/
+const total = { wealth : 100 , influence : 100 };
+
+/*
+>>>>>>> eeb7ff6d99e2ccaf8b19c6a80bbf40f10c387570
+CLERGE :
+  - richesse : relatif a la noblesse et au peuple
+  - influence : relatif a la noblesse
+
+OBJET : { INT: wealth | INT: influence }
+*/
+<<<<<<< HEAD
+let clergy = { wealth : 0 , influence : 0 };
+
+=======
+
+let clergy = { wealth : 0 , influence : 0 };
+>>>>>>> eeb7ff6d99e2ccaf8b19c6a80bbf40f10c387570
+
+/*
+NOBLESSE :
+  - richesse : relatif au clerge et au peuple
+  - influence : relatif au clerge
+  - armee : individuel
+
+OBJET : { INT: wealth | INT: influence | INT: army }
+*/
+<<<<<<< HEAD
+let nobility = { wealth : 0 , influence : 0 , army : 0 };
+
+=======
+
+let nobility = { wealth : 0 , influence : 0 , army : 0 };
+>>>>>>> eeb7ff6d99e2ccaf8b19c6a80bbf40f10c387570
+
+/*
+PEUPLE :
+  - richesse : relatif a la noblesse et au clerge
+  - bien etre : individuel
+
+OBJET : { INT: wealth | INT: wellBeing }
+*/
+<<<<<<< HEAD
+let people = { wealth : 0 , wellBeing : 0 };
+
+
+// Tour de jeu actuel
+let round = 0;
+
+
+// Score actuel
+=======
+
+let people = { wealth : 0 , wellBeing : 0 };
+
+// Tour de jeu actuel
+
+let round = 0;
+
+// Score actuel
+
+>>>>>>> eeb7ff6d99e2ccaf8b19c6a80bbf40f10c387570
+let score = 0;

+ 14 - 0
src/model/laws.js

@@ -0,0 +1,14 @@
+let lawsTypes = ["nom du type 1","nom du type 2"];
+
+let laws = [
+  {
+    name : "Nom de la loie",
+    type : "nom du type",
+    effect : {
+      clergy : { wealth : 50, influence : 60 },
+      nobility : { wealth : -10 , influence : 33 , army : 69 },
+      people : { wealth : -420 , wellBeing : 1337 }
+    },
+    description : "Description de la loi précise est pédagogique"
+  },
+];

+ 52 - 0
src/view/game.html

@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang="fr">
+  <head>
+    <meta charset="utf-8">
+<<<<<<< HEAD
+    <title>Tompeur</title>
+  </head>
+  <body>
+    <canvas id="main" width="300" height="300"></canvas>
+  </body>
+  <!-- script load -->
+  <script type="text/javascript" src="../model/javascript.js"></script>
+</html>
+=======
+    <title>Home</title>
+    <link rel="stylesheet" type="text/css" href="style.css">
+  </head>
+  <body>
+
+    <div id="indicator">
+
+    </div>
+
+    <div id="main">
+
+      <div id="event">
+
+      </div>
+
+      <div id="options">
+
+      </div>
+
+    </div>
+
+    <div id="listLaws">
+
+    </div>
+
+  </body>
+</html>
+
+<script type="text/javascript" src="../js/main.js"></script>
+<script type="text/javascript" src="../js/laws.js"></script>
+<script type="text/javascript" src="../js/lawsCTRL.js"></script>
+<script type="text/javascript" src="../js/optionsCTRL.js"></script>
+<script type="text/javascript" src="../js/indicatorCTRL.js"></script>
+<script type="text/javascript" src="../js/events.js"></script>
+<script type="text/javascript" src="../js/eventCTRL.js"></script>
+<script type="text/javascript" src="../js/turn.js"></script>
+<script type="text/javascript" src="../js/start.js"></script>
+>>>>>>> eeb7ff6d99e2ccaf8b19c6a80bbf40f10c387570

+ 2 - 2
html/index.html → src/view/index.html

@@ -7,8 +7,8 @@
 
     <body>
         <div>
-             <button onclick="location.href = 'jeu.html';">Nouvelle partie</button>
+             <button onclick="location.href = 'game.html';">Nouvelle partie</button>
              <button onclick="location.href = 'tuto.html';">Tutoriel</button>
         </div>
     </body>
-</html>
+</html>