forked from Open-CT/openct-tasks
103 lines
4.3 KiB
HTML
103 lines
4.3 KiB
HTML
<!doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>training-functions-cactus</title>
|
|
<script>
|
|
window.stringsLanguage = 'fr';
|
|
</script>
|
|
<script class="remove" type="text/javascript" src="../../../_common/modules/pemFioi/importModules-1.4-mobileFirst.js" id="import-modules"></script>
|
|
<script class="remove" type="text/javascript">
|
|
var modulesPath = '../../../_common/modules/'
|
|
importModules([
|
|
'jquery-1.7.1', 'JSON-js', 'raphael-2.2.1', 'beaver-task-2.0', 'jschannel', 'raphaelFactory-1.0', 'delayFactory-1.0', 'simulationFactory-1.0',
|
|
'platform-pr', 'buttonsAndMessages', 'beav-1.0', 'installationAPI.01', 'miniPlatform',
|
|
'conceptDisplay-1.0', 'conceptViewer-1.0', 'conceptViewer_css-1.0',
|
|
'taskStyles-mobileFirst', 'blockly-robot-1.0']);
|
|
// set Blockly as default language when none is specified through ?language=
|
|
importLanguageModules('blockly');
|
|
</script>
|
|
<script class="remove" type="text/javascript">
|
|
var json = {
|
|
"id": "http://castor-informatique.fr/questions/algorea_training/training-functions-cactus",
|
|
"language": "fr",
|
|
"version": "fr.01",
|
|
"authors": "Mathias Hiron",
|
|
"translators": [],
|
|
"license": "",
|
|
"taskPathPrefix": "",
|
|
"modulesPathPrefix": "",
|
|
"browserSupport": [],
|
|
"acceptedAnswers": [""],
|
|
"fullFeedback": true,
|
|
"minWidth": "auto"
|
|
};
|
|
</script>
|
|
<script type="text/javascript" src="task.js"></script>
|
|
</head>
|
|
<body onresize="task.displayedSubTask.updateScale()">
|
|
<div id="task">
|
|
<h1>Cactus</h1>
|
|
<img src="red_robot.png" style="display:none" />
|
|
<img src="marker.png" style="display:none" />
|
|
<img src="icon.png" style="display:none" />
|
|
|
|
<div id="tabsContainer"></div>
|
|
<div id="taskContent" style="text-align:left;position:relative">
|
|
<div id="taskIntro">
|
|
<p class="short">
|
|
Programmez le robot pour qu'il peigne toutes les cases marquées.
|
|
</p>
|
|
<div class="long">
|
|
<div class="easy medium">
|
|
<p>
|
|
Pour y arriver sans utiliser trop de blocs, vous devrez créer une fonction. Créer une fonction revient à créer votre propre bloc, que vous pourrez ensuite utiliser à divers endroits de votre programme.
|
|
</p>
|
|
<p>
|
|
Voici un exemple de fonction, qui peint deux cases l'une au dessus de l'autre puis revient à sa position de départ :
|
|
</p>
|
|
<img data-lang="blockly" src="function_blockly.png" style="height:140px"/>
|
|
<img data-lang="scratch" src="function_scratch.png" style="height:200px"/>
|
|
<pre data-lang="python">
|
|
def cactus():
|
|
peindre()
|
|
haut()
|
|
peindre()
|
|
bas()
|
|
</pre>
|
|
<p>
|
|
Et voici un exemple de programme qui utilise cette fonction, et son résultat :
|
|
</p>
|
|
<img data-lang="blockly" src="use_function_blockly.png" style="height:150px" />
|
|
<img data-lang="scratch" src="use_function_scratch.png" style="height:220px" />
|
|
<pre data-lang="python">
|
|
droite()
|
|
cactus()
|
|
droite()
|
|
droite()
|
|
cactus()
|
|
</pre>
|
|
<img src="result_function.png" style="height:80px" />
|
|
|
|
</div>
|
|
<div class="medium">
|
|
<p>
|
|
Pour ne pas dépasser le nombre de blocs autorisés, vous devrez également utiliser des blocs de répétition.
|
|
</p>
|
|
</div>
|
|
<div class="hard">
|
|
<p class="hard">
|
|
Dans cette version, pensez à utiliser plusieurs fonctions pour économiser des blocs ! <span data-lang="blockly scratch">Vous pouvez glisser un nouveau bloc de définition de fonction et lui donner un autre nom que celui de la première fonction.</span>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="gridContainer"></div>
|
|
<div id="blocklyLibContent"></div>
|
|
</div>
|
|
|
|
</div><!-- task -->
|
|
</body>
|
|
</html>
|
|
|