Accueil > > > UN JEU OU IL FAUT ALIGNER 4 COULEURS POUR CASSER DES BLOCKS - EXEMPLE ALGORITHME DE DIFFUSION
UN JEU OU IL FAUT ALIGNER 4 COULEURS POUR CASSER DES BLOCKS - EXEMPLE ALGORITHME DE DIFFUSION
Information sur la source
Description
Bonjour à tous, Vous devez surement connaitre le jeu puyo puyo ou le principe est de mettre au moins 4 blocks de même couleur ensemble, étant fan de ce jeu(j'y joue casiment tout les jours), je me suis mis au défit de le refaire. J'ai fais ce programme en 2 jours sans trop m'attarder dessus, donc il doit surement exister encore des bugs. Ce programme utilise l'algorithme de diffusion pour calculer le nombre de block de même couleur qui se touchent.
Source
- //voila la principale fonction qui détermine les collisions entre couleur.
-
- float FallingSpeed = 0.05f;//Vitesse de chute des blocks
- bool canfall = false;//gachette qui indique si on peut faire tomber les block
- bool fallfinished = true;//gachette qui indique si le block a finit de tomber
- int MaxColor = 5;//nombre de couleur maximale avec lesquelles jouer peut aller jusqu'à 10
- int ContactNeeded = 4;//nombre de contacte a établir avant de faire disparaître les blocks
-
-
- private void MakeLink(int x, int y, ref List<Point> PointList)
- {
- Block mBlock = Plateau[x, y];
- if (mBlock.Color == BlockColor.Aucun || mBlock.Checked) return;
- PointList.Add(new Point(x, y));
- Plateau[x, y].Checked = true;
- if (x + 1 < Bx)
- if (Plateau[x + 1, y].Color == mBlock.Color)
- {
- Plateau[x, y].Liens |= BlockLink.Droite;
- MakeLink(x + 1, y, ref PointList);
- }
- if (y + 1 < By)
- if (Plateau[x, y + 1].Color == mBlock.Color)
- {
- Plateau[x, y].Liens |= BlockLink.Bas;
- MakeLink(x, y + 1, ref PointList);
- }
- if (x - 1 >= 0)
- if (Plateau[x - 1, y].Color == mBlock.Color)
- {
- Plateau[x, y].Liens |= BlockLink.Gauche;
- MakeLink(x - 1, y, ref PointList);
- }
- if (y - 1 >= 0)
- if (Plateau[x, y - 1].Color == mBlock.Color)
- {
- Plateau[x, y].Liens |= BlockLink.Haut;
- MakeLink(x, y - 1, ref PointList);
- }
- }
//voila la principale fonction qui détermine les collisions entre couleur.
float FallingSpeed = 0.05f;//Vitesse de chute des blocks
bool canfall = false;//gachette qui indique si on peut faire tomber les block
bool fallfinished = true;//gachette qui indique si le block a finit de tomber
int MaxColor = 5;//nombre de couleur maximale avec lesquelles jouer peut aller jusqu'à 10
int ContactNeeded = 4;//nombre de contacte a établir avant de faire disparaître les blocks
private void MakeLink(int x, int y, ref List<Point> PointList)
{
Block mBlock = Plateau[x, y];
if (mBlock.Color == BlockColor.Aucun || mBlock.Checked) return;
PointList.Add(new Point(x, y));
Plateau[x, y].Checked = true;
if (x + 1 < Bx)
if (Plateau[x + 1, y].Color == mBlock.Color)
{
Plateau[x, y].Liens |= BlockLink.Droite;
MakeLink(x + 1, y, ref PointList);
}
if (y + 1 < By)
if (Plateau[x, y + 1].Color == mBlock.Color)
{
Plateau[x, y].Liens |= BlockLink.Bas;
MakeLink(x, y + 1, ref PointList);
}
if (x - 1 >= 0)
if (Plateau[x - 1, y].Color == mBlock.Color)
{
Plateau[x, y].Liens |= BlockLink.Gauche;
MakeLink(x - 1, y, ref PointList);
}
if (y - 1 >= 0)
if (Plateau[x, y - 1].Color == mBlock.Color)
{
Plateau[x, y].Liens |= BlockLink.Haut;
MakeLink(x, y - 1, ref PointList);
}
}
Conclusion
Ne supprimez pas le fichier Block.png dans le dossier debug, ce sont les sprites du jeu. Ce jeu est tout en Gdi donc l'accuracité n'est pas la meilleur, mais c'est un choix que j'ai fait parceque tout le monde peut l'utiliser. Je le poste pour permettre a ceux qui ont eu envie de le programme de voir comment je m'y suis pris et pour voir tout les commentaires/conseils et avis que vous pourrez me donner. N'hésitez pas j'attends vos commentaire.
Merci.
Historique
- 21 octobre 2008 23:42:02 :
- Ajout de pas mal de commentaire
- 22 octobre 2008 13:04:52 :
- Ajout d'effet d'explosion
- 22 octobre 2008 13:05:36 :
- Ajout d'effet d'explosion
- 22 octobre 2008 13:06:16 :
- Ajout effet d'explosion
- 22 octobre 2008 13:07:25 :
- Ajout d'effet d'explosion et
Changement de nom
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Je comprends pas cette algorithme [ par kaiwoo ]
private bool AUneVirgule (double nb){long tmp = (long)nb;if (tmp == nb)return false;elsereturn true;}Pour info, il a été fait par un super membre du f
lancement d'une appli [ par rintchu ]
salut a tous,voila, je voudrais mettre dans mon programme un jeu secret comme ceux que l'on trouve dans Word ou Excel. Comment dois je faire pour reli
Algorithme de placement [ par oberown ]
Je cherche des noms d'algorithmes ou des idées, pour résoudre ce genre de problème.On a trois jours, et chaque jours 2 personnes peut se présenter. On
Changer l'image d'un label ... [ par Baelorn ]
Bonjour,je suis actuellement en train de réaliser un jeu en C# mode graphique et je rencontre un problème au niveau du changement de l'image d'un labe
jeu vache taureau language c [ par cafou ]
est ce que quelqu'un pourrait me donner la solution du jeu vache taureau en language cmerci d'avanceCAFOU
Jeu de cartes en reseau [ par PeterG ]
J'ai créer un jeu de Black Jack (2 joueur et +) avec visual studio dans mon cours de programmation 1, et j'aimerai pouvoir y jouer contre un ami chacu
Jeu en réseau local [ par CMatt ]
Bonjour à tous!J'ai développé un petit jeu en C# qui possède une "base de données" plutôt complexe, par ex. : - une classe Systeme contient un tabl
Algorithme Mot Caché [ par nuns ]
Salut tout le monde,Je voudrais savoir si il y a quelqu ' un qui aurait un générateur de mot Caché, le jeux, avec les grille ou il faut chercher les m
Remoting et "sécurité" [ par CMatt ]
Bonjour tout le monde!J'ai commencé à développer un jeu en temps réel et j'essaie d'implémenter un mode multijoueurs (pa
algorithme génétique programmé en c# [ par johelle ]
slt,je veux savoir si'il ya quelqu'un dans ce forum qui a un programme d'un algorithme génétique en c#et merci.
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|