Programme console qui affiche les k-combinaisons sur n éléments distincts.
Ensemble des éléments : {0,1, ..., n}
contraintes : 0 ... > c_(k-1)
Ordre numérique : ordre lexicographique avec c_0 < c_1 < ... < c_(k-1)
----
Exemple de mise en oeuvre de la simulation d'un nombre dynamique de boucles for
Gestion simplifiée des paramètres en ligne de commande
L'ordre Knuth est nommé ainsi suite à une discussion et à l'évocation d'un exemple du fascicule 3a du TAO
----
OS : linux
Compilateur : gcc 4.5
Devrait pouvoir être compilé sur windows (mingw/cygwin) mac(gcc) ou toute autre plateforme pour laquelle les outils GNU sont supportés.
----
Compilation :
Dézipper l'archive
cd kcomb
make
----
Utilisation :
kcomb n k [ordre]
n -> nombre d'éléments distincts (requis)
k -> longueur de la k-combinaison (requis)
ordre -> K = ordre de Knuth/ N = ordre numérique (optionnel, par défaut ordre numérique)
----
Au début, vous avez un nombre prédéfini d'allumettes. Chacun leur tour, 2 joueurs enlèvent une à trois allumettes. Celui qui doit enlever la dernière a perdu.
Ce jeu se joue soit en mode 2 joueurs, soit en mode 1 joueur (contre l'ordi). Dans ce cas, l'IA possède 3 niveaux. Le lvl 1 est très facile à battre, mais le lvl 3 possède une grande logique !
Donc... Bonne chance :P
Note : Les feedbacks sont appréciés (à envoyer à l'adresse inscrite dans les crédits, dans le jeu)
Attention : J'ai fait ce petit jeu sous Windows. Mais je l'utilise aussi sous linux. Le seul truc à modifier : changer les "cls" en "clear" !
Makefile idéal pour la construction rapide d'un exécutable sans se préoccuper
de la gestion parfois complexe du Makefile : la fénéantise n'est plus une
excuse,
1. décompresser l'archive
2. renommer le répertoire ProjetMakefile
3. placer les sources dans le répertoire src
4. lancer make
make va automatiquement gérer les dépendances entre les fichiers sources et
créer un exécutable dans le répertoire Debug. Cet exécutable portera le nom
du répertoire qui contient le Makefile.
Exemple:
~/Projets> unzip ProjetMakefile.zip
~/Projets> mv ProjetMakefile test
~/Projets> cd test
~/Projets/test> cat > src/main.c #include
>
> int main()
> {
> puts("Hello world");
>
> return 0;
> }
> EOF
~/Projets/test> make
GENDEP libutil/xlog.c
GENDEP src/main.c
CC src/main.c
CC libutil/xlog.c
AR libutil.a
CCLD Debug/test
debug version built
~/Projets/test> ls
Debug/ libutil/ license.txt Makefile src/
~/Projets/test> ./Debug/test
Hello world
~/Projets/test>
Le fichier Makefile est commenté. Les options et variables qui dictent son
comportement sont décrites lors de leur déclaration.
Ce Makefile est idéal dans le cas d'un petit projet qui ne crée qu'un
exécutable, qui peut utiliser une bibliothèque de commodité et d'autres
bibliothèques gérées par pkg-config.
Deux types principaux de build sont supportés :
* Debug : aucune option d'optimisation activée
* Release : options d'optimisation classiques activées
Dans chaque cas, il est possible d'ajouter les options pour le profilage et
le support des pthreads.
Le build peut se faire en mode SILENT, c'est-à-dire que les commandes ne sont
pas affichées mais une indication (comme dans l'exemple ci-dessus) de ce qui
est fait. Cette option est facilement débrayable soit en modifiant le Makefile,
soit par la ligne de commande : make SILENT=0 (cf les commentaires dans le
Makefile).
Remarques
* par défaut le compilateur utilisé est gcc en mode C99 avec les extensions
GNU (builtins et attibutes gcc et fonctions GNU_SOURCE de la glibc). Pour
uriliser ce Makefile laversion GNU de make est indispensable.
* le template est fourni avec un exemple de bibliothèque de commodité
permettant un logging simple (4 niveaux debug/info/warning/error, sortie
uniquement vers stderr)
* Ce template n'a pas la prétention d'être universel ou de remplacer d'autres
outils comme autoconf et cie. Il a pour seul but de simplifier le prototypage
ou la construction de petits projets. Entre autre il n'y a aucune cible
install ni aucune vérification de la présence de fonctionnalités ou d'outils.
N'hésitez pas à laisser un commentaire, des propositions d'améliorations ou de
correction. N'hésitez pas non plus si vous avez la moindre question à propos
de cette contribution.
Ce code source a pour but de montrer comment utiliser la bibliothèque C libpq pour se connecter à une base de données PostgreSQL sur un système GNU/Linux.
Le seul fichier d'en-tête nécessaire pour compiler notre programme est le fichier libpq-fe.h. Bien sûr, pour avoir ce fichier il faut installer la bibliothèque libpq(et non pq++) . Deux méthodes pour installer la bibliothèque :
Installer le RPM ou le DEB de la bibliothèque à l'aide du package manager propre à votre Distribution Linux.
On va utiliser la deuxième méthode. Le serveur sera installé dans le répertoire : /usr/local/pgsql.
Il faut, ensuite, installer la bibliothèque partagée libpq.so.5. Elle sera utilisée par l'éditeur de liens (ld) du compilateur gcc pour construire l'exécutable. Pour cela, vous devez installer le package postgresql-libs.
I. Changer la méthode d'authentification du serveur
Par défaut, la méthode d'authentification du serveur est 'trust'. Vous devez la changer en 'password'. Pour la changer, procédez comme suit :
Ouvrir un terminal
cd un_dir_propre_à_postgres
su postgres
/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data >logfile 2>&1 & -- lancer le serveur en background
/usr/local/pgsql/bin/psql -- psql is a terminal-based front-end to PostgreSQL
ALTER USER postgres WITH PASSWORD 'admin'; -- assigner un password ('admin') au superuser (postgres)
tapez \q
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ stop -- fermer le serveur
Maintenant, ouvrir en tant-que root le fichier /data/pg_hba.conf et remplacez les mots 'trust' par 'password' .
II. Créer la base des données :
Le programme va se connecter à la base de donnée store. Vous devez le créer ! Suivez les étapes suivantes pour le créer rapidement :
Un programme C++ permettant de gérer une liste de personnes en utilisant un tableau dynamique créé avec le conteneur C++ vector. Chaque personne est identifiée dans la liste par : son nom, son prénom et sa date de naissance. Le programme affichera, lorsqu'il sera exécuté, un menu pour sélectionner une opération :
Sauvegarder la liste dans un fichier et quitter le programme.
Ajouter une personne.
Trier la liste (tri à bulle).
Afficher la liste.
Supprimer un élément de la liste.
Chercher un élément dans la liste.
Modifier les informations concernant une personne.
Ceci est un exemple simple de l'utilisation des composants TClientSocket et TServerSocket de C++ Builder pour réaliser une application de chat.
Les clients dialoguent uniquement avec le serveur, mais le serveur peut dialoguer avec qui il veut. Évidemment en implémentant son propre protocole d'échange de trames on peut très facilement faire dialoguer les clients entre eux mêmes, tout en passant par le serveur.
Comme je l'ai mentionné, ceci est un exemple d'utilisation des composants mentionnés ci-dessus, le but étant de réaliser un chat simple. Il est loin d'être un chat complet.
NB : Pour déclarer son identité auprès du serveur, un client doit envoyer la trame suivante au serveur (après s'être connecté) :
< Nom>MonAlias
Exemple : Si le client envoie < Nom>Neo41 alors le serveur rajoute dans sa liste de clients connectés l'alias "Neo41" et aura la possibilité de dialoguer avec ce client.
BDE (Borland Database Engine) est le moteur de base de données utilisé par Builder pour accéder aux différents types de bases de données. Si votre application accède à une BDs, et que vous souhaitez l'installer sur un poste vierge (ie. Builder n'est pas installé), alors vous devez installer le BDE.
Le fichier BDEInfoSetup permet une installation très facile du BDE 5.2
Il installe le BDE 5.2 ainsi qu'un utilitaire nommé BDE Information Utility. Ce dernier permet d'afficher le informations suivantes:
Version du BDE
Le contenu du fichier de configuration du BDE
Il peut être également utilisé pour vérifier que le BDE est correctement installé et configuré sur votre machine.
Ce mini-projet Qt 5 présente les nouvelles possibilités de connexions entre signaux et slots proposées dans Qt 5 :
- les connexions avec un pointeur de fonction ;
- les connexions avec les fonctions lambdas.
Voici une version écrite en C permettant de faire une partie contre l'ordinateur.
C'est un essai, il y a peu ou pas du tout de commentaires (désolé je suis trop pourri), cependant (logiquement) vous devriez pouvoir mener une partie de bout en bout (soit vers la défaite, soit vers la victoire ^^).
Je voudrais bien trouver un moyen sous Linux de pouvoir apporter des modifications, notamment concernant l'affichage (prévu pour du 1920x1080 ou en 1280x800) je voudrais pouvoir développer une fonction qui permette d'afficher l'interface utilisateur de manière propre peu importe la résolution (attention ce programme est en mode terminal).
Pour compiler le code source:
gcc -pthread sda2013.c -o sda2013
Les répertoires maps doivent se trouver dans le même répertoire que l'exécutable.
Jusqu'à présent vous pouvez jouer sur des maps 12x12, 13x13, 14x14 (mais il est prévu de jouer sur d'autres maps, maximum 26x26 en fonction de la résolution de l'écran, mais c'est pas automatique)
Je pense à faire un serveur java pour pouvoir faire des parties réseau (toute aide pour le module réseau client serait la bienvenue, d'autant que la programmation réseau TCP en C n'est pas une sinécure).
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)
Jeu où il faut trouver le bon mot. C'est un style de pendu mais en mode console uniquement. Le programme est fournit avec une dictionnaire de 331612 mots !
Le fichier str.c propose des fonctions pour supprimer les espaces en début et fin de chaîne, pour mettre une chaîne de caractères en minuscule ou en majuscule.