Méthode de résolution de labyrinthe avec l'algorithme A* implémenté à l'aide d'une queue de priorité. Ce programme montre également comment passer d'un tableau bidimensionnel à un tableau unidimensionnel pour représenter le labyrinthe.
Pour plus d'informations sur l'algorithme A* : Recherche de chemin: A* (http://fr.wikipedia.org/wiki/Algorithme_A%2A)
Le principe de base de RSA est de conciderer un message comme un (grand) nombre entier et de faire des calculs dessus pour le chiffrer.
Les implémentations que l'on trouve dans le monde industriel utilient des librairies de calcul sur des entiers arbitrairement longs très optimiées et difficiles à comprendre.
Le but de ce petit programme est d'implementer RSA sur des entiers "classiques" et sans la moindre optimisation pour mieux comprendre l'algorithme.
Pour autant, cette implementation est parfaitement conforme à l'algorithme RSA.
Sa seule limitation est taille de la clef qui est de 31 bits au maximum.
Ce qui donne un niveau de sécurité à peu près nul (il faut au moins 512 bits pour que l'on puisse commencer à parler de sécurité).
Le type des entiers est 'big_int' qui peut être un long (32bits) ou un long long (64bits).
Mais il peut être remplacé par n'importe quel type qui supporte les opérateurs d'affectation, d'arithmétiques classiques (*+/-%) et de comparaison.
Le code est en c++ tout à fait standard, mais est livré avec un projet Visual Studio 2005.
Cette fonction vous renvoie l'adresse IP du poste sur lequel elle est exécutée : si vous n'êtes pas reliés au réseau, mais relié à Internet, elle vous renverra votre adresse IP de connexion.
Jeu du taquin programmé avec la bibliothèque GTK+. Le programme permet de choisir son découpage et également de choisir l'image sur laquelle s'amuser !
C_Str est un objet String qui connaît lui même la taille de la chaîne de caractères qu'il contient.
Outre la faculté de connaître automatiquement la taille de sa chaîne, il dispose de plus de 30 fonctions de traitement sur les chaînes de caractères. Ces fonctions sont des idées reprises de différents langages (Java, Python) : concaténation entre l'objet string et de multiples chaînes de caractères, concaténation entre plusieurs objets string, différentes fonctions de changement de la casse de la chaîne, inversion de la chaîne, clonage de l'objet string, etc...
L'objet string est dynamique, ce qui veut dire que si vous changez la chaîne de caractères au sein même de l'objet avec les fonctions fournies, sa taille est mise à jour. La chaîne contenue dans un objet string est terminée avec un zéro de fin de chaîne.
Page officielle de cette source : http://franckh.developpez.com/cstr/
C_IniFile est un module qui sert à créer et gérer des fichiers de configuration dans le même style que ceux de Windows.
Ceci étant, ce code est indépendant du système d'exploitation, il est écrit en C Standard. Ce code permet donc de créer des fichiers de configuration, d'en ajouter des données par paire: clé/valeur et aussi de créer des groupes d'options (ou sections), de récupérer des données enregistrées et de supprimer des sections entières ou tout simplement une donnée bien précise d'après le nom de sa clé.
Cette source dans sa version 3.0, est une version très stable est testé dans un projet de petit système d'exploitation, voici sa page officielle: http://franckh.developpez.com/cinifile/
Ce code permet de ne pas afficher à l'écran les caractères saisis (ils sont remplacés par le caractère mask).
Nécessite getch, disponible dans la bibliothèque curses.
OpenCV (Open Source Computer Vision) est une bibliothèque visant principalement à la vision par ordinateur en temps réel. Elle a été initialement développé par Intel, et est maintenant soutenue par Willow Garage et Itseez. elle est gratuite pour une utilisation sous la licence open source BSD. La bibliothèque est multi-plateforme. Avec plus de 2500 algorithmes optimisés, elle comprend un ensemble complet d'algorithmes d'apprentissage classique et les dernières innovations en vision par ordinateur. Ces algorithmes peuvent être utilisés pour détecter et reconnaître des visages, identifier des objets, classer les actions humaines dans les vidéos, suivre les mouvements de caméra, suivre des objets en mouvement, extraire des modèles 3D d'objets, produire des nuages de points 3D à partir de caméras stéréo, assembler des images pour produire des images haute resolution d'une scène, trouver des images similaires à partir d'une base de données d'image, supprimer les yeux rouges des images prises au flash, suivre les mouvements des yeux, reconnaître des paysages et établir des marqueurs pour superposer des réalités augmentées, etc