// cfg2000fr_compteur_binaire_auto.js
// Tout ce qui suit un double slash sont des commentaires, jusqu'à la fin de la ligne.
/*
Les blocs de lignes commençant par 'slash étoile' et terminant par 'étoile slash' sont des commentaires
Ceci est un fichier de configuration, qui permet de définir :
° la toolbox = l'ensemble des blocs disponibles
° la startblocs = les blocs présents au départ
° la définition des cases
° la définition des cartes présentes
° les fenêtres visibles et cachées
° la position des fenêtres
° la taille des fenêtres
° divers autres paramètres.
Ce fichier de configuration est un programme écrit en javascript.
Ceci rend la configuration très souple et puissante.
Il n'est pas nécessaire de tout comprendre pour prendre un fichier de configuration
existant, faire quelques modification et obtenir ainsi un nouveau fichier de fonfiguration.
*/
//-------------------------------------------------
/*
Ce fichier de configuration défini un compteur binaire.
*/
// ########################################################################################
function confToolBoxInit() {
//==========================
// Définition de la toolbox utilisée.
} // confToolBoxInit
function confStartBlocksInit() {
//==============================
// Définition des blocs présents au départ
// C'est long mais simple à faire.
// On :
// ° place les blocs désirés dans ex2000.html
// ° Fichiers enregistrer sous ...
// ° demande de voir le fichier dans un éditeur de texte.
// ° fait un copier-coller du texte.
// ° ajoute des +'\n' en début de chaque ligne (sauf la première)
// ° ajoute des ' en fin de ligne.
gloB.demoWorkspace.clear(); // Enlève tous les blocs, c.f. : https://developers.google.com/blockly/reference/js/Blockly.WorkspaceSvg#cleanUp
var strText =
''
+'\n '
+'\n i'
+'\n '
+'\n '
+'\n '
+'\n '
+'\n Fait un compteur de 0 à 8'
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n 8'
+'\n '
+'\n '
+'\n '
+'\n '
+'\n i'
+'\n '
+'\n '
+'\n 5'
+'\n '
+'\n '
+'\n '
+'\n '
+'\n 1'
+'\n '
+'\n '
+'\n '
+'\n '
+'\n 1'
+'\n '
+'\n '
+'\n '
+'\n '
+'\n 1'
+'\n '
+'\n '
+'\n 3'
+'\n '
+'\n '
+'\n i'
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n EQ'
+'\n '
+'\n '
+'\n '
+'\n '
+'\n 3'
+'\n '
+'\n '
+'\n i'
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n 1049'
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n BREAK'
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n NONE'
+'\n '
+'\n '
+'\n 1'
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n '
+'\n'
+'\n';
var xml = Blockly.Xml.textToDom(strText);
Blockly.Xml.domToWorkspace(xml, gloB.demoWorkspace);
} // confStartBlocksInit
function confParamInit() {
//========================
// Définition de certains paramètres
// c.f. bglibrary_frame_card.js
// c.f. bglibrary_abase.js
gloCanvas.marginRight = 5; // marge entre la droite du dernier cadre et la droite du canvas
gloCanvas.marginBottom = 5 + 6; // marge entre le bas du dernier cadre et le bas du canvas + 6 pour le numéro de la case.
gloCanvas.backgroundColor = "rgb(255,255,250)"; // Couleur de fond du canvas
// Sont défini dans : confFrameCardsInit
gloCanvas.strSource = "../images/Carte"; // Source des images des cartes, un nombre entre 100 et 999 suivra
gloCanvas.strExt = ".png"; // Extension des images des cartes. ".png", ".jpg" et ".gif" est habituel.
// function window_config(idWin, nVisible, nPosX, nPosY, nWidth, nHeight) définit dans : ex2000.js
// idWin est une référence à la fenêtre à modifier.
// nVisible == 1 pour être visible ; == 0 pour être caché ; autre => ne change pas la visibilité
// Positions et dimensions en pixels. -9999 => reste inchangé.
// dimension <= 0 => reste inchangé
window_config('idDisplay', 0, -9999, -9999, 0, 0); // Fenêtre d'affichage
window_config('idCodeBlockly', -1, -9999, -9999, 0, 0); // Fenêtre Blockly, tout reste inchangé
window_config('idCodeJavascript', -1, -9999, -9999, 0, 0); // Fenêtre Javascript, tout, reste inchangé
window_config('idCodePython', 0, -9999, -9999, 0, 0); // Fenêtre Python, carchée, reste inchangé
window_config('idCodeLua', 0, -9999, -9999, 0, 0); // Fenêtre Lua, carchée, reste inchangé
window_config('idVariableSpy', 0, -9999, -9999, 0, 0); // Fenêtre des valeurs de variables cachée, carchée, reste inchangé
window_config('idFrameCards', 1, -9999, -9999, 0, 0); // Fenêtre du jeu de cartes, tout, reste inchangé
} // confParamInit
function confFramesInit() {
//=========================
// Initialisation des cadres
confToolBoxInit();
//setTimeout(confStartBlocksInit, 8000);
// Définition de quelques cadres
// Les unités de position et de tailles sont arbitraires, car
// elles s'adaptent aux dimensions du canvas.
var nXmax = 5;
var nYmax = 1;
var nn = 0;
for (var nY=0; nY\n";
glaoFrames[nn].nNbCards = 1; // Certains cadres ont des cartes, c.f. "data-frame"
} // for
document.getElementById('idCards').innerHTML = strInstr;
// Écriture de texte pour indiquer ce que chaque carte représente
// n°, posX, posY, texte
CardTextWrite(0, 34, 160, "2^4 2^3 2^2 2^1 2^0");
} // confCardsInit
function confMessageBegin() {
//==========================
// Permet d'afficher un message au départ,
// que l'on peut revoir en cliquant sur le point d'interrogation
// Si on en veut aucun, on peut laisser cette fonction vide,
// ou ne pas l'appeler ci-dessous.
// insert un espace
//
insert un retour à la ligne
// .. pour mettre du texte en gras
// toutes les balises HTML sont acceptée, y compris les styles CSS.
// Consultez le code source du fichier "ex2000.html" pour d'autres "id"
// permettant de faire d'autres modifications depuis ici.
// Change le contenu de la fenêtre "A'de..."
//
est une balise pour sauter une ligne. Toutes la synthaxe HTML est disponible.
document.getElementById('HTML_MAIN_TITLE2').innerHTML = ""
+ " Exemple d'un compteur en binaire
"
+ " C'est la manière de compter en base 2.
"
+ " En base 2 : 1 + 1 = 10.
"
;
// Changement du titre du message
document.getElementById('HTML_MESSAGE').innerHTML =
" Un compteur binaire. "
;
// Change le contenu de la fenêtre "À propos..."
document.getElementById('HTML_ABOUT2').innerHTML =
" Configuration créée par Bernard Gisin
"
+ " le 3 janvier 2020."
+ "
"
;
// Changement du titre de la boîte de dialogue "À propos de..."
document.getElementById('HTML_ABOUT1').innerHTML =
" Montre l'exemple de programmer un compteur binaire. "
;
DialogHelp(true);
} // confMessageBegin
// Exécution des fonctions d'initialisations.
ConfigInitClear(); // Pour préparer une nouvelle configuration
confToolBoxInit();
confStartBlocksInit();
confParamInit();
confFramesInit();
confCardsInit();
// Pour placer les cartes correctement dans les cadres.
myFrameCardsResize(null);
// Boîte de dialogue initiale, expliquant ce qu'il faut faire.
// Elle revient si on clique sur le point d'interrogation.
confMessageBegin();