Jeu de Triple Yahtzee

Présentation
Il s'agit d'un jeu de Triple Yahtzee à plusieurs joueurs sur un même poste.

Le projet n'utilise que des composants ultra-classiques, à l'exception du composant Iphtml dont le paquetage Turbopower_Ipro est fourni avec le code source. Il a été réécrit en "tout objet" en mettant en application les notions détaillées dans les excellents tutoriels de Gilles Vasseur sur la POO (dont vous trouvez les liens ci-dessous).

Bon amusement !
Nos ressources disponibles
Téléchargement
Compatibilité
Linux Windows
2  0 
Téléchargé 46 fois Voir les 14 commentaires
Détails
Catégories : Programmes complets
Avatar de Jean-Luc Gofflot
Responsable Pascal, Delphi et Assembleur
Voir tous les téléchargements de l'auteur
Licence : GPL
Date de mise en ligne : 18 septembre 2016




Avatar de Alcatîz Alcatîz - Responsable Pascal, Delphi et Assembleur https://www.developpez.com
le 12/09/2016 à 22:10
Le jeu est à présent terminé, avec une aide et un classement persistant des meilleurs scores.

Tout retour sur d'éventuels bugs est le bienvenu !
Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 15/09/2016 à 12:00
Très beau travail.

Bizarre, avec cette nouvelle version, je n'arrive pas à choisir les dés que je veux relancer. Il manque le bouton du deuxième dé, et les autres boutons ne réagissent pas.

C'est sous Windows 10, avec l'exécutable que tu as compilé.

Une question en passant, à quoi sert le composant que tu as utilisé ?
Avatar de Alcatîz Alcatîz - Responsable Pascal, Delphi et Assembleur https://www.developpez.com
le 15/09/2016 à 20:33
Merci pour le compliment !

Citation Envoyé par Roland Chastain  Voir le message
Bizarre, avec cette nouvelle version, je n'arrive pas à choisir les dés que je veux relancer. Il manque le bouton du deuxième dé, et les autres boutons ne réagissent pas.

C'est sous Windows 10, avec l'exécutable que tu as compilé.

Une question en passant, à quoi sert le composant que tu as utilisé ?

Ce ne sont pas des TButton mais des TStaticText. Il faut cliquer sur les dés pour commuter entre garde et relance.
L'aide contient un mode d'emploi.

J'ai recompilé l'exécutable. Honnêtement, je n'ai testé que vaguement sous Windows, dans une machine virtuelle Windows XP. Le rendu est d'ailleurs très moyen. Si je trouve du temps, je m'occuperai d'essayer de rendre cela plus présentable ; si tu as des idées...
Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 16/09/2016 à 9:00
Citation Envoyé par Alcatîz  Voir le message
Ce ne sont pas des TButton mais des TStaticText. Il faut cliquer sur les dés pour commuter entre garde et relance.

Ah oui, au temps pour moi.

Mais il semble qu'il y ait un petit problème d'affichage. Tantôt il manque le cadre autour du mot "relancer" (voir ma capture d'écran d'hier), tantôt le fond du deuxième dé est noir.



Citation Envoyé par Alcatîz  Voir le message
L'aide contient un mode d'emploi.

C'est noté.

Citation Envoyé par Alcatîz  Voir le message
Le rendu est d'ailleurs très moyen. Si je trouve du temps, je m'occuperai d'essayer de rendre cela plus présentable ; si tu as des idées...

Je ne trouve pas cela si désagréable. On pourrait améliorer le dessin des dés, mais comme ça ce n'est pas mal. Je vais regarder ton code de plus près.
Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 16/09/2016 à 22:17
Citation Envoyé par Alcatîz  Voir le message
Le rendu est d'ailleurs très moyen. Si je trouve du temps, je m'occuperai d'essayer de rendre cela plus présentable ; si tu as des idées...

Je ne sais pas à quoi tu pensais exactement mais voici ce que j'ai à te proposer, des dés faits avec BGRABitmap.



J'ai fait le fond des images en noir, parce c'était comme ça dans l'original, mais on pourrait aussi prendre comme couleur de fond la couleur de la fenêtre :

Code : Sélectionner tout
1
2
3
4
5
6
  bmp := TBGRABitmap.Create( 
    Image.Picture.Bitmap.Width, 
    Image.Picture.Bitmap.Height, 
    //BGRABlack 
    ColorToBGRA(ColorToRGB(clForm)) 
  );
Avatar de Alcatîz Alcatîz - Responsable Pascal, Delphi et Assembleur https://www.developpez.com
le 17/09/2016 à 22:35
Ah c'est tout de suite beaucoup plus beau ! Le fond noir, ce n'est pas top, en effet.

Merci, Roland, je vais intégrer ta suggestion.
Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 18/09/2016 à 7:17
Citation Envoyé par Alcatîz  Voir le message
Merci, Roland, je vais intégrer ta suggestion.

Pas de quoi. Mais si je peux me permettre encore une autre suggestion, je trouve que ce serait dommage, d'un point de vue pédagogique, de perdre le code original. Peut-être y a-t-il un moyen de garder les deux ?

Une autre possibilité à laquelle j'ai pensé serait de faire un programme séparé qui fabrique les images des six dés, afin de pouvoir se contenter de charger les images déjà faites dans Yahtzee. Si cette possibilité retient ton attention, je me ferai un plaisir de t'aider à réaliser le premier programme.

Je pense qu'avec BGRABitmap il y a moyen de faire des dés encore plus beaux que ceux-là. Ce pourrait être intéressant d'aller plus loin. Avec l'aide de Johann peut-être, s'il passe par ici ?
Avatar de Alcatîz Alcatîz - Responsable Pascal, Delphi et Assembleur https://www.developpez.com
le 18/09/2016 à 13:51
Citation Envoyé par Roland Chastain  Voir le message
je trouve que ce serait dommage, d'un point de vue pédagogique, de perdre le code original. Peut-être y a-t-il un moyen de garder les deux ?

Une directive de compilation peut faire l'affaire :
[ATTACH]220572d1/a/a/a" />

Citation Envoyé par Roland Chastain  Voir le message
Une autre possibilité à laquelle j'ai pensé serait de faire un programme séparé qui fabrique les images des six dés, afin de pouvoir se contenter de charger les images déjà faites dans Yahtzee. Si cette possibilité retient ton attention, je me ferai un plaisir de t'aider à réaliser le premier programme.

Pourquoi pas ? Les images étant alors incluses sous forme de ressources, j'imagine ?
Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 18/09/2016 à 15:05
C'est une bonne idée de tracer le contour du dé. Mais je me demande si ça ne serait pas encore mieux comme ça :

Code : Sélectionner tout
1
2
  LBitmap.FillRoundRectAntialias(0, 0, Image.Picture.Bitmap.Width - 1, Image.Picture.Bitmap.Height - 1, CArrondi, CArrondi, LPixel, []); 
  LBitmap.RoundRectAntialias(0, 0, Image.Picture.Bitmap.Width - 1, Image.Picture.Bitmap.Height - 1, CArrondi, CArrondi, BGRABlack, 1, []);
Avec encore cette petite modification pour que les points soient bien centrés :

Code : Sélectionner tout
1
2
  with LBitmap do 
    FillEllipseLinearColorAntialias(CCoord[Li,1] * (Width - 1), CCoord[Li,2] * (Height - 1), CRayon, CRayon, ColorToBGRA(clDkGray), BGRAPixelTransparent);
Et éventuellement utiliser le gris foncé aussi pour le contour du dé. À toi de voir...
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Responsables bénévoles de la rubrique Lazarus : Alcatîz - Gilles Vasseur -