209 lines
6.7 KiB
HTML
209 lines
6.7 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<html lang="en">
|
||
|
<head>
|
||
|
<meta charset="utf-8" />
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||
|
|
||
|
<title></title>
|
||
|
<link rel="stylesheet" href="dist/reveal.css" />
|
||
|
<link rel="stylesheet" href="dist/theme/solarized.css" id="theme" />
|
||
|
<link rel="stylesheet" href="plugin/highlight/zenburn.css" />
|
||
|
<link rel="stylesheet" href="css/layout.css" />
|
||
|
<link rel="stylesheet" href="plugin/customcontrols/style.css">
|
||
|
|
||
|
|
||
|
<script defer src="dist/fontawesome/all.min.js"></script>
|
||
|
|
||
|
<script type="text/javascript">
|
||
|
var forgetPop = true;
|
||
|
function onPopState(event) {
|
||
|
if(forgetPop){
|
||
|
forgetPop = false;
|
||
|
} else {
|
||
|
parent.postMessage(event.target.location.href, "app://obsidian.md");
|
||
|
}
|
||
|
}
|
||
|
window.onpopstate = onPopState;
|
||
|
window.onmessage = event => {
|
||
|
if(event.data == "reload"){
|
||
|
window.document.location.reload();
|
||
|
}
|
||
|
forgetPop = true;
|
||
|
}
|
||
|
|
||
|
function fitElements(){
|
||
|
const itemsToFit = document.getElementsByClassName('fitText');
|
||
|
for (const item in itemsToFit) {
|
||
|
if (Object.hasOwnProperty.call(itemsToFit, item)) {
|
||
|
var element = itemsToFit[item];
|
||
|
fitElement(element,1, 1000);
|
||
|
element.classList.remove('fitText');
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function fitElement(element, start, end){
|
||
|
|
||
|
const size = (end + start) / 2;
|
||
|
element.style.fontSize = `${size}px`;
|
||
|
|
||
|
if(Math.abs(start - end) < 1){
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if(element.scrollHeight > element.offsetHeight){
|
||
|
fitElement(element, start, size);
|
||
|
} else {
|
||
|
fitElement(element, size, end);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
document.onreadystatechange = () => {
|
||
|
fitElements();
|
||
|
if (document.readyState === 'complete') {
|
||
|
if (window.location.href.indexOf("?export") != -1){
|
||
|
parent.postMessage(event.target.location.href, "app://obsidian.md");
|
||
|
}
|
||
|
if (window.location.href.indexOf("print-pdf") != -1){
|
||
|
let stateCheck = setInterval(() => {
|
||
|
clearInterval(stateCheck);
|
||
|
window.print();
|
||
|
}, 250);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
|
||
|
|
||
|
</script>
|
||
|
</head>
|
||
|
<body>
|
||
|
<div class="reveal">
|
||
|
<div class="slides"><section data-markdown><script type="text/template">
|
||
|
# Écosystème
|
||
|
> Anri KENNEL `$\cdot$` L2-X</script></section><section data-markdown><script type="text/template">## Relation des classes
|
||
|
<p style="line-height: 0" class="reset-paragraph"><img src="../img/schema.svg" alt="schema" ></img></p>
|
||
|
</script></section><section data-markdown><script type="text/template">## `main.cpp`
|
||
|
- Gère les arguments aux programmes
|
||
|
- Lance, affiche et arrête la simulation (`Evenement`)
|
||
|
</script></section><section data-markdown><script type="text/template">## `Evenement`
|
||
|
- Créer la simulation (`Univers`)
|
||
|
- Ajoute les animaux
|
||
|
- Supprime l'univers
|
||
|
- Affiche un univers à un instant `$t$`
|
||
|
- Fait vivre l'univers
|
||
|
- Appel chaque organisme de l'univers
|
||
|
- Ordre: du + rapide au - rapide
|
||
|
</script></section><section data-markdown><script type="text/template">## `Univers`
|
||
|
- ID unique
|
||
|
- Stocke
|
||
|
- les dimensions de l'univers (`map`)
|
||
|
- ID univers correspond aux dimensions
|
||
|
- les organismes de l'univers (`map` et `vector`)
|
||
|
- ID univers corresponds aux vecteur d'organismes</script></section><section data-markdown><script type="text/template">## `Univers`
|
||
|
- Stocke
|
||
|
- les cases vides de l'univers (`map`, `pair` et `vector`)
|
||
|
- ID univers correspond à une pair de vecteur
|
||
|
- l'un pour les animaux (mouton, loup)
|
||
|
- l'autre pour les non-animaux (sel, herbe)
|
||
|
- Vérifie si l'univers est en vie (`enVie`)
|
||
|
- Supprime les organismes mort (`nettoyageMorts`)
|
||
|
</script></section><section data-markdown><script type="text/template">## `Organisme`
|
||
|
- ID unique
|
||
|
- Stocke
|
||
|
- ID correspond à une lettre pour l'affichage (`map`)
|
||
|
- index dans l'univers
|
||
|
- ID univers
|
||
|
- Peut se supprimer d'un univers (`suppressionVecteurs`)
|
||
|
</script></section><section data-markdown><script type="text/template">## `Organisme`
|
||
|
- `lettre`, exemple, un mouton à la lettre "M"
|
||
|
- Peut faire une action
|
||
|
- Peut mourir (`mortOrganisme`)
|
||
|
- Peut renvoyer la position sous forme
|
||
|
- x, y
|
||
|
- index
|
||
|
- echequier (A4)
|
||
|
</script></section><section data-markdown><script type="text/template">## `Animal`
|
||
|
Dépend de la classe `Organisme`
|
||
|
- Stocke
|
||
|
- age et age max que l'animal peut atteindre
|
||
|
- faim et faim max que l'animal peut supporter
|
||
|
- s'il l'animal se reproduit, avec qui ?, cb de temps avant de pouvoir se reproduire ?
|
||
|
- genre (masculin, féminin)
|
||
|
- vitesse
|
||
|
- doit-il poser des sédiment à la mort?
|
||
|
</script></section><section data-markdown><script type="text/template">## `Animal`
|
||
|
- Peut se déplacer
|
||
|
- Peut s'accoupler
|
||
|
- Regarde les cases aux alentours où il peut aller ou non
|
||
|
- S'il est carnivore
|
||
|
</script></section><section data-markdown><script type="text/template">## `Sel`, `Herbe`, `Mouton`, `Loup`
|
||
|
`Sel` et `Herbe` dépendent de la classe `Organisme`
|
||
|
`Mouton` et `Loup` dépendent de la classe `Animal`
|
||
|
|
||
|
Seul le comportement des méthodes virtuelles sont définies dans ses classes.</script></section></div>
|
||
|
</div>
|
||
|
|
||
|
<script src="dist/reveal.js"></script>
|
||
|
|
||
|
<script src="plugin/markdown/markdown.js"></script>
|
||
|
<script src="plugin/highlight/highlight.js"></script>
|
||
|
<script src="plugin/zoom/zoom.js"></script>
|
||
|
<script src="plugin/notes/notes.js"></script>
|
||
|
<script src="plugin/math/math.js"></script>
|
||
|
<script src="plugin/mermaid/mermaid.js"></script>
|
||
|
<script src="plugin/customcontrols/plugin.js"></script>
|
||
|
|
||
|
<script>
|
||
|
function extend() {
|
||
|
var target = {};
|
||
|
for (var i = 0; i < arguments.length; i++) {
|
||
|
var source = arguments[i];
|
||
|
for (var key in source) {
|
||
|
if (source.hasOwnProperty(key)) {
|
||
|
target[key] = source[key];
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return target;
|
||
|
}
|
||
|
|
||
|
// default options to init reveal.js
|
||
|
var defaultOptions = {
|
||
|
controls: true,
|
||
|
progress: true,
|
||
|
history: true,
|
||
|
center: true,
|
||
|
transition: 'default', // none/fade/slide/convex/concave/zoom
|
||
|
plugins: [
|
||
|
RevealMarkdown,
|
||
|
RevealHighlight,
|
||
|
RevealZoom,
|
||
|
RevealNotes,
|
||
|
RevealMath.MathJax3,
|
||
|
RevealMermaid,
|
||
|
RevealCustomControls,
|
||
|
],
|
||
|
|
||
|
mathjax3: {
|
||
|
mathjax: 'plugin/math/mathjax/tex-mml-chtml.js',
|
||
|
},
|
||
|
|
||
|
customcontrols: {
|
||
|
controls: [
|
||
|
]
|
||
|
},
|
||
|
};
|
||
|
|
||
|
// options from URL query string
|
||
|
var queryOptions = Reveal().getQueryHash() || {};
|
||
|
|
||
|
var options = extend(defaultOptions, {"width":960,"height":700,"margin":0.04,"controls":true,"controlsLayout":"edges","progress":true,"slideNumber":true,"transition":"slide","transitionSpeed":"default"}, queryOptions);
|
||
|
</script>
|
||
|
|
||
|
<script>
|
||
|
Reveal.initialize(options);
|
||
|
</script>
|
||
|
</body>
|
||
|
</html>
|