Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

old project

Old funny project on vba, Instructions in french :

  1. Module 1 : Il permet de quitter le Userform. C’est une macro qui s’active lorsqu’on clique sur le bouton « Quitter ».

  2. Module 2 : Il permet de réinitialiser le contenu des cellules. Il faut rentrer les valeurs de la dimension souhaitée afin de nettoyer la zone souhaitée. Il utilise la fonction .clear donc efface tout, c’est à dire le rectangle et les obstacles générés. Ce processus s’active lorsqu’on clique sur « Réinitialiser les données ».

  3. Module 3 : Il va créer un rectangle dans lequel nous allons travailler. Si l’on crée un rectangle de dimension 20x20, la zone de déplacement de la marche aléatoire sera en réalité 18x18. Pour créer le rectangle, il suffit de donner le nombre de ligne et de colonnes. Nous avons ajouté une fonction de zoom qui adapte l’échelle en fonction de la taille du rectangle, néanmoins si on veut travailler sur des rectangles de grandes dimensions (supérieures à 100x100), cette option de zoom doit être retravaillée. Ce processus s’active lorsqu’on clique sur « Créer un rectangle ».

  4. Module 4 : Nous avons décidé de garder ce module afin de vous montrer comment nous avions imaginé le processus de la marche aléatoire au départ. Dans un 1er temps, une cellule est sélectionnée aléatoirement grâce à la fonction Rnd vu en cours. Lors de la sélection de cette cellule de départ nous avons eu pour contrainte de nous assurer que cette cellule était bien dans le rectangle. Dans un 2nd temps, nous avons utilisé une boucle For afin de réitérer le processus le nombre indiqué de fois par l’utilisateur. Ce processus aléatoire suit une loi uniforme de probabilité ¼. Nous avons également posé des conditions pour que le déplacement se limite à l’intérieur du rectangle:

  • Si on est à côté d’un bord, nous passons de 1 chance sur 4 d’aller sur une des cases adjacentes à 1 chance sur 3.
  • Si on est dans un coin, on passe à 1 chance sur 2. Enfin, nous avons utilisé une fonction permettant de colorer chaque cellule sélectionnée.
  1. Module 5 : Il reprend le concept du module 4 mais l’approche est totalement différente. Le déplacement de la cellule est maintenant contraint par les cases noires délimitant le rectangle et non plus par les coordonnées des bordures. Cette flexibilité nous permet d’intégrer des obstacles à l’intérieur du rectangle. De plus nous avons remplacé l’ancienne boucle For par une boucle While, boucle qui s’arrêtera une fois le tableau totalement remplit. Le processus de sélection de la 1ère case reste le même. Plus précisément, ici, au lieu de poser des conditions sur les bords, nous avons pensé qu’il fallait simplement vérifier la validité de la case choisie aléatoirement, c’est à dire vérifier si cette case est déjà coloriée en noir : Si la cellule est de couleur noire alors on revient à la précédente, sinon la cellule est coloriée en rouge. Nous avons ajouté une variable ayant un rôle de compteur d’itération qui nous permet de faire des statistiques simples. Enfin, nous avons ajouté un Msgbox indiquant le nombre d’itérations nécessaires pour colorier l’intégralité du tableau. Ce module s’active lorsqu’on clique sur le bouton « Marche aléatoire complète » et sur le bouton « Go ! ». C’est le cœur de notre projet.

  2. Module 6 : Il permet d’effacer le contenu du rectangle sans toucher aux obstacles. Il parcourt l’intégralité du rectangle et efface toutes les cases rouges qui sont à l’intérieur. Il s’active en cliquant sur « Effacer le contenu ».

  3. Module 7 : Il fait apparaître des obstacles aléatoirement. Nous avons utilisé la fonction Rnd comme précédemment et ici encore nous avons eu pour contrainte de les faire apparaître à l’intérieur du rectangle. Chaque obstacle mesure 7 cases précisément. Le module choisi une case aléatoirement dans le rectangle en faisant attention de ne pas se trouver coller à un bord, puis va générer des cases noires aléatoirement autour de lui. Une fois qu’il a colorié 7 cases en noires, il s’arrête. Ce module s’active en cliquant sur « Créer un obstacle ».

  4. Module 8 : Il permet d’effacer le contenu des cellules de la feuille et de faire apparaître le UserForm. C’est la fonction Start.

  5. Module 9 : Il permet de faire apparaître un histogramme, nous avons utilisé pour cela la commande « Enregistreur de macro » permettant de coder les actions que nous effectuons.

About

Old funny project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

old project

Old funny project on vba, Instructions in french :

  1. Module 1 : Il permet de quitter le Userform. C’est une macro qui s’active lorsqu’on clique sur le bouton « Quitter ».

  2. Module 2 : Il permet de réinitialiser le contenu des cellules. Il faut rentrer les valeurs de la dimension souhaitée afin de nettoyer la zone souhaitée. Il utilise la fonction .clear donc efface tout, c’est à dire le rectangle et les obstacles générés. Ce processus s’active lorsqu’on clique sur « Réinitialiser les données ».

  3. Module 3 : Il va créer un rectangle dans lequel nous allons travailler. Si l’on crée un rectangle de dimension 20x20, la zone de déplacement de la marche aléatoire sera en réalité 18x18. Pour créer le rectangle, il suffit de donner le nombre de ligne et de colonnes. Nous avons ajouté une fonction de zoom qui adapte l’échelle en fonction de la taille du rectangle, néanmoins si on veut travailler sur des rectangles de grandes dimensions (supérieures à 100x100), cette option de zoom doit être retravaillée. Ce processus s’active lorsqu’on clique sur « Créer un rectangle ».

  4. Module 4 : Nous avons décidé de garder ce module afin de vous montrer comment nous avions imaginé le processus de la marche aléatoire au départ. Dans un 1er temps, une cellule est sélectionnée aléatoirement grâce à la fonction Rnd vu en cours. Lors de la sélection de cette cellule de départ nous avons eu pour contrainte de nous assurer que cette cellule était bien dans le rectangle. Dans un 2nd temps, nous avons utilisé une boucle For afin de réitérer le processus le nombre indiqué de fois par l’utilisateur. Ce processus aléatoire suit une loi uniforme de probabilité ¼. Nous avons également posé des conditions pour que le déplacement se limite à l’intérieur du rectangle:

  • Si on est à côté d’un bord, nous passons de 1 chance sur 4 d’aller sur une des cases adjacentes à 1 chance sur 3.
  • Si on est dans un coin, on passe à 1 chance sur 2. Enfin, nous avons utilisé une fonction permettant de colorer chaque cellule sélectionnée.
  1. Module 5 : Il reprend le concept du module 4 mais l’approche est totalement différente. Le déplacement de la cellule est maintenant contraint par les cases noires délimitant le rectangle et non plus par les coordonnées des bordures. Cette flexibilité nous permet d’intégrer des obstacles à l’intérieur du rectangle. De plus nous avons remplacé l’ancienne boucle For par une boucle While, boucle qui s’arrêtera une fois le tableau totalement remplit. Le processus de sélection de la 1ère case reste le même. Plus précisément, ici, au lieu de poser des conditions sur les bords, nous avons pensé qu’il fallait simplement vérifier la validité de la case choisie aléatoirement, c’est à dire vérifier si cette case est déjà coloriée en noir : Si la cellule est de couleur noire alors on revient à la précédente, sinon la cellule est coloriée en rouge. Nous avons ajouté une variable ayant un rôle de compteur d’itération qui nous permet de faire des statistiques simples. Enfin, nous avons ajouté un Msgbox indiquant le nombre d’itérations nécessaires pour colorier l’intégralité du tableau. Ce module s’active lorsqu’on clique sur le bouton « Marche aléatoire complète » et sur le bouton « Go ! ». C’est le cœur de notre projet.

  2. Module 6 : Il permet d’effacer le contenu du rectangle sans toucher aux obstacles. Il parcourt l’intégralité du rectangle et efface toutes les cases rouges qui sont à l’intérieur. Il s’active en cliquant sur « Effacer le contenu ».

  3. Module 7 : Il fait apparaître des obstacles aléatoirement. Nous avons utilisé la fonction Rnd comme précédemment et ici encore nous avons eu pour contrainte de les faire apparaître à l’intérieur du rectangle. Chaque obstacle mesure 7 cases précisément. Le module choisi une case aléatoirement dans le rectangle en faisant attention de ne pas se trouver coller à un bord, puis va générer des cases noires aléatoirement autour de lui. Une fois qu’il a colorié 7 cases en noires, il s’arrête. Ce module s’active en cliquant sur « Créer un obstacle ».

  4. Module 8 : Il permet d’effacer le contenu des cellules de la feuille et de faire apparaître le UserForm. C’est la fonction Start.

  5. Module 9 : Il permet de faire apparaître un histogramme, nous avons utilisé pour cela la commande « Enregistreur de macro » permettant de coder les actions que nous effectuons.

About

Old funny project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

old project

Old funny project on vba, Instructions in french :

  1. Module 1 : Il permet de quitter le Userform. C’est une macro qui s’active lorsqu’on clique sur le bouton « Quitter ».

  2. Module 2 : Il permet de réinitialiser le contenu des cellules. Il faut rentrer les valeurs de la dimension souhaitée afin de nettoyer la zone souhaitée. Il utilise la fonction .clear donc efface tout, c’est à dire le rectangle et les obstacles générés. Ce processus s’active lorsqu’on clique sur « Réinitialiser les données ».

  3. Module 3 : Il va créer un rectangle dans lequel nous allons travailler. Si l’on crée un rectangle de dimension 20x20, la zone de déplacement de la marche aléatoire sera en réalité 18x18. Pour créer le rectangle, il suffit de donner le nombre de ligne et de colonnes. Nous avons ajouté une fonction de zoom qui adapte l’échelle en fonction de la taille du rectangle, néanmoins si on veut travailler sur des rectangles de grandes dimensions (supérieures à 100x100), cette option de zoom doit être retravaillée. Ce processus s’active lorsqu’on clique sur « Créer un rectangle ».

  4. Module 4 : Nous avons décidé de garder ce module afin de vous montrer comment nous avions imaginé le processus de la marche aléatoire au départ. Dans un 1er temps, une cellule est sélectionnée aléatoirement grâce à la fonction Rnd vu en cours. Lors de la sélection de cette cellule de départ nous avons eu pour contrainte de nous assurer que cette cellule était bien dans le rectangle. Dans un 2nd temps, nous avons utilisé une boucle For afin de réitérer le processus le nombre indiqué de fois par l’utilisateur. Ce processus aléatoire suit une loi uniforme de probabilité ¼. Nous avons également posé des conditions pour que le déplacement se limite à l’intérieur du rectangle:

  • Si on est à côté d’un bord, nous passons de 1 chance sur 4 d’aller sur une des cases adjacentes à 1 chance sur 3.
  • Si on est dans un coin, on passe à 1 chance sur 2. Enfin, nous avons utilisé une fonction permettant de colorer chaque cellule sélectionnée.
  1. Module 5 : Il reprend le concept du module 4 mais l’approche est totalement différente. Le déplacement de la cellule est maintenant contraint par les cases noires délimitant le rectangle et non plus par les coordonnées des bordures. Cette flexibilité nous permet d’intégrer des obstacles à l’intérieur du rectangle. De plus nous avons remplacé l’ancienne boucle For par une boucle While, boucle qui s’arrêtera une fois le tableau totalement remplit. Le processus de sélection de la 1ère case reste le même. Plus précisément, ici, au lieu de poser des conditions sur les bords, nous avons pensé qu’il fallait simplement vérifier la validité de la case choisie aléatoirement, c’est à dire vérifier si cette case est déjà coloriée en noir : Si la cellule est de couleur noire alors on revient à la précédente, sinon la cellule est coloriée en rouge. Nous avons ajouté une variable ayant un rôle de compteur d’itération qui nous permet de faire des statistiques simples. Enfin, nous avons ajouté un Msgbox indiquant le nombre d’itérations nécessaires pour colorier l’intégralité du tableau. Ce module s’active lorsqu’on clique sur le bouton « Marche aléatoire complète » et sur le bouton « Go ! ». C’est le cœur de notre projet.

  2. Module 6 : Il permet d’effacer le contenu du rectangle sans toucher aux obstacles. Il parcourt l’intégralité du rectangle et efface toutes les cases rouges qui sont à l’intérieur. Il s’active en cliquant sur « Effacer le contenu ».

  3. Module 7 : Il fait apparaître des obstacles aléatoirement. Nous avons utilisé la fonction Rnd comme précédemment et ici encore nous avons eu pour contrainte de les faire apparaître à l’intérieur du rectangle. Chaque obstacle mesure 7 cases précisément. Le module choisi une case aléatoirement dans le rectangle en faisant attention de ne pas se trouver coller à un bord, puis va générer des cases noires aléatoirement autour de lui. Une fois qu’il a colorié 7 cases en noires, il s’arrête. Ce module s’active en cliquant sur « Créer un obstacle ».

  4. Module 8 : Il permet d’effacer le contenu des cellules de la feuille et de faire apparaître le UserForm. C’est la fonction Start.

  5. Module 9 : Il permet de faire apparaître un histogramme, nous avons utilisé pour cela la commande « Enregistreur de macro » permettant de coder les actions que nous effectuons.

About

Old funny project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

old project

Old funny project on vba, Instructions in french :

  1. Module 1 : Il permet de quitter le Userform. C’est une macro qui s’active lorsqu’on clique sur le bouton « Quitter ».

  2. Module 2 : Il permet de réinitialiser le contenu des cellules. Il faut rentrer les valeurs de la dimension souhaitée afin de nettoyer la zone souhaitée. Il utilise la fonction .clear donc efface tout, c’est à dire le rectangle et les obstacles générés. Ce processus s’active lorsqu’on clique sur « Réinitialiser les données ».

  3. Module 3 : Il va créer un rectangle dans lequel nous allons travailler. Si l’on crée un rectangle de dimension 20x20, la zone de déplacement de la marche aléatoire sera en réalité 18x18. Pour créer le rectangle, il suffit de donner le nombre de ligne et de colonnes. Nous avons ajouté une fonction de zoom qui adapte l’échelle en fonction de la taille du rectangle, néanmoins si on veut travailler sur des rectangles de grandes dimensions (supérieures à 100x100), cette option de zoom doit être retravaillée. Ce processus s’active lorsqu’on clique sur « Créer un rectangle ».

  4. Module 4 : Nous avons décidé de garder ce module afin de vous montrer comment nous avions imaginé le processus de la marche aléatoire au départ. Dans un 1er temps, une cellule est sélectionnée aléatoirement grâce à la fonction Rnd vu en cours. Lors de la sélection de cette cellule de départ nous avons eu pour contrainte de nous assurer que cette cellule était bien dans le rectangle. Dans un 2nd temps, nous avons utilisé une boucle For afin de réitérer le processus le nombre indiqué de fois par l’utilisateur. Ce processus aléatoire suit une loi uniforme de probabilité ¼. Nous avons également posé des conditions pour que le déplacement se limite à l’intérieur du rectangle:

  • Si on est à côté d’un bord, nous passons de 1 chance sur 4 d’aller sur une des cases adjacentes à 1 chance sur 3.
  • Si on est dans un coin, on passe à 1 chance sur 2. Enfin, nous avons utilisé une fonction permettant de colorer chaque cellule sélectionnée.
  1. Module 5 : Il reprend le concept du module 4 mais l’approche est totalement différente. Le déplacement de la cellule est maintenant contraint par les cases noires délimitant le rectangle et non plus par les coordonnées des bordures. Cette flexibilité nous permet d’intégrer des obstacles à l’intérieur du rectangle. De plus nous avons remplacé l’ancienne boucle For par une boucle While, boucle qui s’arrêtera une fois le tableau totalement remplit. Le processus de sélection de la 1ère case reste le même. Plus précisément, ici, au lieu de poser des conditions sur les bords, nous avons pensé qu’il fallait simplement vérifier la validité de la case choisie aléatoirement, c’est à dire vérifier si cette case est déjà coloriée en noir : Si la cellule est de couleur noire alors on revient à la précédente, sinon la cellule est coloriée en rouge. Nous avons ajouté une variable ayant un rôle de compteur d’itération qui nous permet de faire des statistiques simples. Enfin, nous avons ajouté un Msgbox indiquant le nombre d’itérations nécessaires pour colorier l’intégralité du tableau. Ce module s’active lorsqu’on clique sur le bouton « Marche aléatoire complète » et sur le bouton « Go ! ». C’est le cœur de notre projet.

  2. Module 6 : Il permet d’effacer le contenu du rectangle sans toucher aux obstacles. Il parcourt l’intégralité du rectangle et efface toutes les cases rouges qui sont à l’intérieur. Il s’active en cliquant sur « Effacer le contenu ».

  3. Module 7 : Il fait apparaître des obstacles aléatoirement. Nous avons utilisé la fonction Rnd comme précédemment et ici encore nous avons eu pour contrainte de les faire apparaître à l’intérieur du rectangle. Chaque obstacle mesure 7 cases précisément. Le module choisi une case aléatoirement dans le rectangle en faisant attention de ne pas se trouver coller à un bord, puis va générer des cases noires aléatoirement autour de lui. Une fois qu’il a colorié 7 cases en noires, il s’arrête. Ce module s’active en cliquant sur « Créer un obstacle ».

  4. Module 8 : Il permet d’effacer le contenu des cellules de la feuille et de faire apparaître le UserForm. C’est la fonction Start.

  5. Module 9 : Il permet de faire apparaître un histogramme, nous avons utilisé pour cela la commande « Enregistreur de macro » permettant de coder les actions que nous effectuons.

About

Old funny project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

old project

Old funny project on vba, Instructions in french :

  1. Module 1 : Il permet de quitter le Userform. C’est une macro qui s’active lorsqu’on clique sur le bouton « Quitter ».

  2. Module 2 : Il permet de réinitialiser le contenu des cellules. Il faut rentrer les valeurs de la dimension souhaitée afin de nettoyer la zone souhaitée. Il utilise la fonction .clear donc efface tout, c’est à dire le rectangle et les obstacles générés. Ce processus s’active lorsqu’on clique sur « Réinitialiser les données ».

  3. Module 3 : Il va créer un rectangle dans lequel nous allons travailler. Si l’on crée un rectangle de dimension 20x20, la zone de déplacement de la marche aléatoire sera en réalité 18x18. Pour créer le rectangle, il suffit de donner le nombre de ligne et de colonnes. Nous avons ajouté une fonction de zoom qui adapte l’échelle en fonction de la taille du rectangle, néanmoins si on veut travailler sur des rectangles de grandes dimensions (supérieures à 100x100), cette option de zoom doit être retravaillée. Ce processus s’active lorsqu’on clique sur « Créer un rectangle ».

  4. Module 4 : Nous avons décidé de garder ce module afin de vous montrer comment nous avions imaginé le processus de la marche aléatoire au départ. Dans un 1er temps, une cellule est sélectionnée aléatoirement grâce à la fonction Rnd vu en cours. Lors de la sélection de cette cellule de départ nous avons eu pour contrainte de nous assurer que cette cellule était bien dans le rectangle. Dans un 2nd temps, nous avons utilisé une boucle For afin de réitérer le processus le nombre indiqué de fois par l’utilisateur. Ce processus aléatoire suit une loi uniforme de probabilité ¼. Nous avons également posé des conditions pour que le déplacement se limite à l’intérieur du rectangle:

  • Si on est à côté d’un bord, nous passons de 1 chance sur 4 d’aller sur une des cases adjacentes à 1 chance sur 3.
  • Si on est dans un coin, on passe à 1 chance sur 2. Enfin, nous avons utilisé une fonction permettant de colorer chaque cellule sélectionnée.
  1. Module 5 : Il reprend le concept du module 4 mais l’approche est totalement différente. Le déplacement de la cellule est maintenant contraint par les cases noires délimitant le rectangle et non plus par les coordonnées des bordures. Cette flexibilité nous permet d’intégrer des obstacles à l’intérieur du rectangle. De plus nous avons remplacé l’ancienne boucle For par une boucle While, boucle qui s’arrêtera une fois le tableau totalement remplit. Le processus de sélection de la 1ère case reste le même. Plus précisément, ici, au lieu de poser des conditions sur les bords, nous avons pensé qu’il fallait simplement vérifier la validité de la case choisie aléatoirement, c’est à dire vérifier si cette case est déjà coloriée en noir : Si la cellule est de couleur noire alors on revient à la précédente, sinon la cellule est coloriée en rouge. Nous avons ajouté une variable ayant un rôle de compteur d’itération qui nous permet de faire des statistiques simples. Enfin, nous avons ajouté un Msgbox indiquant le nombre d’itérations nécessaires pour colorier l’intégralité du tableau. Ce module s’active lorsqu’on clique sur le bouton « Marche aléatoire complète » et sur le bouton « Go ! ». C’est le cœur de notre projet.

  2. Module 6 : Il permet d’effacer le contenu du rectangle sans toucher aux obstacles. Il parcourt l’intégralité du rectangle et efface toutes les cases rouges qui sont à l’intérieur. Il s’active en cliquant sur « Effacer le contenu ».

  3. Module 7 : Il fait apparaître des obstacles aléatoirement. Nous avons utilisé la fonction Rnd comme précédemment et ici encore nous avons eu pour contrainte de les faire apparaître à l’intérieur du rectangle. Chaque obstacle mesure 7 cases précisément. Le module choisi une case aléatoirement dans le rectangle en faisant attention de ne pas se trouver coller à un bord, puis va générer des cases noires aléatoirement autour de lui. Une fois qu’il a colorié 7 cases en noires, il s’arrête. Ce module s’active en cliquant sur « Créer un obstacle ».

  4. Module 8 : Il permet d’effacer le contenu des cellules de la feuille et de faire apparaître le UserForm. C’est la fonction Start.

  5. Module 9 : Il permet de faire apparaître un histogramme, nous avons utilisé pour cela la commande « Enregistreur de macro » permettant de coder les actions que nous effectuons.

About

Old funny project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

old project

Old funny project on vba, Instructions in french :

  1. Module 1 : Il permet de quitter le Userform. C’est une macro qui s’active lorsqu’on clique sur le bouton « Quitter ».

  2. Module 2 : Il permet de réinitialiser le contenu des cellules. Il faut rentrer les valeurs de la dimension souhaitée afin de nettoyer la zone souhaitée. Il utilise la fonction .clear donc efface tout, c’est à dire le rectangle et les obstacles générés. Ce processus s’active lorsqu’on clique sur « Réinitialiser les données ».

  3. Module 3 : Il va créer un rectangle dans lequel nous allons travailler. Si l’on crée un rectangle de dimension 20x20, la zone de déplacement de la marche aléatoire sera en réalité 18x18. Pour créer le rectangle, il suffit de donner le nombre de ligne et de colonnes. Nous avons ajouté une fonction de zoom qui adapte l’échelle en fonction de la taille du rectangle, néanmoins si on veut travailler sur des rectangles de grandes dimensions (supérieures à 100x100), cette option de zoom doit être retravaillée. Ce processus s’active lorsqu’on clique sur « Créer un rectangle ».

  4. Module 4 : Nous avons décidé de garder ce module afin de vous montrer comment nous avions imaginé le processus de la marche aléatoire au départ. Dans un 1er temps, une cellule est sélectionnée aléatoirement grâce à la fonction Rnd vu en cours. Lors de la sélection de cette cellule de départ nous avons eu pour contrainte de nous assurer que cette cellule était bien dans le rectangle. Dans un 2nd temps, nous avons utilisé une boucle For afin de réitérer le processus le nombre indiqué de fois par l’utilisateur. Ce processus aléatoire suit une loi uniforme de probabilité ¼. Nous avons également posé des conditions pour que le déplacement se limite à l’intérieur du rectangle:

  • Si on est à côté d’un bord, nous passons de 1 chance sur 4 d’aller sur une des cases adjacentes à 1 chance sur 3.
  • Si on est dans un coin, on passe à 1 chance sur 2. Enfin, nous avons utilisé une fonction permettant de colorer chaque cellule sélectionnée.
  1. Module 5 : Il reprend le concept du module 4 mais l’approche est totalement différente. Le déplacement de la cellule est maintenant contraint par les cases noires délimitant le rectangle et non plus par les coordonnées des bordures. Cette flexibilité nous permet d’intégrer des obstacles à l’intérieur du rectangle. De plus nous avons remplacé l’ancienne boucle For par une boucle While, boucle qui s’arrêtera une fois le tableau totalement remplit. Le processus de sélection de la 1ère case reste le même. Plus précisément, ici, au lieu de poser des conditions sur les bords, nous avons pensé qu’il fallait simplement vérifier la validité de la case choisie aléatoirement, c’est à dire vérifier si cette case est déjà coloriée en noir : Si la cellule est de couleur noire alors on revient à la précédente, sinon la cellule est coloriée en rouge. Nous avons ajouté une variable ayant un rôle de compteur d’itération qui nous permet de faire des statistiques simples. Enfin, nous avons ajouté un Msgbox indiquant le nombre d’itérations nécessaires pour colorier l’intégralité du tableau. Ce module s’active lorsqu’on clique sur le bouton « Marche aléatoire complète » et sur le bouton « Go ! ». C’est le cœur de notre projet.

  2. Module 6 : Il permet d’effacer le contenu du rectangle sans toucher aux obstacles. Il parcourt l’intégralité du rectangle et efface toutes les cases rouges qui sont à l’intérieur. Il s’active en cliquant sur « Effacer le contenu ».

  3. Module 7 : Il fait apparaître des obstacles aléatoirement. Nous avons utilisé la fonction Rnd comme précédemment et ici encore nous avons eu pour contrainte de les faire apparaître à l’intérieur du rectangle. Chaque obstacle mesure 7 cases précisément. Le module choisi une case aléatoirement dans le rectangle en faisant attention de ne pas se trouver coller à un bord, puis va générer des cases noires aléatoirement autour de lui. Une fois qu’il a colorié 7 cases en noires, il s’arrête. Ce module s’active en cliquant sur « Créer un obstacle ».

  4. Module 8 : Il permet d’effacer le contenu des cellules de la feuille et de faire apparaître le UserForm. C’est la fonction Start.

  5. Module 9 : Il permet de faire apparaître un histogramme, nous avons utilisé pour cela la commande « Enregistreur de macro » permettant de coder les actions que nous effectuons.

About

Old funny project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

old project

Old funny project on vba, Instructions in french :

  1. Module 1 : Il permet de quitter le Userform. C’est une macro qui s’active lorsqu’on clique sur le bouton « Quitter ».

  2. Module 2 : Il permet de réinitialiser le contenu des cellules. Il faut rentrer les valeurs de la dimension souhaitée afin de nettoyer la zone souhaitée. Il utilise la fonction .clear donc efface tout, c’est à dire le rectangle et les obstacles générés. Ce processus s’active lorsqu’on clique sur « Réinitialiser les données ».

  3. Module 3 : Il va créer un rectangle dans lequel nous allons travailler. Si l’on crée un rectangle de dimension 20x20, la zone de déplacement de la marche aléatoire sera en réalité 18x18. Pour créer le rectangle, il suffit de donner le nombre de ligne et de colonnes. Nous avons ajouté une fonction de zoom qui adapte l’échelle en fonction de la taille du rectangle, néanmoins si on veut travailler sur des rectangles de grandes dimensions (supérieures à 100x100), cette option de zoom doit être retravaillée. Ce processus s’active lorsqu’on clique sur « Créer un rectangle ».

  4. Module 4 : Nous avons décidé de garder ce module afin de vous montrer comment nous avions imaginé le processus de la marche aléatoire au départ. Dans un 1er temps, une cellule est sélectionnée aléatoirement grâce à la fonction Rnd vu en cours. Lors de la sélection de cette cellule de départ nous avons eu pour contrainte de nous assurer que cette cellule était bien dans le rectangle. Dans un 2nd temps, nous avons utilisé une boucle For afin de réitérer le processus le nombre indiqué de fois par l’utilisateur. Ce processus aléatoire suit une loi uniforme de probabilité ¼. Nous avons également posé des conditions pour que le déplacement se limite à l’intérieur du rectangle:

  • Si on est à côté d’un bord, nous passons de 1 chance sur 4 d’aller sur une des cases adjacentes à 1 chance sur 3.
  • Si on est dans un coin, on passe à 1 chance sur 2. Enfin, nous avons utilisé une fonction permettant de colorer chaque cellule sélectionnée.
  1. Module 5 : Il reprend le concept du module 4 mais l’approche est totalement différente. Le déplacement de la cellule est maintenant contraint par les cases noires délimitant le rectangle et non plus par les coordonnées des bordures. Cette flexibilité nous permet d’intégrer des obstacles à l’intérieur du rectangle. De plus nous avons remplacé l’ancienne boucle For par une boucle While, boucle qui s’arrêtera une fois le tableau totalement remplit. Le processus de sélection de la 1ère case reste le même. Plus précisément, ici, au lieu de poser des conditions sur les bords, nous avons pensé qu’il fallait simplement vérifier la validité de la case choisie aléatoirement, c’est à dire vérifier si cette case est déjà coloriée en noir : Si la cellule est de couleur noire alors on revient à la précédente, sinon la cellule est coloriée en rouge. Nous avons ajouté une variable ayant un rôle de compteur d’itération qui nous permet de faire des statistiques simples. Enfin, nous avons ajouté un Msgbox indiquant le nombre d’itérations nécessaires pour colorier l’intégralité du tableau. Ce module s’active lorsqu’on clique sur le bouton « Marche aléatoire complète » et sur le bouton « Go ! ». C’est le cœur de notre projet.

  2. Module 6 : Il permet d’effacer le contenu du rectangle sans toucher aux obstacles. Il parcourt l’intégralité du rectangle et efface toutes les cases rouges qui sont à l’intérieur. Il s’active en cliquant sur « Effacer le contenu ».

  3. Module 7 : Il fait apparaître des obstacles aléatoirement. Nous avons utilisé la fonction Rnd comme précédemment et ici encore nous avons eu pour contrainte de les faire apparaître à l’intérieur du rectangle. Chaque obstacle mesure 7 cases précisément. Le module choisi une case aléatoirement dans le rectangle en faisant attention de ne pas se trouver coller à un bord, puis va générer des cases noires aléatoirement autour de lui. Une fois qu’il a colorié 7 cases en noires, il s’arrête. Ce module s’active en cliquant sur « Créer un obstacle ».

  4. Module 8 : Il permet d’effacer le contenu des cellules de la feuille et de faire apparaître le UserForm. C’est la fonction Start.

  5. Module 9 : Il permet de faire apparaître un histogramme, nous avons utilisé pour cela la commande « Enregistreur de macro » permettant de coder les actions que nous effectuons.

About

Old funny project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

old project

Old funny project on vba, Instructions in french :

  1. Module 1 : Il permet de quitter le Userform. C’est une macro qui s’active lorsqu’on clique sur le bouton « Quitter ».

  2. Module 2 : Il permet de réinitialiser le contenu des cellules. Il faut rentrer les valeurs de la dimension souhaitée afin de nettoyer la zone souhaitée. Il utilise la fonction .clear donc efface tout, c’est à dire le rectangle et les obstacles générés. Ce processus s’active lorsqu’on clique sur « Réinitialiser les données ».

  3. Module 3 : Il va créer un rectangle dans lequel nous allons travailler. Si l’on crée un rectangle de dimension 20x20, la zone de déplacement de la marche aléatoire sera en réalité 18x18. Pour créer le rectangle, il suffit de donner le nombre de ligne et de colonnes. Nous avons ajouté une fonction de zoom qui adapte l’échelle en fonction de la taille du rectangle, néanmoins si on veut travailler sur des rectangles de grandes dimensions (supérieures à 100x100), cette option de zoom doit être retravaillée. Ce processus s’active lorsqu’on clique sur « Créer un rectangle ».

  4. Module 4 : Nous avons décidé de garder ce module afin de vous montrer comment nous avions imaginé le processus de la marche aléatoire au départ. Dans un 1er temps, une cellule est sélectionnée aléatoirement grâce à la fonction Rnd vu en cours. Lors de la sélection de cette cellule de départ nous avons eu pour contrainte de nous assurer que cette cellule était bien dans le rectangle. Dans un 2nd temps, nous avons utilisé une boucle For afin de réitérer le processus le nombre indiqué de fois par l’utilisateur. Ce processus aléatoire suit une loi uniforme de probabilité ¼. Nous avons également posé des conditions pour que le déplacement se limite à l’intérieur du rectangle:

  • Si on est à côté d’un bord, nous passons de 1 chance sur 4 d’aller sur une des cases adjacentes à 1 chance sur 3.
  • Si on est dans un coin, on passe à 1 chance sur 2. Enfin, nous avons utilisé une fonction permettant de colorer chaque cellule sélectionnée.
  1. Module 5 : Il reprend le concept du module 4 mais l’approche est totalement différente. Le déplacement de la cellule est maintenant contraint par les cases noires délimitant le rectangle et non plus par les coordonnées des bordures. Cette flexibilité nous permet d’intégrer des obstacles à l’intérieur du rectangle. De plus nous avons remplacé l’ancienne boucle For par une boucle While, boucle qui s’arrêtera une fois le tableau totalement remplit. Le processus de sélection de la 1ère case reste le même. Plus précisément, ici, au lieu de poser des conditions sur les bords, nous avons pensé qu’il fallait simplement vérifier la validité de la case choisie aléatoirement, c’est à dire vérifier si cette case est déjà coloriée en noir : Si la cellule est de couleur noire alors on revient à la précédente, sinon la cellule est coloriée en rouge. Nous avons ajouté une variable ayant un rôle de compteur d’itération qui nous permet de faire des statistiques simples. Enfin, nous avons ajouté un Msgbox indiquant le nombre d’itérations nécessaires pour colorier l’intégralité du tableau. Ce module s’active lorsqu’on clique sur le bouton « Marche aléatoire complète » et sur le bouton « Go ! ». C’est le cœur de notre projet.

  2. Module 6 : Il permet d’effacer le contenu du rectangle sans toucher aux obstacles. Il parcourt l’intégralité du rectangle et efface toutes les cases rouges qui sont à l’intérieur. Il s’active en cliquant sur « Effacer le contenu ».

  3. Module 7 : Il fait apparaître des obstacles aléatoirement. Nous avons utilisé la fonction Rnd comme précédemment et ici encore nous avons eu pour contrainte de les faire apparaître à l’intérieur du rectangle. Chaque obstacle mesure 7 cases précisément. Le module choisi une case aléatoirement dans le rectangle en faisant attention de ne pas se trouver coller à un bord, puis va générer des cases noires aléatoirement autour de lui. Une fois qu’il a colorié 7 cases en noires, il s’arrête. Ce module s’active en cliquant sur « Créer un obstacle ».

  4. Module 8 : Il permet d’effacer le contenu des cellules de la feuille et de faire apparaître le UserForm. C’est la fonction Start.

  5. Module 9 : Il permet de faire apparaître un histogramme, nous avons utilisé pour cela la commande « Enregistreur de macro » permettant de coder les actions que nous effectuons.

About

Old funny project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors