CONSTRUIRE UN JEU DE DEMINEUR (C++ BUILDER)
Date de publication : 11 Juin 2007
Vous connaissez sans doute ce fameux jeu qui accompagne toujours chaque version de Windows !
C'est un jeu de prise de tête qui a pour but de localiser toutes les mines aussi rapidement que possible, sans en afficher aucune. Si vous découvrez une mine, vous avez perdu.
Nous allons développer le démineur avec Borland C++ Builder 6, la version la plus stable selon mon avis.
Traçage de la grille de champ de mines
D'abord, il faut préciser les noms de composants utilisés à partir d'ici.
- Baomba: le StringGrid
- Lalao: le DrawGrid
- Liste: la liste d'images pour contenir les petites images à utiliser (forme de boutons, drapeaux, 1, 2, 3, etc.)
Nous remarquons aussi l'existence de niveaux pour ce jeu que nous allons construire: Débutant, Intermediaire, Expert. Il suffit de cliquer sur des boutons radio pour basculer d'un niveau à un autre.
void __fastcall TForm1::Initiate(TObject *Sender)
{
int c,l;
TRect stock;
trouve = 0;
Lalao->Enabled = true;
Baomba->Visible = false;
losed = false;
compteur->Text = IntToStr(0);
temps = 0;
Timer->Enabled = false;
if (Debutant->Checked){
Lalao->ColCount = 8;
Lalao->RowCount = 8;
Baomba->ColCount = 8;
Baomba->RowCount = 8;
Nbmines = 10;
nb->Text = IntToStr(Nbmines);
}
if (Intermediaire->Checked){
Lalao->ColCount = 16;
Lalao->RowCount = 16;
Baomba->ColCount = 16;
Baomba->RowCount = 16;
Nbmines = 40;
nb->Text = IntToStr(Nbmines);
}
if (Expert->Checked){
Lalao->ColCount = 30;
Lalao->RowCount = 16;
Baomba->ColCount = 30;
Baomba->RowCount = 16;
Nbmines = 99;
nb->Text = IntToStr(Nbmines);
}
Baomba->Height=Baomba->RowCount*17-Baomba->RowCount+4;
Baomba->Width=Baomba->ColCount*17-Baomba->ColCount+4;
Lalao->Height=Baomba->RowCount*17-Baomba->RowCount+4;
Lalao->Width=Baomba->ColCount*17-Baomba->ColCount+4;
Lalao->DefaultRowHeight=16;
Lalao->DefaultColWidth=16;
Baomba->DefaultRowHeight=16;
Baomba->DefaultColWidth=16;
Form1->Top=0;Form1->Left=0;
Form1->ClientHeight =Screen->Height;
Form1->ClientWidth =Screen->Width;
for (c=0;c<Baomba->ColCount;c++)
for(l=0;l<Baomba->RowCount;l++){
View[l][c] = 0;
Baomba->Cells[c][l] = IntToStr(0);
stock = Lalao->CellRect(c,l);
Lalao->DefaultDrawing = true;
Liste->Draw(Lalao->Canvas,stock.Left,stock.Top,4);
Lalao->DefaultDrawing = false;
}
PlacerBaomba(Sender);
PlacerNum(Sender);
} |
Nous allons expliquer à la suite les fonctions PlacerBaomba() et PlacerNum() mais ce qui nous importe pour le moment c'est la boucle:
for (c=0;c<Baomba->ColCount;c++)
for(l=0;l<Baomba->RowCount;l++){
View[l][c] = 0;
Baomba->Cells[c][l] = IntToStr(0);
stock = Lalao->CellRect(c,l);
Lalao->DefaultDrawing = true;
Liste->Draw(Lalao->Canvas,stock.Left,stock.Top,4);
Lalao->DefaultDrawing = false;
} |
 
|
Copyright © Rija RANDRIANO.
Aucune reproduction, même partielle, ne peut être faite
de ce site ni de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à
trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.