Affichage des articles dont le libellé est cpp. Afficher tous les articles
Affichage des articles dont le libellé est cpp. Afficher tous les articles

dimanche 17 février 2008

Sudokuuuuuuuuuu


Un de mes amis, qui aime bien codé aussi (je lui ai donné le virus) a codé un jour en mIRC un résolveur de grille de sudoku. Chapeau.

J'ai décidé de faire la même chose, en C++. Je ne suis pas un expert en sudoku, j'ai cherché les techniques de résolutions manuelles. L'ordinateur est bien plus apte a stocker des grands tableaux de quelques int. D'ailleurs la grille est résolue en quelques millisecondes, quand elle est résolue.
En utilisant quelques technique de base pour le moment (mais je n'ai plus envie de continuer), les grilles facile et moyenne sont résolues.

Echecs


Après un certain absence dans la mise à jour de ce blog, voici un nouvel article. Non je n'ai pas glandé, j'ai approfondi mes connaissances en MFC.

J'ai décidé, sur un coup de tête, de coder une petite application pour jouer aux échecs, en vérifiant les déplacements des pièces etc. Pas d'intelligence artificielle, c'est un jeu à deux joueurs. Le but était de bien gérer le concept orienté objet, à savoir le polymorphisme.
Certes le damier n'est pas colorié, mais j'ai déjà eu assez de mal à mettre des icônes sur les boutons...

samedi 29 décembre 2007

Gagner quelques minutes sur les heures que je perds



C'était le but de ce "gros" script codé en mIRC qui m'allégeait le travail de ce jeu pénible et prenant. Il avait un buffer de 2 Mo, et écoutait systématiquement le presse-papier. Dès que l'on copiait le contenu d'une page d'Ogame, le script bufférisait le contenu. Une fois que l'on a copié tout ce que l'on voulait, le script analysait le buffer ligne à ligne. C'était des rapports d'espionage. Le but était d'éliminer les rapports inutiles (la planète visée ne contient pas assez de ressources pour l'attaquer ou est trop bien gardée), et n'afficher que les rapports suceptible de m'intéresser. Une fois la liste effectuée, il me demandait pour chacun d'eux ce que je voulais envoyer (la consomation de carburant, la durée du trajet par rapport à la distance et une estimation des pertes en utilisant speedsim m'était indiquée). A la fin, j'avais ma liste des planètes a attaquer (avec la flotte que j'ai choisi d'y envoyer). Les planètes trop bien gardée était stocké pour les "EDLMer" plus tard. Celles sans défense étaient gardée pour les raider à la sonde. Ce script n'est pas illégal étant donné qu'il ne se connecte pas au serveur. Voici quelques screenshots.


Egalement, j'ai été l'une des cibles prioritaires de nos ennemis qui voulaient me missiler mes planètes. Pour anticiper leur approche dans les systèmes environnants le mien (ou le rachat de missile de joueurs neutre), j'ai réalisé un autre script, se servant toujours du presse-papier des rapports d'espionnage, pour réaliser une cartographie des missiles, silo à missile et des ennemis, neutre ou alliés. Celà m'a permis de raider les installations ennemis avant de leur permettre d'avoir assez de missiles.


J'ai également réalisé ce petit calculateur de vitesse en C++ (de la même manière que speedsim) sauf qu'il calculait également la durée planète-lune, ce que ne faisait pas speedsim.


Sous Excel (avec l'aide de mIRC) j'ai réalisé des cartographies de phalanges ennemies...



Utile dans le début, j'ai réalisé un petit script mIRC qui calculait la prodution de mes usines, et calculait a quelle heure (en incluant les changements de vitesse de production, le manque énergétique, le pourcentage de production et les arrivages de transports de ressources alliés) les ressources demandées seront disponible, et beeper le cas échéant.


mIRC (qui aspire le presse-papier, détectant le classement statistiques) génère une liste des 1500 premiers joueurs de l'univers. En se souvenant de la dernière liste, il établie alors un différentielle entre les deux listes, voyant la progression des uns et des autres. Ce script utile permet d'une pars :
- détecter ceux qui progressent vite (gros coup, HoF ?)
- détecter ceux qui progressent vite en cheatant (apport régulier de ressources)
- détecter ceux qui ont beaucoup baissé (s'est fait recyclé)
- détecter les inactifs qui ne progressent pas
Puis la page HTML ainsi générée était envoyée sur mon serveur par FTP.
J'ai par la suite réalisé un script PHP cette fois ci qui lisait le fichier "presse-papier" que mIRC envoyait par FTP. Et PHP triait dynamiquement selon un formulaire html, les informations (permettant d'avoir la différence entre 2 listes aux choix), ect..



Comme vous pouvez le constater, Ogame a été une grande source d'idée de développement :)

jeudi 27 décembre 2007

Nom de code : Pythagore


Pythagore est le seul logiciel en C++ que j'ai abouti pour Ogame. Ce nom de code vient d'Asmeralde, qui était un fin calculateur pour chopper les flottes au retour. Pythagore devait permettre à l'alliance de calculer soit même l'horaire d'envoie de sa flotte pour chopper l'autre. C'est assez simple. Il suffit de regarder l'heure actuelle du serveur, de savoir combien de temps l'ennemi a mis pour faire un aller, et savoir combien de temps nous on met pour faire cet aller. La seule ruse pour contrer consisterai à ne pas envoyer la flotte à pleine vitesse, mais seulement à 90%, ce qui fausserai l'estimation de la duré de l'aller et donc l'heure de départ de notre flotte d'interception.

MSN sous Qt


Voilà mon premier client MSN en C++ qui a donné quelque chose. Certe il est inutilisable, mais il arrive tout de même à se connecter en utiliser le protocole MSNP11, a en passer le challenge. Il est prévu pour pouvoir se connecter en utilisant le protocol au choix de MSNP8 à 12. Pour le moment, comme je ne maitrise pas très bien les composants graphique Qt, j'ai juste développé les évènements sans les matérialiser. Voici ce que ça donne :

mercredi 26 décembre 2007

Player en MFC C++ !


Notre projet obligatoire en IHM est un lecteur de musique réalisé en MFC sous Visual C++ 8. Il est presque terminé, quelques bugs minimes restent a corriger mais il dépasse largement l'ennoncé du sujet ! Il utilise la librairie fmod.dll, et multithreadé et supporte le streaming.