Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période.
Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.

~ Rechercher ~

  

~ Annuaire VB ~
 Rechercher un site :
  

~ Partenaires ~


Colonnes

colonnes.exe (le programme en VB6 natif) ~  colonnes.zip (les sources du programme)

Si VB 6.0 n'est pas installé sur votre ordinateur, vous aurez peut-être besoin d'installer les Runtimes VB : DLL VB 6.0 DLL VB 6.0
Les deux DLL suivantes sont, en général, également nécessaires : VB6FR.DLL VB6FR.DLL ~  MSCOMCTL.OCX MSCOMCTL.OCX
(pour NT/2000, à copier dans WINNT\SYSTEM32 - pour 95/98/XP, à copier dans WINDOWS\SYSTEM)

Le programme est constitué d'une seule feuille.

La feuille a cet aspect là :

  • 1 menu 'Jeu', pour lancer une nouvelle partie ou quitter l'application.
  • 1 menu 'Vitesse', pour régler la vitesse à laquelle tombe les blocs pendant le jeu.
  • 6 rectangles de couleur représentant les 6 couleurs utilisées par le jeu dans les blocs.
  • 6 labels associés aux rectangles ci-dessus donnant les statistiques d'apparation des couleurs.
  • 5 labels donnant des informations sur la partie en cours, de haut en bas ; la vitesse de défilement, le nombre de carrés effacés depuis le début de la partie, le nombre de blocs tombés depuis le début de la partie, le score de la partie en cours, le meilleur score depuis l'installation du jeu.
  • 3 rectangles délimitent les informations de jeu, 1 avec les bords arrondis, et 2 petits donnant l'impression d'un double soulignement.
  • 1 zone picture qui est en fait l'aire de jeu dans laquelle tombent les blocs de couleur.
Colonnes

Le but du jeu est simple, aligner au moins trois cases de même couleur dans n'importe quel sens.

Le principe de fonctionnement est similaire à Tetris. Il faut donc faire tomber des blocs de trois cases, avec des couleurs choisies aléatoirement. Et à intervalle régulier les faire descendre d'une case jusqu'à ce qu'ils arrivent en bas ou sur une case déjà remplie.
On gère ainsi un tableau qui représente la grille de jeu, et tout le travail consiste à mettre à jour ce tableau en fonction des mouvements et puis faire apparaître les changements à l'écran. Rien de bien compliqué dans ce programme, juste un peu de logique, de rigueur et de bon sens. Les commentaires devraient suffire à vous montrer le principe général de fonctionnement.

La réelle seule difficulté qui pourrait poser problème est le raffraîchissement de la fenêtre.
En effet, j'ai utilisé ici une picture pour l'aire de jeu, car elle permet de travailler avec la méthode Line (ce que ne fait pas le contrôle Image par exemple). Et il faut bien placer la propriété AutoRedraw pour ne pas voir les cases disparaître après avoir déplacé une autre fenêtre par dessus.
De la même manière que pour intercepter la frappe des touches au clavier il faut bien positionner la propriété KeyPreview de la Form.

Après avoir retravaillé sur ce programme pour le diffuser ici, je me suis aperçu que certaines parties du code (essentiellement la recherche de combinaison) n'étaient pas spécialement optimisées. Si l'envie me prend je vous fournirai alors une nouvelle version. Sinon, vous pouvez toujours m'envoyer vos améliorations.
Ce programme déjà intérressant sous cette forme là pourrait l'être encore plus avec très peu d'amélioration. Quelques suggestions pour ceux qui voudrait en faire un peu plus; une gestion des scores amélioré (genre top 10, avec toutes les statistiques sur la partie), une option pour voir le prochain bloc qui va apparaître, gestion des points attribué plus poussée (c'est-à-dire, si la combinaison est complexe, on attribue plus d'un point par carré effacé), jeu à deux joueurs (ou mieux pour ceux qui n'en veulent, jeu en réseau...), choix de la dimension de la grille, choix du nombre de couleurs, un fichier d'aide, augmentation de la vitesse en fonction du score, etc, ...
Les idées ne manquent pas. N'oubliez de me faire parvenir une version du programme si vous avez appliqué ces quelques suggestions.

Sur ce, bonne réflexion avec le code suivant...

frmColonne.frm (. Afficher le code)

Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr