JEU DE DAME DELPHI 7

JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 - 14 nov. 2009 à 01:18
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 - 15 nov. 2009 à 20:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50850-jeu-de-dame-delphi-7

Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
15 nov. 2009 à 20:47
Tu as bien supprimé le .exe avant de le mettre ? Il ne dépasse pas 1 Mo ?

Cordialement, Bacterius !
Utilisateur anonyme
15 nov. 2009 à 15:34
Merci pour tous .
je suis un debutant c pour cela le code n'est pas organisé
j'ai ajouté le zip +iers fois, mais sans apparition pourquois?
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
14 nov. 2009 à 03:33
Il est vrai que c'est un peu ... redondant pour le moins.
J'ai d'ailleurs l'impression que tu traites les deux jours indépendamment mais avec le même type de code. Il serait possible d'augmenter les performances, augmenter la lisibilité et l'efficacité du code tout en le réduisant de moitié en organisant ses routines de façon logique. Ainsi, plutôt que ce gros paquet de code, tu pourrais faire des procédures (d'habitude je les écris toujours en anglais mais je vais faire un effort) :

> Initialisation
Paramètres : aucun
Description : initialise le jeu, place les pions, met les scores à zéro.

> CoupJoueur
Paramètres : numéro du joueur, numéro du pion joué et coordonnées de sa destination.
Description : appelé quand un joueur joue en posant un pion.

> CoupValide
Paramètres : numéro du joueur, numéro du pion joué et coordonnées de sa destination.
Description : vérifie si le joueur a bien le droit de poser son pion là (trop éloigné, coup interdit, ...)

> DevientDame
Paramètres : numéro du pion.
Description : transforme un pion en dame une fois qu'il est arrivé à l'autre bout du plateau.

> PeutDevenirDame
Paramètres : numéro du pion.
Description : vérifie les coordonnées du pion pour voir si il peut devenir une dame..

> VictoireJoueur
Paramètres : numéro du joueur.
Description : Appelé quand un joueur a gagné la partie.

etc, etc ... ça serait plus propre et plus efficace.
___________________

Ces critiques se veulent constructives ...

Cordialement, Bacterius !
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
14 nov. 2009 à 01:21
Que dire, déjà ça commence mal, ce n'est pas une source .NET, pas de ZIP donc pas de dpr/dfm, 1 seul composant renommé (quel chanceux), du grand bazar en perspective !

Je descends tout de même le code, moultes et moultes répétitions, jusqu'a 12 IF imbriqués ! Record battu sur C-S.

- "donner la position de x:" est 36 fois dans le code... Une constante ? Une string en ressource ?

- Certaines procedures se ressemblent, il faut donc en faire une seule avec un paramètre (ou plus)

- Je passe sur l'orthographe car vous n'êtes pas français.

- De tête, tu peux me dire à quoi sert le bouton 6, 2, 7 et 4 ? Put etre que oui si tu avais encore la tete dedans, mais d'ici 1 mois, tu devras regarder le dfm, chercher et chercher...

- Des IF à revoir, genre :
if(n2y<s2y)then
begin
if(n2x>s2x)then
begin
...
end;
end;
au lieu de :
if (n2y<s2y) and (n2x>s2x) then
begin
...
end;

- Des begin/end pour une seule ligne de code

- Indentation du code non respectée

- k:= k+1 au lieu de inc(k);

- Plusieurs instructions sur la même ligne genre :
StringGrid1.Cells[n2x,n2y]:='8'; k:=0;
pnt2:=pnt2+1; Edit4.Text:=IntToStr(pnt2);

- Question d'ergonomie : evite les showmessages pour informer l'utilisateur, c'est ennuyeux.

- Aère ton code :
if(StringGrid1.Cells[s2x-i,s2y+i]='1')or(StringGrid1.Cells[s2x-i,s2y+i]='9')then
au lieu de
if (StringGrid1.Cells[s2x-i, s2y+i] = '1') or (StringGrid1.Cells[s2x-i, s2y+i] = '9') then

- Edit1.Text:=''; = Edit1.Clear;

- la procedure initialisationpiont n'est même pas utilisée, lis tu les warninng ?

- les variables sont déclarées au mauvais endroit et ne sont pas parlantes. Que veux dire "n2x" ?!

Combien avez vous été noté ?

Ok, c'est une premiere source, pas facile de démarrer. Merci de mettre à jour la source avc le fichier dfm et dpr (faire un zip quoi...) pas les fichiers avec un ~, ni .dof, .cfg, .res.

Bon courage pour la suite, j'attends le zip
Rejoignez-nous