begin process at 2010 02 10 13:38:05
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > JEU DU PENDU

JEU DU PENDU


 Information sur la source

Note :
6,67 / 10 - par 3 personnes
6,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Niveau :Débutant Date de création :21/01/2005 Date de mise à jour :02/02/2005 09:05:17 Vu / téléchargé :4 468 / 350

Auteur : lapucedu88

Ecrire un message privé
Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ce jeu du pendu permet de choisir la catégorie dans laquelle on veut jouer (animaux, fruits...).


 Conclusion

Je ne promet à personne qu'il marche correctement.
Je l'ais testé, mais vu que c'est moi qui l'ais écrit je contourne peut être certaines erreur sans m'en rendre compte.
Je compte sur vous tous pour me prevenir si vous trouver des erreurs dans mon projet afin que je puisse l'améloirer.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

21 janvier 2005 11:42:29 :
J'ai effectué des modifications sur mon code source afin de prendre en compte la remarque que ma fait lrdjv.
24 janvier 2005 07:57:21 :
mardi4fr à trouver une facilité pour gagner, alors j'ai rectifié
24 janvier 2005 13:53:16 :
Depuis mes dernières modification, on ne pouvait plus jouer Désolé.
25 janvier 2005 08:13:41 :
Depuis mes dernières modification, on ne pouvait plus jouer Désolé.
02 février 2005 09:05:23 :
Optimisation du code d'après japee

 Sources du même auteur

Source avec Zip GESTION DES FILMS
Source avec Zip PETIT REPERTOIRE
Source avec Zip JEU MASTERMIND
Source avec Zip Source avec une capture COMPOSANT HORLOGE ET PROGRAMME DE DEMO

 Sources de la même categorie

Source avec Zip Source avec une capture JEU DE DÉS ZORG6 par dubois77
Source avec Zip Source avec une capture JOUEZ : LIGHTS 1.4 par JulioDelphi
Source avec Zip Source avec une capture JEU DE DAME DELPHI 7 par aom333
Source avec Zip JEU RAMI DES CHIFFRES SOLITAIRE par Toidil
Source avec Zip JEU DE TAQUIN par JCLESAGE

Commentaires et avis

Commentaire de lrdjv le 21/01/2005 11:14:49

Pas mal fait mais une fois qu'on a perdu le dessin a droite ne disparait pas et on peu continue à joué sans faire nouveau mot.

Commentaire de mardi4fr le 22/01/2005 10:36:00

manque peut etre un test , ou alors tu dois mettre une categorie par defaut , car si pas de catégorie selectionnée , on gagne toujours.

Commentaire de lapucedu88 le 24/01/2005 11:43:50

Merci à vous deux pour les correction à effectuer.
J'ai rectifié mon code, de manière à ce qu'on ne gagne pas toujours.

Commentaire de mcapp le 25/01/2005 22:55:06

Effectivement, j'ai téléchargé à l'instant le jeu.
(ce 25 à 22h50)
Il ne fonctionne pas.
On peut choisir la catégorie, le bouton "nouveau mot" réagit. Mais, ensuite, impossible d'inscrire quoi que ce soit dans le champ en-dessous et impossible de confirmer.
J'attends impatiemment la correction !

Commentaire de mcapp le 25/01/2005 23:03:05

Je suis confus !
Le jeu fonctionne ! Je n'avais pas compris que le champ réclamait une lettre et non un chiffre (je pensais qu'il fallait y mentionner le nombre de lettres que le mot devait comporter !
Donc, excuses et félicitaion !

Commentaire de lapucedu88 le 26/01/2005 08:15:10

Contente qu'il te plaise mcapp, quand j'aurai un peu de temps je ferais une aide utilisateur de manière à ce que plus personne ne se trompe.
Merci de m'avoir prévenue.

Commentaire de lrdjv le 26/01/2005 09:03:29

Encore félicitation pour ce jeu. Des que j’ai 5 minute je vais analysé ton code il m’intéresse.

Commentaire de lapucedu88 le 28/01/2005 07:41:58

Va si, fait, irdjv, il est là pour ça.

Commentaire de japee le 01/02/2005 02:21:40 administrateur CS

Sympa, ton code, lapucedu88

Ca me rappelle mes débuts, y'a pas si longtemps (heu, 3 ans environ...)

Tu peux largement optimiser ton code, par exemple ici :

Procedure TForm1.categorieClick( Sender : TObject );
Var
  lettre1 : Integer;

  procedure GestionCategorie(Categorie: String; Liste: TListBox);
  begin
    nbmot := Liste.items.Count;
    Lcat.visible := true;
    Lcat.caption := Categorie;
    aleas := random( Liste.items.Count );
    motatrouver := Liste.items[ aleas ];
    Lnbmotcat.caption := 'La catégorie contient ' + inttostr( nbmot ) + ' mots';
    Liste.items.Delete( aleas );
  end;

Begin
  randomize;
  Bbcat.enabled := true;
  BBchange.enabled := true;
  gagne := 0;
  perd := 0;

  Case categorie.itemindex of
    0: GestionCategorie('animaux', animaux);
    5: GestionCategorie('fruit', fruit);
    6: GestionCategorie('batiment', batiment);
    7: GestionCategorie('boisson', boisson);
    2: GestionCategorie('fleur', fleur);
    3: GestionCategorie('constellation', constellation);
    1: GestionCategorie('dessin', dessin);
    4: GestionCategorie('aliment', aliment);
  end;

  mot_choisi := motatrouver;
  For lettre1 := 97 To 122 Do
    deja_essaye[ lettre1 ] := false;
  long_mot := length( mot_choisi );
  mot_cache := '';
  For j := 1 To long_mot Do
  Begin
    If mot_choisi[ j ] = ' ' Then
      mot_cache := mot_cache + ' '
    Else
      mot_cache := mot_cache + '';
  End;
  result.visible := true;
  result.text := mot_cache;
  categorie.visible := false;
  Bbcat.visible := true;
  erreur := 0;
  lettre.Enabled:=true;
  lettre.SetFocus;
End;

...ou là :

Procedure TForm1.BBchangeClick( Sender : TObject );
Var
  j, numero : Integer;
  lettre1 : Integer;

  procedure TraiteCategorie(Liste: TListBox);
  begin
    If Liste.items.Count = 0 Then
    Begin
      showmessage( 'plus de mot dans cette categorie.' );
      BBchange.enabled := false;
      Bbcat.enabled := false;
      result.visible := false;
      categorie.visible := true;
    End
    Else
    Begin
      categorie.visible := false;
      aleas := random( Liste.items.Count );
      motatrouver := Liste.items[ aleas ];
      Liste.items.Delete( aleas );
      result.visible := true;
    End;
  end;
  
Begin
  Case categorie.ItemIndex of
    0: TraiteCategorie(animaux);
    1: TraiteCategorie(dessin);
    6: TraiteCategorie(batiment);
    7: TraiteCategorie(boisson);
    5: TraiteCategorie(fruit);
    2: TraiteCategorie(fleur);
    3: TraiteCategorie(constellation);
    4: TraiteCategorie(aliment);
  end;

  mot_choisi := motatrouver;
  For lettre1 := 97 To 122
    Do
    deja_essaye[ lettre1 ] := false;
  long_mot := length( mot_choisi );
  mot_cache := '';
  For j := 1 To long_mot
    Do
    Begin If mot_choisi[ j ] = ' '
      Then
        mot_cache := mot_cache + ' '
      Else
        mot_cache := mot_cache + '';
    End;
  result.text := mot_cache;
  Bbcat.visible := true;
  InitialisePendu; // <- procedure plus haut, remplace 10 lignes
  erreur := 0;
  lettre.Enabled:=true;
  lettre.SetFocus;
End;

... sans compter que quand tu veux effacer le pendu tu peux faire appel à cette procedure :

procedure TForm1.InitialisePendu;
var i: Integer;
begin
  Ssoclebas.visible := false;
  Ssoclevertical.visible := false;
  Ssoclehaut.visible := false;
  Sfil.visible := false;
  Stete.visible := false;
  Scorps.visible := false;
  Sbrasdroit.visible := false;
  Sbrasgauche.visible := false;
  Spieddroit.visible := false;
  Spiedgauche.visible := false;
end;

... voire, pourquoi pas :

procedure TForm1.InitialisePendu;
var i: Integer;
begin
  for i := 0 to ComponentCount -1 do
    if Components[i] is TShape then
      if TShape(Components[i]).Name <> 'SFont' then
        TShape(Components[i]).Visible := False;
end;

... que tu as déclaré, bien sûr, dans la partie private du Form, ainsi :

procedure InitialisePendu;

Comme tu as l'air de connaître Case of..end, je te t'épargnerai le discours sur l'économie par rapport à if..then...

Je n'ai pas débuggé ton programme, mais ça a l'air de fonctionner... mais là je passe la main, pas trop le temps...

Bienvenue parmis nous, et ne perd pas ton enthousiasme ;)

P-S: J'ai fait pas mal de copier-coller, j'espère que je ne dis pas trop de c...

à + faut pas mollir !

Commentaire de japee le 01/02/2005 02:29:22 administrateur CS

Bien sûr, merci copier-coller, "var i: integer" est inutile dans l'avant dernière procedure décrite.

N'hésite pas à demander des explications complémentaires.
Et utilise le forum, c'est bien pratique ;)

Commentaire de lapucedu88 le 01/02/2005 14:08:54

Merci japee, j'avais pensée à faire des modifiactions sur ce code en y ajoutant des procedures mais je n'est pas encore eu le temps de me remettre dessus car je suis en train de remodifier mon master et que j'essaie également de faire un casse brique.
Mais je promet de les faire rapidement tous de même.
Encore merci de l'avoir regarder.

Commentaire de lapucedu88 le 02/02/2005 08:35:11

Dit voir japee, je comprend pas trop ce que tu fais dans ta dernière procedure  en fait je comprend pas le 'SFont' qui sert à la comparaison du nom du composant.

Commentaire de japee le 03/02/2005 18:31:01 administrateur CS

La boucle parcourt tous les composants de l'application : Components[0], Components[1]... jusqu'à Components[nombre de components -1 puisqu'on a démarré à 0].
Si le composant est un TShape, alors si le nom du composant n'est pas 'SFont' (c'est le nom que tu as donné à ton TShape qui représente le fond, lol), alors le composant n'est plus visible.

Cette manière de procéder peut être utile si l'on a beaucoup de composants auxquels il faut appliquer un même traitement. On évite ainsi un listing impressionnant d'instructions répétitives.

Une astuce que j'utilise consiste à donner un tag identique à cette série de composants (propriété tag dans l'inspecteur d'objet) et à trier les composants au moyen de ce tag.

Exemple concret, si tu as affecté la valeur 1 au tag des TShape à rendre invisibles :

var i: Integer;
begin
  for i := 0 to ComponentCount -1 do
    if Components[i] is TShape then
      if TShape(Components[i]).Tag = 1 then
        TShape(Components[i]).Visible := False;
end;

Ca peut être utile si tu veux que certains composants de même type soient concernés et pas d'autres, mais ici l'avantage n'est peut-être pas évident ?

Bonne prog'

Commentaire de lapucedu88 le 04/02/2005 08:22:38

Ok, je te remercie japee, c'est bon à savoir

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales