IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Jeu de taquin

Coder un jeu de Taquin en utilisant le nouveau composant TControlList.
Trois versions disponibles : 10.2, 10.3.3 et 10.4.2.
Nos ressources disponibles
Avatar de blonde
Membre averti https://www.developpez.com
Le 22/05/2021 à 21:47
Citation Envoyé par SergioMaster Voir le message
J'ai de la chance avec ma connexion par tamtam alors !
Deux pots de yaourts et un fil, il n'y a que ça de vrai, si tu mets une goutte d'eau sur la fibre ça fait loupé
Wahou, quand j'ai lu "tamtam", j'ai tout de suite pensé au beeper grand public; l'ancêtre du sms . Enfin.. vous voyez de quoi je veux parler ?
Avatar de SergioMaster
Rédacteur/Modérateur https://www.developpez.com
Le 16/05/2021 à 9:02
Bon d'accord, je vais tâcher de trouver ou copier une image de poisson pour rester dans le thème
Taquine (les sources sont déjà dans le dépôt Git)

Si le temps ne manque pas j'ai prévu de le présenter aussi (avec les dames et l'échiquier même technique) mais le questionnement de Charly m'intéresse aussi, histoire de faire une comparaison.
Avatar de Cirec
Membre éprouvé https://www.developpez.com
Le 21/05/2021 à 19:27
Bonjour,

après plusieurs mois de pause forcée, je vois le code du jeu de taquin et me dit que c'est une bonne occasion
de m'y remettre

La conversion pour D7 c'est faite sans soucis le hic est sur l'affichage avec une erreur abstraite qui se produisait qu'avec D7 !!
dans la procedure TMainForm.MoveMorceau(morceau: word);
à l'appel de DrawScrollBox // à la ligne 255
De longues séances de debug n'ont pas aidées à le débusquer !!!
J'ai "dégraissé" le code pour trouver le problème ... j'ai supprimé les TFrames pensant, à tord, que ça venait de là.

si vous souhaitez voir ou tenter votre chance, sous D7, il suffit de mettre la ligne 254 en commentaire
et d'activer la ligne 255.

Le problème se contourne facilement en déclenchant l'appel à DrawScrollBox
à l'extérieur de la procedure TMainForm.MoveMorceau(morceau: word);
avec un Timer à 40 ms qui ne gêne en rien le joueur.

J'ai également ajouté un mélange des pièces qui assure
la faisabilité du puzzle .
Les images png sont directement chargées dans un Bitmap grâce à une version modifié de l'unité Execute.GDIPBitmap.pas
de Paul Toth que je fournis dans le zip

Pour voir comment j'ai converti les types génériques en langage D7 et autres petites choses
il faudra regarder le code

PS: le code compile de D7 à D10.3
et il est même possible de le compiler avec D6

Cordialement,

@+
Avatar de SergioMaster
Rédacteur/Modérateur https://www.developpez.com
Le 23/05/2021 à 7:21
Citation Envoyé par blonde Voir le message
Wahou, quand j'ai lu "tamtam", j'ai tout de suite pensé au beeper grand public
Ben non en fait j'ai un arbre creux à côté de mon bureau et deux baguettes de bois sur mon port USB
Avatar de Charly910
Membre émérite https://www.developpez.com
Le 15/05/2021 à 10:33
Merci Serge,
je comprends que l'objectif est de tester le nouveau composant TControlList, mais malheureusement il n'existe pas dans mon D10.3.3 CE !
(Ainsi que TVirtualImage et TNumberBox).

Penses tu que l'on peut faire quelque chose de similaire avec D10.3.3 ?

A+
Charly
Avatar de SergioMaster
Rédacteur/Modérateur https://www.developpez.com
Le 15/05/2021 à 11:38
Bonjour
Citation Envoyé par Charly910 Voir le message

Penses-tu que l'on peut faire quelque chose de similaire avec D10.3.3 ?
Oui, mais pas de la même manière.
Il faudrait que j'y réfléchisse. De but en blanc, un scrollbox et des frames pour la partie dessin, (voir mon billet documentaire) pour la partie "dessin", pour la partie déplacement, ce serait le helper qui serait à modifier.

[EDIT]
Pour ce qui est de VirtualImage c'était une façon de stocker plusieurs images, mais elles pourraient très bien être en ressource.
Décidément j'ai écrit n'importe quoi
VirtualImage ce n'est pas ce composant qui stocke les images mais le TImageCollection.
Donc, il faut que je revoie mes idées. J'avais commencer un truc avec les ressources, qui s'avère inutile, d'autant plus que c'est galère à découper !
[/EDIT]

Quant au numberbox, je l'ai utilisé car, il est nettement mieux (plus réactif au LiveBinding) que SpinEdit.
Donc, AMHA, c'est jouable, seule la partie helper (pour connaitre les indexs) est un peu plus problématique, et en faisant en sorte de faire comme le TcontrolList le redessin de tout le contenu à chaque fois. Challenge intéressant
Avatar de pprem
Membre émérite https://www.developpez.com
Le 16/05/2021 à 8:56
Faire un taquin avec le TControlList est-il une porte ouverte pour te faire taquiner jeudi ?
Avatar de SergioMaster
Rédacteur/Modérateur https://www.developpez.com
Le 17/05/2021 à 7:39
Bonjour,

Pour répondre @charly910
- le TControList est remplaçable par un TScrollBox
- au sujet du TVirtualImage, le remplacer par un TImage et pour le chargement utiliser le code
Code : Sélectionner tout
  Image1.Picture.Bitmap:=ImagesPleines.GetBitmap(SpinEdit1.Value, 400, 400);
- Le TNumberEdit est a remplacer , tout simplement, par un TSpinEdit
- Le Helper sera remplacé par un TFrame

Et voilà le résultat à tester sur des versions supportant TImageCollection. conc 10.3
Source dégrossi mais non optimum, à vérifier qu'il n'y manque rien et qu'une version Community le supporte , à toi (ou d'autres) de tester et me dire s'il manque des choses
Avatar de Charly910
Membre émérite https://www.developpez.com
Le 17/05/2021 à 10:07
Merci Serge
ça compile bien sous D10.3.3 CE et ça fonctionne.

Petit Pb avec 9 et 16 pièces : le damier ne s'affiche pas bien (il manque des morceaux ) et la souris ne fonctionne pas. Je vais essayer de regarder pourquoi

A+
Charly
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.