# Environnements de dveloppement > Delphi > Codes sources  tlcharger >  Jeu de taquin (Sidney 10.4.2)

## SergioMaster

Bonjour, 

Je vous propose un nouvel lment  utiliser : Jeu de taquin (Sidney 10.4.2)

Coder un jeu de Taquin avec Sidney en utilisant le nouveau composant TControlList 

Qu'en pensez-vous ?

----------


## Charly910

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

----------


## SergioMaster

Bonjour



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


Oui, mais pas de la mme manire. 
Il faudrait que j'y rflchisse. De but en blanc, un scrollbox et des frames pour la partie dessin, (voir mon billet documentaire) pour la partie "dessin", pour la partie dplacement, ce serait le helper qui serait  modifier.  

[EDIT]
Pour ce qui est de VirtualImage c'tait une faon de stocker plusieurs images, mais elles pourraient trs bien tre en ressource.
Dcidment j'ai crit n'importe quoi  ::oops::  
VirtualImage ce n'est pas ce composant qui stocke les images mais le TImageCollection.
Donc, il faut que je revoie mes ides. J'avais commencer un truc avec les ressources, qui s'avre inutile, d'autant plus que c'est galre  dcouper !
[/EDIT]

Quant au numberbox, je l'ai utilis car, il est nettement mieux (plus ractif au LiveBinding) que SpinEdit.
Donc, AMHA, c'est jouable, seule la partie helper (pour connaitre les indexs) est un peu plus problmatique, et en faisant en sorte de faire comme le TcontrolList le redessin de tout le contenu  chaque fois. Challenge intressant

----------


## pprem

Faire un taquin avec le TControlList est-il une porte ouverte pour te faire taquiner jeudi ?

----------


## SergioMaster

::ptdr::  Bon d'accord, je vais tcher de trouver ou copier une image de poisson pour rester dans le thme  ::ptdr::  
Taquine (les sources sont dj dans le dpt Git)

Si le temps ne manque pas j'ai prvu de le prsenter aussi (avec les dames et l'chiquier mme technique) mais le questionnement de Charly m'intresse aussi, histoire de faire une comparaison.

----------


## SergioMaster

Bonjour, 

Pour rpondre @charly910 
 - le TControList est remplaable par un TScrollBox
 - au sujet du TVirtualImage, le remplacer par un TImage et pour le chargement utiliser le code 


```
  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 rsultat  tester sur des versions supportant TImageCollection. conc 10.3
Source dgrossi mais non optimum,  vrifier 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

----------


## Charly910

Merci Serge
a compile bien sous D10.3.3 CE et a fonctionne.

Petit Pb avec 9 et 16 pices : 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

----------


## SergioMaster

> a compile bien sous D10.3.3 CE et a fonctionne.


Super




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


J'ai fait a en dernire minute avant mon premier coup de tlphone utilisateur donc pas rellement vrifi.

----------


## Charly910

Bravo Serge, a marche impeccable
Par contre il faut que je m'entraine au taquin car je ne suis pas trs fort !
A+
Charly

----------


## SergioMaster

> Par contre il faut que je m'entraine au taquin car je ne suis pas trs fort !


Je n'arrive qu' rsoudre StoneEdge en 4*4 et encore pas  chaque fois  :;):  
Ce serait sympa de pouvoir faire jouer un robot avec le moins de coups possibles (hors de ma porte a).
Compter les coups, a c'est faisable mais utile ?

J'ai profit de quelques instants de fin de journe pour tester les fuites mmoires, la version 10.3.3 en fait,  cause de TImageCollection.GetImage (RSP-23950)
La version ci-dessous corrige ce problme en utilisant TImageCollection.GetSource
Pour les dtenteurs de versions plus anciennes (TImageCollection inexistant) je vous propose mme une version 10.2 teste, et  tester (D2009 et plus  cause de l'unit generic.collections)

----------


## Charly910

Enregistrer une partie dans un fichier permettrait de la rejouer automatiquement, d'changer des parties entre joueurs et de stocker les meilleurs scores.

aprs le robot intelligent, l a me semble plus difficile !

A+
Charly

----------


## SergioMaster

Pour ceux que cela intresse, avec un peu d'huile de coude, j'ai russi  downgrader jusqu' la version D2009 (en thorie) D2010 

test D2010



test XE4


je fournirai bientt le zip taquin_10_2 modifi.

D7 me resiste car depuis l'apparition de l'unit generic.collections, j'ai perdu l'habitude d'utiliser autre chose mais je ne dsespre pas d'y arriver

----------


## Cirec

Bonjour,

aprs plusieurs mois de pause force, je vois le code du jeu de taquin et me dit que c'est une bonne occasion 
de m'y remettre  ::mrgreen:: 

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 sances de debug n'ont pas aides  le dbusquer !!!
J'ai "dgraiss" le code pour trouver le problme ... 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 problme se contourne facilement en dclenchant l'appel  DrawScrollBox 
 l'extrieur de la procedure  TMainForm.MoveMorceau(morceau: word); 
avec un Timer  40 ms qui ne gne en rien le joueur.

J'ai galement ajout un mlange des pices qui assure 
la faisabilit du puzzle .
Les images png sont directement charges dans un Bitmap grce  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 gnriques en langage D7 et autres petites choses 
il faudra regarder le code  ::D: 
Taquin_7_0.zip
PS: le code compile de D7  D10.3 
et il est mme possible de le compiler avec D6 

Cordialement,

@+

----------


## SergioMaster

Super, a m'vite de le faire.  ::ccool:: 

J'avais bien pens utiliser GDI mais ne le maitrisant pas, j'avais laisser de ct, l'objectif n'tant pas d'crire un programme mais de "downgrader" le TControlList.
Je vais pouvoir me consacrer  la version FMX (bien avance) avant que Patrick ne me coupe l'herbe sous le pied dimanche lors de son codage de jeux en direct.

----------


## pprem

> Je vais pouvoir me consacrer  la version FMX (bien avance) avant que Patrick ne me coupe l'herbe sous le pied dimanche lors de son codage de jeux en direct.


Parti comme c'est, j'aurai de la chance si je tiens plus d'une demi-heure de direct mais on verra bien demain. Intervention d'un ITI Free lundi pour comprendre&rsoudre mes pertes de synchro fibre. J'ai hte.

C'est fou ce qu'on est dpendants d'Internet de nos jours et je me demande dans quelle mesure Windows (ou VM Ware) ne l'est pas aussi vues les lenteurs omniprsentes (voir blocages)  chaque dconnexion.

----------


## SergioMaster

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  ::mouarf:: 
Plus srieusement, la version FMX sera bientt dans mon dpt Git malgr une fuite de mmoire du au chargement d'image qui me casse les pieds

----------


## blonde

> 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'anctre du sms  ::D: . Enfin.. vous voyez de quoi je veux parler ?

----------


## SergioMaster

> 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  ct de mon bureau et deux baguettes de bois sur mon port USB  ::ptdr::

----------


## pprem

> Plus srieusement, la version FMX sera bientt dans mon dpt Git malgr une fuite de mmoire du au chargement d'image qui me casse les pieds


peut-tre as-tu reu ma suggestion de correction d'hier ? fonctionne-t-elle ?

H-1 le jeu en lui-mme est globalement pas trs compliqu  mettre en place, je vais plus jouer sur les dcors et le multiplateforme  :;):

----------


## SergioMaster

> peut-tre as-tu reu ma suggestion de correction d'hier ? fonctionne-t-elle ?


Oui, j'ai reu et non elle ne fonctionnait pas.

Je viens juste de rsoudre le problme, plus de fuite mmoire dans ce bout de code test 



```

```

Il faut juste que je mette a dans le code (j'en ai profit pour intgrer le helper que j'utilisai avant pour ajouter un bitmap  une liste)

----------

