FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Démonstration de CARDS.DLL - Page 3 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Démonstration de CARDS.DLL - Page 3 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Démonstration de CARDS.DLL - Page 3 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Démonstration de CARDS.DLL - Page 3 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Démonstration de CARDS.DLL - Page 3 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Démonstration de CARDS.DLL - Page 3 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Démonstration de CARDS.DLL - Page 3 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Démonstration de CARDS.DLL - Page 3 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Démonstration de CARDS.DLL - Page 3 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Démonstration de CARDS.DLL - Page 3 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Démonstration de CARDS.DLL - Page 3 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Démonstration de CARDS.DLL - Page 3 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Démonstration de CARDS.DLL - Page 3 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Démonstration de CARDS.DLL - Page 3 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Démonstration de CARDS.DLL - Page 3 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
LEGO Icons 10331 – Le martin-pêcheur
35 €
Voir le deal

 

 Démonstration de CARDS.DLL

Aller en bas 
+3
Ouf_ca_passe
Klaus
papydall
7 participants
Aller à la page : Précédent  1, 2, 3, 4, 5  Suivant
AuteurMessage
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 2:00

Le glisser/Déposer est implémenté. Le fait de "sortir" une carte de sa pile la "détache" de la pile en question. Ceci est visible dans la pile horizontale du haut. On peut en retirer des cartes et les placer ailleurs. Ensuite, lors du "ramassage", elles ne seront plus prises en compte, même si graphiquement elles sont replacées dans cette pile. On le voit par le compteur des cartes ramassées - elles sont décomptées, et laissées en place là où on les a placées. Mais elles continueront à réagir au clic et envoyer leur identification, et les trèfles se retournent à chaque clique, même déplacées. Et le clic sur le terrain de jeu reste reconnu en tant que tel.

Il faut reprendre KGF.dll dans le WebDav, dossier DLLs.

Voici le code du programme de démo:
Code:
' test_MyCards.bas

label creer, supprimer, ramasser, distribuer, event, test

dim PG%, ST1%, ST2%, ST3%, CD%(13,3), CDdos%(11)
dim ncd%(3), fond$
dim res%, i%, k%, n%, s$, xcd%

dim debug%              : debug%              = 0

dim sHearts%            : sHearts%            = 0
dim sClubs%            : sClubs%            = 1
dim sDiamonds%          : sDiamonds%          = 2
dim sSpades%            : sSpades%            = 3

dim sgStockTopBackUp%  : sgStockTopBackUp%  = 0
dim sgStockTopFaceUp%  : sgStockTopFaceUp%  = 1
dim sgTopDown%          : sgTopDown%          = 2
dim sgLeftRight%        : sgLeftRight%        = 3
dim sgDownTop%          : sgDownTop%          = 4
dim sgRightLeft%        : sgRightLeft%        = 5

dim soNone%            : soNone%            = 0
dim soAscendant%        : soAscendant%        = 1
dim soDescendant%      : soDescendant%      = 2
 
dim scAll%              : scAll%              = 0
dim scSpades%          : scSpades%          = 1
dim scDiamonds%        : scDiamonds%        = 2
dim scClubs%            : scClubs%            = 3
dim scHearts%          : scHearts%          = 4
dim scBlack%            : scBlack%            = 5
dim scRed%              : scRed%              = 6
dim scAlternateBackRed% : scAlternateBackRed% = 7


full_space 0
dll_on "KGF.dll"

button 1 : top 1,10 : left 1,10 : caption 1,"Créer" : on_click 1,creer
button 2 : top 2,10 : left 2,90 : caption 2,"Supprimer" : on_click 2,supprimer : inactive 2
button 6 : top 6,10 : left 6,410 : caption 6,"Ramasser" : on_click 6,ramasser : inactive 6
button 7 : top 7,10 : left 7,490 : caption 7,"Distribuer" : on_click 7,distribuer : inactive 7

button 8 : top 8,10 : left 8,570 : caption 8,"Test" : on_click 8,test :  hide 8

open_dialog 97
memo 98 : hide 98 : bar_both 98
edit 99 : left 99,700 : width 99,300 : on_change 99,event :  hide 99

end

creer:
  ' créer le terrain de jeu
  filter 97,"Fchiers *.BMP |*.bmp"
  fond$ = file_name$(97)
  if fond$="_"
    fond$ = ""
  else
    if file_exists(fond$)=0 then fond$ = ""
  end_if
  PG% = dll_call5("CreateMyCardsPlayground",handle(0),handle(99),10,40,adr(fond$))
  if debug%=1 then message "CreateMyCardsPlayground="+hex$(PG%)

  ' dimensionner le terrain de jeu
  res% = dll_call5("MyCardsPlaygroundGeometry",PG%,0,40,1200,650)
  if debug%=1 then message "MyCardsPlaygroundGeometry="+str$(res%)

  ' créer les 3 piles - une de gauche à droite
  '                  - une empilée les unes sur les autres
  '                  - une à gauche avec cartes détachées
  ST1% = dll_call5("CreateMyCardsStack",PG%,sgLeftRight%,soNone%,scAll%,15)
  if debug%=1 then message "CreateMyCardsStack="+str$(ST1%)
  res% = dll_call3("LocateMyCardsStack",ST1%,10,40)
  if debug%=1 then message "LocateMyCardsStack="+str$(res%)
  ST2% = dll_call5("CreateMyCardsStack",PG%,sgStockTopBackUp%,soNone%,scAll%,0)
  if debug%=1 then message "CreateMyCardsStack="+str$(ST2%)
  res% = dll_call3("LocateMyCardsStack",ST2%,1100,40)
  if debug%=1 then message "LocateMyCardsStack="+str$(res%)
  ST3% = dll_call5("CreateMyCardsStack",PG%,sgLeftRight%,soNone%,scAll%,85)
  if debug%=1 then message "CreateMyCardsStack="+str$(ST2%)
  res% = dll_call3("LocateMyCardsStack",ST3%,10,200)
  if debug%=1 then message "LocateMyCardsStack="+str$(res%)

  ' créer les 52 cartes et les envoyer dans la pile horizontale
  ncd%(1)= 0
  for i%=0 to 3
    for k%=1 to 13
      CD%(k%,i%) = dll_call4("CreateMyCardsCard",PG%,i%,k%,4)
      if CD%(k%,i%)=0 then message "oups - carte "+str$(k%)+","+str$(i%)
      if CD%(k%,i%)<>0 then ncd%(1) = ncd%(1) + 1
      if debug%=1 then message "CreateMyCardsCard="+str$(CD%(k%,i%))
      res% = dll_call2("MoveMyCardsCardToStack",CD%(k%,i%),ST1%)
      if debug%=1 then message "MoveMyCardsCardToStack="+str$(res%)
    next k%
  next i%
  message str$(ncd%(1))+" cartes ont été créées."
  ' mélanger les 52 cartes
  res% = dll_call1("ShuffleMyCardsStack",ST1%)
  if debug%=1 then message "ShuffleMyCardsStack="+str$(res%)
  ' créer les 12 dos de cartes et les envoyer dans l'autre pile horizontale
  ncd%(3)= 0
  for i%=0 to 11
      CDdos%(i%) = dll_call4("CreateMyCardsCard",PG%,0,1,i%)
      if CDdos%(i%)=0 then message "oups - dos "+str$(i%)
      if CDdos%(i%)<>0 then ncd%(3) = ncd%(3) + 1
      if debug%=1 then message "CreateMyCardsCard="+str$(CDdos%(i%))
      res% = dll_call2("MoveMyCardsCardToStack",CDdos%(i%),ST3%)
      if debug%=1 then message "MoveMyCardsCardToStack="+str$(res%)
      res% = dll_call2("ManageMyCardsCard",CDdos%(i%),3)  : ' retourner la carte !
  next i%
  message str$(ncd%(3))+" dos de cartes ont été créées."
  inactive 1
  active 2
  active 6
  return
 
supprimer:
  PG% = dll_call1("DeleteMyCardsPlayground",PG%)
  if debug%=1 then message "DeleteMyCardsPlayground="+str$(PG%)
  active 1
  inactive 2
  inactive 6
  inactive 7
  return
 
ramasser:
  res% = dll_call2("MoveMyCardsStackToStack",ST1%,ST2%)
  ncd%(1) = ncd%(1) - res%
  ncd%(2) = res%
  if debug%=1 then message "MoveMyCardsStackToStack="+str$(res%)
  message str$(ncd%(2))+" cartes ont été ramassées."
  inactive 6
  active 7
  return
 
distribuer:
  res% = dll_call2("MoveMyCardsStackToStack",ST2%,ST1%)
  ncd%(2) = ncd%(2) - res%
  ncd%(1) = res%
  if debug%=1 then message "MoveMyCardsStackToStack="+str$(res%)
  message str$(ncd%(1))+" cartes ont été distribuées."
  inactive 7
  active 6
  return
 
event:
  s$ = trim$(text$(99))
  if left$(s$,2)="CC"      : ' clic sur carte
    message "clic - "+text$(99)
    if instr(s$,"Trèfle")>0    : ' carte de trèfle ?
      xcd% = hex(mid$(s$,3,8))
      res% = dll_call2("ManageMyCardsCard",xcd%,3)  : ' retourner la carte !
    end_if
  end_if
  if left$(s$,2)="CP"      : ' clic sur terrain de jeu
    message "clic - "+text$(99)
  end_if
  return


test:


  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 2:47

Démonstration de CARDS.DLL - Page 3 Salut_10


Merci Klaus pour cette belle avancée.
J’ai testé : c’est fluide et sans clignotement.
Démonstration de CARDS.DLL - Page 3 Bravo10

Tu éprouves un sacré plaisir pour faire ça !
Bonne continuation !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 3:24

Je résume :
Jusqu’à présent, sont crées les fonctions suivantes :
1 )   CreateMyCardsPlayground  < --- créer le terrain de jeu
2 )   MyCardsPlaygroundGeometry < --- dimensionner le terrain de jeu
3 )   CreateMyCardsStack < --- créer une pile
4 )   LocateMyCardsStack < --- localiser une carte dans une pile
5 )   MoveMyCardsCardToStack < ---- déplacer une carte vers une pile
6 )   ShuffleMyCardsStack < --- Mélanger les cartes d’une pile
7 )   ManageMyCardsCard < --- Retourner une carte
8 )   DeleteMyCardsPlayground < ---Supprimer le terrain de jeu


Tout ça est BOOO !  king
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 7:51

Bonjour Klaus

j'ai testé aussi et c'est très sympa ! cheers

Je te signale juste que dans les cartes que je retire et qui ne sont pas des trèfles, lorsque je fait un ramassage, parmi les carte déplacés il y en a une qui se met 'coté dos' (face caché).
Et si je continu a redistribuer et ramasser de nouveau, au moment de ramasser une nouvelle carte se retourne face caché. Et ainsi de suite a chaque ramassage...

Sinon le glisser déplacer fonctionne très bien. Bravo ! drunken  

Pour les nouvelles idée, tu devrais penser pour la suite (mais tu y a sûrement pensé) à faire en sorte que les cartes déplacées se 'bloquent' les une à coté des autres et s'alignent une à une horizontalement ou verticalement. Wink

Voila pour le moment. Bon courage !
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 11:44

Merci à tous deux pour vos remarques et votre intérêt !

Citation :
Je te signale juste que dans les cartes que je retire et qui ne sont pas des trèfles, lorsque je fait un ramassage, parmi les carte déplacés il y en a une qui se met 'coté dos' (face caché).
Et si je continu a redistribuer et ramasser de nouveau, au moment de ramasser une nouvelle carte se retourne face caché. Et ainsi de suite a chaque ramassage...
Ok - je vois d'où ça vient et je vais le corriger.

Citation :
Pour les nouvelles idée, tu devrais penser pour la suite (mais tu y a sûrement pensé) à faire en sorte que les cartes déplacées se 'bloquent' les une à coté des autres et s'alignent une à une horizontalement ou verticalement.
Oui, c'est prévu. La suite du glisser/déposer sera:
- déterminer la cible de la dépose (jusqu'ici, on peut déposer n'importe où...)
- paramétrer les autorisations de dépose, pour chaque pile et pour le terrain de jeu
- paramétrer les autorisation d'enlèvement d'une carte, par pile et pour le terrain de jeu
- paramétrer le nombre maxi de cartes par pile
- paramétrer le nombre de cartes cachées par pile
etc.

C'est loin d'être fini. Mon souhait, c'est de faire une "boite à outils" pour la création de jeux de cartes, et non simplement une base pour faire des patiences. Poker, Belote, Memory, Bonneteau - pour ne citer que quelques-uns. Sans parler des jeux qu'on pourrait inventer ?

PS:

Avez-vous essayé l'image de fond ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 13:37

Klaus a écrit:
Avez-vous essayé l'image de fond ?

ça donne ceci : Sympa, non ?:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 14:40

Ouiiiiiiiiii c'était l'idée !

Nouvelle version:
- paramétrage des autorisations pour l'accrochage d'une carte pour la faire glisser, tant à partir du terrain de jeu qu'à partir d'une pile
- paramétrage des autorisations pour la dépose d'une carteaprès l'avoir fait glisser, tant dans le terrain de jeu que dans une pile

Dans le programme de démo ci-après, me terrain de jeu a les autorisations suivantes:
Code:
  ' on ne peut "accrocher" que les cartes ouvertes dans le terrain de jeu
  ' on peut déposer n'importe où
  res% = dll_call3("MyCardsPlaygroundOptions",PG%,dragFaceUp%,DropAny%)

La première pile horizontale a les autorisations suivantes:
Code:
  ' on ne peut "accrocher" que la dernière carte de stack 1
  ' on peut déposer des cartes - elles se mettront automatiquement en dernière position
  res% = dll_call3("MyCardsCardStackOptions",ST1%,dragLast%,DropLast%) : ' dropNone%)

La deuxième pile (celle recevant le ramassage) a les autorisations suivantes:
Code:
  ' par défaut, on ne peut pas "accrocher" une carte
  ' par défaut, on ne peut déposer aucune carte

La troisième pile horizontale (celle montrant les dos des cartes) a les autorisations suivantes:
Code:
  ' on peut tirer toutes les cartes de stack 3
  ' on ne peut déposer aucune carte
  res% = dll_call3("MyCardsCardStackOptions",ST3%,dragAll%,dropNone%)

Et voici le code:
Code:
' test_MyCards.bas

label creer, supprimer, ramasser, distribuer, event, test

dim PG%, ST1%, ST2%, ST3%, CD%(13,3), CDdos%(11)
dim ncd%(3), fond$
dim res%, i%, k%, n%, s$, xcd%

dim debug%              : debug%              = 0

dim sHearts%            : sHearts%            = 0
dim sClubs%            : sClubs%            = 1
dim sDiamonds%          : sDiamonds%          = 2
dim sSpades%            : sSpades%            = 3

dim sgStockTopBackUp%  : sgStockTopBackUp%  = 0
dim sgStockTopFaceUp%  : sgStockTopFaceUp%  = 1
dim sgTopDown%          : sgTopDown%          = 2
dim sgLeftRight%        : sgLeftRight%        = 3
dim sgDownTop%          : sgDownTop%          = 4
dim sgRightLeft%        : sgRightLeft%        = 5

dim soNone%            : soNone%            = 0
dim soAscendant%        : soAscendant%        = 1
dim soDescendant%      : soDescendant%      = 2
 
dim scAll%              : scAll%              = 0
dim scSpades%          : scSpades%          = 1
dim scDiamonds%        : scDiamonds%        = 2
dim scClubs%            : scClubs%            = 3
dim scHearts%          : scHearts%          = 4
dim scBlack%            : scBlack%            = 5
dim scRed%              : scRed%              = 6
dim scAlternateBackRed% : scAlternateBackRed% = 7

dim dragNone%          : dragNone%          = 0
dim dragAll%            : dragAll%            = 1
dim dragFaceUp%        : dragFaceUp%        = 2
dim dragFaceDown%      : dragFaceDown%      = 3
dim dragLast%          : dragLast%          = 4

dim dropNone%          : dropNone%          = 0
dim DropAny%            : DropAny%            = 1
dim DropLast%          : DropLast%          = 2


full_space 0
dll_on "KGF.dll"

button 1 : top 1,10 : left 1,10 : caption 1,"Créer" : on_click 1,creer
button 2 : top 2,10 : left 2,90 : caption 2,"Supprimer" : on_click 2,supprimer : inactive 2
button 6 : top 6,10 : left 6,410 : caption 6,"Ramasser" : on_click 6,ramasser : inactive 6
button 7 : top 7,10 : left 7,490 : caption 7,"Distribuer" : on_click 7,distribuer : inactive 7

button 8 : top 8,10 : left 8,570 : caption 8,"Test" : on_click 8,test : ' hide 8

open_dialog 97
memo 98 : hide 98 : bar_both 98
edit 99 : left 99,700 : width 99,300 : on_change 99,event : ' hide 99

end

creer:
  ' créer le terrain de jeu
  filter 97,"Fchiers *.BMP |*.bmp"
  fond$ = file_name$(97)
  if fond$="_"
    fond$ = ""
  else
    if file_exists(fond$)=0 then fond$ = ""
  end_if
  PG% = dll_call5("CreateMyCardsPlayground",handle(0),handle(99),10,40,adr(fond$))
  if debug%=1 then message "CreateMyCardsPlayground="+hex$(PG%)
  ' on ne peut "accrocher" que les cartes ouvertes dans le terrain de jeu
  ' on peut déposer n'importe où
  res% = dll_call3("MyCardsPlaygroundOptions",PG%,dragFaceUp%,DropAny%)

  ' dimensionner le terrain de jeu
  res% = dll_call5("MyCardsPlaygroundGeometry",PG%,0,40,1200,650)
  if debug%=1 then message "MyCardsPlaygroundGeometry="+str$(res%)

  ' créer les 3 piles - une de gauche à droite
  '                  - une empilée les unes sur les autres
  '                  - une à gauche avec cartes détachées
  ST1% = dll_call5("CreateMyCardsStack",PG%,sgLeftRight%,soNone%,scAll%,15)
  if debug%=1 then message "CreateMyCardsStack="+str$(ST1%)
  res% = dll_call3("LocateMyCardsStack",ST1%,10,40)
  if debug%=1 then message "LocateMyCardsStack="+str$(res%)
  ' on ne peut "accrocher" que la dernière carte de stack 1
  ' on peut déposer des cartes - elles se mettront automatiquement en dernière position
  res% = dll_call3("MyCardsCardStackOptions",ST1%,dragLast%,DropLast%) : ' dropNone%)

  ST2% = dll_call5("CreateMyCardsStack",PG%,sgStockTopBackUp%,soNone%,scAll%,0)
  if debug%=1 then message "CreateMyCardsStack="+str$(ST2%)
  res% = dll_call3("LocateMyCardsStack",ST2%,1100,40)
  if debug%=1 then message "LocateMyCardsStack="+str$(res%)
  ' par défaut, on ne peut pas "accrocher" une carte
  ' par défaut, on ne peut déposer aucune carte

  ST3% = dll_call5("CreateMyCardsStack",PG%,sgLeftRight%,soNone%,scAll%,85)
  if debug%=1 then message "CreateMyCardsStack="+str$(ST2%)
  res% = dll_call3("LocateMyCardsStack",ST3%,10,200)
  if debug%=1 then message "LocateMyCardsStack="+str$(res%)
  ' on peut tirer toutes les cartes de stack 3
  ' on ne peut déposer aucune carte
  res% = dll_call3("MyCardsCardStackOptions",ST3%,dragAll%,dropNone%)

  ' créer les 52 cartes et les envoyer dans la pile horizontale
  ncd%(1)= 0
  for i%=0 to 3
    for k%=1 to 13
      CD%(k%,i%) = dll_call4("CreateMyCardsCard",PG%,i%,k%,4)
      if CD%(k%,i%)=0 then message "oups - carte "+str$(k%)+","+str$(i%)
      if CD%(k%,i%)<>0 then ncd%(1) = ncd%(1) + 1
      if debug%=1 then message "CreateMyCardsCard="+str$(CD%(k%,i%))
      res% = dll_call2("MoveMyCardsCardToStack",CD%(k%,i%),ST1%)
      if debug%=1 then message "MoveMyCardsCardToStack="+str$(res%)
    next k%
  next i%
  message str$(ncd%(1))+" cartes ont été créées."
  ' mélanger les 52 cartes
  res% = dll_call1("ShuffleMyCardsStack",ST1%)
  if debug%=1 then message "ShuffleMyCardsStack="+str$(res%)
  ' créer les 12 dos de cartes et les envoyer dans l'autre pile horizontale
  ncd%(3)= 0
  for i%=0 to 11
      CDdos%(i%) = dll_call4("CreateMyCardsCard",PG%,0,1,i%)
      if CDdos%(i%)=0 then message "oups - dos "+str$(i%)
      if CDdos%(i%)<>0 then ncd%(3) = ncd%(3) + 1
      if debug%=1 then message "CreateMyCardsCard="+str$(CDdos%(i%))
      res% = dll_call2("MoveMyCardsCardToStack",CDdos%(i%),ST3%)
      if debug%=1 then message "MoveMyCardsCardToStack="+str$(res%)
      res% = dll_call2("ManageMyCardsCard",CDdos%(i%),3)  : ' retourner la carte !
  next i%
  message str$(ncd%(3))+" dos de cartes ont été créées."
  inactive 1
  active 2
  active 6
  return
 
supprimer:
  PG% = dll_call1("DeleteMyCardsPlayground",PG%)
  if debug%=1 then message "DeleteMyCardsPlayground="+str$(PG%)
  active 1
  inactive 2
  inactive 6
  inactive 7
  return
 
ramasser:
  res% = dll_call2("MoveMyCardsStackToStack",ST1%,ST2%)
  ncd%(1) = ncd%(1) - res%
  ncd%(2) = res%
  if debug%=1 then message "MoveMyCardsStackToStack="+str$(res%)
  message str$(ncd%(2))+" cartes ont été ramassées."
  inactive 6
  active 7
  return
 
distribuer:
  res% = dll_call2("MoveMyCardsStackToStack",ST2%,ST1%)
  ncd%(2) = ncd%(2) - res%
  ncd%(1) = res%
  if debug%=1 then message "MoveMyCardsStackToStack="+str$(res%)
  message str$(ncd%(1))+" cartes ont été distribuées."
  inactive 7
  active 6
  return
 
event:
  s$ = trim$(text$(99))
  if left$(s$,2)="CC"      : ' clic sur carte
    message "clic - "+text$(99)
    if instr(s$,"Trèfle")>0    : ' carte de trèfle ?
      xcd% = hex(mid$(s$,3,8))
      res% = dll_call2("ManageMyCardsCard",xcd%,3)  : ' retourner la carte !
    end_if
  end_if
  if left$(s$,2)="CP"      : ' clic sur terrain de jeu
    message "clic - "+text$(99)
  end_if
  return


test:


  return

Faites glisser une des cartes montrant leur dos, n'importe où dans la ligne des cartes découvertes en haut. elle se mettra à la fin en se découvrant automatiquement.

ATTENTION !

Je n'ai momentanément pas accès à mon WebDav ! Donc, j'ai mis KGF.dll sur mon site - les liens dans la signature donnent la bonne version, tant pour le site normal que pour le site miroir !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 17:26

Nouvelle version:
J'ai rendu actif les contrôles selon le tri des valeurs (ascendants, ...) et les couleurs (Pique, Coeur, ...) des piles, pour la fonction MoveMyCardsCardToStack. Si, dans la création de la pile ST1%, on remplace scAll% par scHeart%, par exemple, seules les 13 cartes Coeur apparaîtront, et la pile ne contiendra effectivement que 13 cartes. En plus, il n'est plus possible d'y glisser une des cartes à dos visible, car elles sont toutes des As de Pique ! C'est la preuve que le contrôle par couleur marche. Il en est de même pour le classement par valeur.

Voici le programme de démo adapté avec les nouvelles constantes:
Code:
' test_MyCards.bas

label creer, supprimer, ramasser, distribuer, event, test

dim PG%, ST1%, ST2%, ST3%, CD%(13,3), CDdos%(11)
dim ncd%(3), fond$
dim res%, i%, k%, n%, s$, xcd%

dim debug%              : debug%              = 0

dim sHearts%            : sHearts%            = 0
dim sClubs%              : sClubs%              = 1
dim sDiamonds%          : sDiamonds%          = 2
dim sSpades%            : sSpades%            = 3

dim sgStockTopBackUp%    : sgStockTopBackUp%    = 0
dim sgStockTopFaceUp%    : sgStockTopFaceUp%    = 1
dim sgTopDown%          : sgTopDown%          = 2
dim sgLeftRight%        : sgLeftRight%        = 3
dim sgDownTop%          : sgDownTop%          = 4
dim sgRightLeft%        : sgRightLeft%        = 5

dim soNone%              : soNone%              = 0
dim soAscendant%        : soAscendant%        = 1
dim soDescendant%        : soDescendant%        = 2
 
dim scAll%              : scAll%              = 0
dim scSpades%            : scSpades%            = 1
dim scDiamonds%          : scDiamonds%          = 2
dim scClubs%            : scClubs%            = 3
dim scHearts%            : scHearts%            = 4
dim scBlack%            : scBlack%            = 5
dim scRed%              : scRed%              = 6
dim scAlternateBlackRed% : scAlternateBlackRed% = 7

dim dragNone%            : dragNone%            = 0
dim dragAll%            : dragAll%            = 1
dim dragFaceUp%          : dragFaceUp%          = 2
dim dragFaceDown%        : dragFaceDown%        = 3
dim dragLast%            : dragLast%            = 4

dim dropNone%            : dropNone%            = 0
dim DropAny%            : DropAny%            = 1
dim DropLast%            : DropLast%            = 2


full_space 0
dll_on "KGF.dll"

button 1 : top 1,10 : left 1,10 : caption 1,"Créer" : on_click 1,creer
button 2 : top 2,10 : left 2,90 : caption 2,"Supprimer" : on_click 2,supprimer : inactive 2
button 6 : top 6,10 : left 6,410 : caption 6,"Ramasser" : on_click 6,ramasser : inactive 6
button 7 : top 7,10 : left 7,490 : caption 7,"Distribuer" : on_click 7,distribuer : inactive 7

button 8 : top 8,10 : left 8,570 : caption 8,"Test" : on_click 8,test : ' hide 8

open_dialog 97
memo 98 : hide 98 : bar_both 98
edit 99 : left 99,700 : width 99,300 : on_change 99,event : ' hide 99

end

creer:
  ' créer le terrain de jeu
  filter 97,"Fchiers *.BMP |*.bmp"
  fond$ = file_name$(97)
  if fond$="_"
    fond$ = ""
  else
    if file_exists(fond$)=0 then fond$ = ""
  end_if
  PG% = dll_call5("CreateMyCardsPlayground",handle(0),handle(99),10,40,adr(fond$))
  if debug%=1 then message "CreateMyCardsPlayground="+hex$(PG%)
  ' on ne peut "accrocher" que les cartes ouvertes dans le terrain de jeu
  ' on peut déposer n'importe où
  res% = dll_call3("MyCardsPlaygroundOptions",PG%,dragFaceUp%,DropAny%)

  ' dimensionner le terrain de jeu
  res% = dll_call5("MyCardsPlaygroundGeometry",PG%,0,40,1200,650)
  if debug%=1 then message "MyCardsPlaygroundGeometry="+str$(res%)

  ' créer les 3 piles - une de gauche à droite
  '                  - une empilée les unes sur les autres
  '                  - une à gauche avec cartes détachées
  ST1% = dll_call5("CreateMyCardsStack",PG%,sgLeftRight%,soNone%,scAll%,15)
  ' <========== dans la ligne précédente, essayez scHearts% à la place de scAll% !!!!!
  if debug%=1 then message "CreateMyCardsStack="+str$(ST1%)
  res% = dll_call3("LocateMyCardsStack",ST1%,10,40)
  if debug%=1 then message "LocateMyCardsStack="+str$(res%)
  ' on ne peut "accrocher" que la dernière carte de stack 1
  ' on peut déposer des cartes - elles se mettront automatiquement en dernière position
  res% = dll_call3("MyCardsCardStackOptions",ST1%,dragLast%,DropLast%) : ' dropNone%)

  ST2% = dll_call5("CreateMyCardsStack",PG%,sgStockTopBackUp%,soNone%,scAll%,0)
  if debug%=1 then message "CreateMyCardsStack="+str$(ST2%)
  res% = dll_call3("LocateMyCardsStack",ST2%,1100,40)
  if debug%=1 then message "LocateMyCardsStack="+str$(res%)
  ' par défaut, on ne peut pas "accrocher" une carte
  ' par défaut, on ne peut déposer aucune carte

  ST3% = dll_call5("CreateMyCardsStack",PG%,sgLeftRight%,soNone%,scAll%,85)
  if debug%=1 then message "CreateMyCardsStack="+str$(ST2%)
  res% = dll_call3("LocateMyCardsStack",ST3%,10,200)
  if debug%=1 then message "LocateMyCardsStack="+str$(res%)
  ' on peut tirer toutes les cartes de stack 3
  ' on ne peut déposer aucune carte
  res% = dll_call3("MyCardsCardStackOptions",ST3%,dragAll%,dropNone%)

  ' créer les 52 cartes et les envoyer dans la pile horizontale
  ncd%(1)= 0
  for i%=0 to 3
    for k%=1 to 13
      CD%(k%,i%) = dll_call4("CreateMyCardsCard",PG%,i%,k%,4)
      if CD%(k%,i%)=0 then message "oups - carte "+str$(k%)+","+str$(i%)
      if CD%(k%,i%)<>0 then ncd%(1) = ncd%(1) + 1
      if debug%=1 then message "CreateMyCardsCard="+str$(CD%(k%,i%))
      res% = dll_call2("MoveMyCardsCardToStack",CD%(k%,i%),ST1%)
      if debug%=1 then message "MoveMyCardsCardToStack="+str$(res%)
    next k%
  next i%
  message str$(ncd%(1))+" cartes ont été créées."

  ' mélanger les 52 cartes
  res% = dll_call1("ShuffleMyCardsStack",ST1%)
  if debug%=1 then message "ShuffleMyCardsStack="+str$(res%)
 
  ' créer les 12 dos de cartes et les envoyer dans l'autre pile horizontale
  ncd%(3)= 0
  for i%=0 to 11
      CDdos%(i%) = dll_call4("CreateMyCardsCard",PG%,0,1,i%)
      if CDdos%(i%)=0 then message "oups - dos "+str$(i%)
      if CDdos%(i%)<>0 then ncd%(3) = ncd%(3) + 1
      if debug%=1 then message "CreateMyCardsCard="+str$(CDdos%(i%))
      res% = dll_call2("MoveMyCardsCardToStack",CDdos%(i%),ST3%)
      if debug%=1 then message "MoveMyCardsCardToStack="+str$(res%)
      res% = dll_call2("ManageMyCardsCard",CDdos%(i%),3)  : ' retourner la carte !
  next i%
  message str$(ncd%(3))+" dos de cartes ont été créées."
  inactive 1
  active 2
  active 6
  return
 
supprimer:
  PG% = dll_call1("DeleteMyCardsPlayground",PG%)
  if debug%=1 then message "DeleteMyCardsPlayground="+str$(PG%)
  active 1
  inactive 2
  inactive 6
  inactive 7
  return
 
ramasser:
  res% = dll_call2("MoveMyCardsStackToStack",ST1%,ST2%)
  ncd%(1) = ncd%(1) - res%
  ncd%(2) = res%
  if debug%=1 then message "MoveMyCardsStackToStack="+str$(res%)
  message str$(ncd%(2))+" cartes ont été ramassées."
  inactive 6
  active 7
  return
 
distribuer:
  res% = dll_call2("MoveMyCardsStackToStack",ST2%,ST1%)
  ncd%(2) = ncd%(2) - res%
  ncd%(1) = res%
  if debug%=1 then message "MoveMyCardsStackToStack="+str$(res%)
  message str$(ncd%(1))+" cartes ont été distribuées."
  inactive 7
  active 6
  return
 
event:
  s$ = trim$(text$(99))
  if left$(s$,2)="CC"      : ' clic sur carte
    message "clic - "+text$(99)
    if instr(s$,"Trèfle")>0    : ' carte de trèfle ?
      xcd% = hex(mid$(s$,3,8))
      res% = dll_call2("ManageMyCardsCard",xcd%,3)  : ' retourner la carte !
    end_if
  end_if
  if left$(s$,2)="CP"      : ' clic sur terrain de jeu
    message "clic - "+text$(99)
  end_if
  return


test:


  return

Note:

Le WebDav et les deux sites sont à jour !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 18:23

Voici un début de programme utilisant au fur et à mesure les avancées de KGF.DLL.
Je me suis inspiré d’un code en Delphi pour commencer mon code Panoramic.
Je ne suis pas sûr d’en venir à bout, mais tu veux bien, Klaus (ou quelqu’un d’autre) le reprendre pour illustrer les nouvelles fonctions de KGF.DLL ?


Voici mon code qui ne fait presque rien … à part le choix du fonds, l’affichage des Règles du jeu et celui de l’à-propos !

Code:

rem ============================================================================
rem           Duel
rem ============================================================================
rem  Sur le tapis de jeu, les cartes sont réparties en piles pouvant contenir
rem  52 cartes.
rem  Piles 1 à 4 : les familles
rem  Piles 5 et 6 : jeu du programme
rem  Piles 7 et 8 : votre jeu
rem  Les piles des joueurs se composent de :
rem    - un talon couvert, les cartes distribuées
rem    - un talon découvert, les cartes retournées et non placées
rem ============================================================================

Constantes()
Variables()
GUI()
Menu()

end
rem ============================================================================
' Les constantes pour KGF.DLL
SUB Constantes()
    dim sHearts%            : sHearts%            = 0
    dim sClubs%             : sClubs%             = 1
    dim sDiamonds%          : sDiamonds%          = 2
    dim sSpades%            : sSpades%            = 3

    dim sgStockTopBackUp%   : sgStockTopBackUp%   = 0
    dim sgStockTopFaceUp%   : sgStockTopFaceUp%   = 1
    dim sgTopDown%          : sgTopDown%          = 2
    dim sgLeftRight%        : sgLeftRight%        = 3
    dim sgDownTop%          : sgDownTop%          = 4
    dim sgRightLeft%        : sgRightLeft%        = 5

    dim soNone%             : soNone%             = 0
    dim soAscendant%        : soAscendant%        = 1
    dim soDescendant%       : soDescendant%       = 2

    dim scAll%              : scAll%              = 0
    dim scSpades%           : scSpades%           = 1
    dim scDiamonds%         : scDiamonds%         = 2
    dim scClubs%            : scClubs%            = 3
    dim scHearts%           : scHearts%           = 4
    dim scBlack%            : scBlack%            = 5
    dim scRed%              : scRed%              = 6
    dim scAlternateBackRed% : scAlternateBackRed% = 7
END_SUB
rem ============================================================================
SUB Variables()
    label choix
' Les constantes pour le jeu
    dim kx(8), ky(8) : ' positions des piles sur le tapis
    kx(1) = 010 : kx(2) = 090 : kx(3) = 170 : kx(4) = 250
    kx(5) = 090 : kx(6) = 170 : kx(7) = 090 : kx(8) = 170
    ky(1) = 112 : ky(2) = 112 : ky(3) = 112 : ky(4) = 112
    ky(5) = 010 : ky(6) = 010 : ky(7) = 214 : ky(8) = 214
' Les piles
    dim pile1(52), pile2(52), pile3(52), pile4(52) : ' les familes
    dim pile5(52), pile6(52)                       : ' jeu du programme
    dim pile7(52), pile8(52)                       : ' votre jeu
    dim ctr1(52) , ctr2(52), ctr3(52), ctr4(52)    : ' compteur des nombres ...
    dim ctr5(52) , ctr6(52), ctr7(52), ctr8(52)    : ' ... de cartes dans les piles
' Les variables globales
    dim debok,posok,movok : ' boolean
    dim sx,sy,px,py,dx,dy : ' integer
    dim nc,jr,nb1,nb2,pdeb,pfin :' byte
' ==============================================================================
    dim fond$ : fond$ = ""
    dim res%, PG%
    dim ST1%, ST2%, ST3%, ST4%, ST5%, ST6%, ST7%, ST8%
    dim CD%(13,3), CDdos%(11), ncd%(3)
END_SUB
rem ============================================================================
SUB GUI()
    width 0,700 : height 0,550
    color 0,150,100,50

    open_dialog 97
    edit 99 : left 99,700 : width 99,300 : hide 99

    application_title "Jeu de cartes : Le DUEL"
    caption 0,"Jeu de cartes : DUEL"
    dll_on "KGF.dll"
END_SUB
rem ============================================================================
SUB Menu()
    main_menu 10
    sub_menu  11 : parent 11,10 : caption 11,"Jeu"
    sub_menu  12 : parent 12,11 : caption 12,"Nouvelle partie" : on_click 12,choix
    sub_menu  13 : parent 13,11 : caption 13,"Quitter"         : on_click 13,choix

    sub_menu  20 : parent 20,10 : caption 20,"Options"
    sub_menu  21 : parent 21,20 : caption 21,"Choisir un fonds ..." : on_click 21, choix

    sub_menu  30 : parent 30,10 : caption 30,"Règles du jeu"   : on_click 30,choix
    sub_menu  40 : parent 40,10 : caption 40,"A propos"        : on_click 40,choix
END_SUB
rem ============================================================================
Choix:
    select number_click
        case 12 : Nouvelle_Partie()
        case 13 : Quitter()
        case 21 : Fond()
        case 30 : Regles_Jeu()
        case 40 : A_Propos()
    end_select
return
rem ============================================================================
SUB Fond()
    filter 97,"Fchiers *.BMP |*.bmp"
    fond$ = file_name$(97)
    if fond$ = "_"
       fond$ = ""
    else
       if file_exists(fond$) = 0 then fond$ = ""
    end_if
    Afficher_Tapis()
END_SUB
rem ============================================================================
SUB Nouvelle_Partie()
    Afficher_Tapis()
    Melanger_Cartes()
    Creer_Les_8_Piles()
END_SUB
rem ============================================================================
' Afficher le tapis du jeu
SUB Afficher_Tapis()
     PG% = dll_call5("CreateMyCardsPlayground",handle(0),handle(99),50,40,adr(fond$))
END_SUB
rem ============================================================================
' mélanger les 52 cartes
SUB Melanger_Cartes()
    res% = dll_call1("ShuffleMyCardsStack",ST1%)
END_SUB
rem ============================================================================
SUB Creer_Les_8_Piles()
   message "Paydall est entrain d'y réflechir !"
END_SUB
rem ============================================================================
SUB Regles_Jeu()
    dim_local t$
    t$ = ""
    t$ = t$ + "Ce jeu est une réussite qui oppose deux joueurs, l'un des deux étant" + chr$(13)
    t$ = t$ + "vous-même. Le rôle du second étant tenu avec brio par le programme." + chr$(13)
    t$ = t$ + "Le jeu se joue avec 52 cartes." + chr$(13) + chr$(13)
    t$ = t$ + "-----------------------------------------------------------------" + chr$(13)
    t$ = t$ + "Le but" + chr$(13)
    t$ = t$ + "-----------------------------------------------------------------" + chr$(13) + chr$(13)
    t$ = t$ + "Epuiser son propre jeu avant son adversaire, en formant des familes" + chr$(13)
    t$ = t$ + "ascendantes : As, 2, 3, ..., Roi" + chr$(13) + chr$(13)
    t$ = t$ + "-----------------------------------------------------------------" + chr$(13)
    t$ = t$ + "Les moyens" + chr$(13)
    t$ = t$ + "-----------------------------------------------------------------" + chr$(13)+ chr$(13)
    t$ = t$ + "A tour de rôle, les joueurs retournent une carte :" + chr$(13)
    t$ = t$ + "  - S'il s'agit d'un AS, il est déposé sur le tapis où il servira de base à" + chr$(13)
    t$ = t$ + "    la constitution d'une famille" + chr$(13)
    t$ = t$ + "  - Si la carte retournée ne trouve pas sa place dans l'une des familles" + chr$(13)
    t$ = t$ + "    elle rejoint le talon découvert." + chr$(13)
    t$ = t$ + "  - Si elle a une valeur directement voisine de la carte supérieure du" + chr$(13)
    t$ = t$ + "    talon découvert adverse, elle peut s'y installer, sans tenir compte" + chr$(13)
    t$ = t$ + "    de la famille." + chr$(13)
    t$ = t$ + "    De même, un joueur peut se décharger d'une ou plusieurs cartes de" + chr$(13)
    t$ = t$ + "    son talon découvert vers celui de son adversaire. Cette opération" + chr$(13)
    t$ = t$ + "    doit être réalisée avant d'avoir retourné la carte du talon muet"+ chr$(13) + chr$(13)
    t$ = t$ + "Quand un joueur a épuisé son talon muet, il retourne le talon découvert" + chr$(13)
    t$ = t$ + "et le dépouille à nouveau, carte par carte" + chr$(13)
    t$ = t$ + "Le gagnant est celui qui, le premier, à épuisé toutes ses cartes"+ chr$(13) + chr$(13)
    t$ = t$ + " Le jeu du programe est en haut" + chr$(13)
    t$ = t$ + " Le talon muet est à droite: le talon découvert est à gauche" + chr$(13)
    t$ = t$ + " Le votre est en bas " + chr$(13)
    t$ = t$ + " Le talon muet est à gauche: le talon découvert est à droite" + chr$(13)
    t$ = t$ + " Les familles sont au milieu " + chr$(13)+chr$(13)
    t$ = t$ + "-----------------------------------------------------------------" + chr$(13)
    t$ = t$ + "Comment jouer ?" + chr$(13)
    t$ = t$ + "-----------------------------------------------------------------" + chr$(13)
    t$ = t$ + "Pour retourner une carte du talon muet, il suffit de cliquer dessus." + chr$(13)
    t$ = t$ + "Pour retourner le talon découvert, quand le talon muet est épuisé," + chr$(13)
    t$ = t$ + "cliquer sur l'emplacement du talon muet." + chr$(13)
    t$ = t$ + "Pour déplacer une carte, cliquer dessus, garder le bouton enfoncé" + chr$(13)
    t$ = t$ + "en déplaçant la carte jusqu'à la position voulue, pui lâcher tout." + chr$(13)
    t$ = t$ + "deux compteurs indiquent le nombre de cartes restant à chaque joueur." + chr$(13) + chr$(13)
    t$ = t$ + "B O N N E    C H A N C E   . . ."

    message t$
END_SUB
rem ============================================================================
SUB A_Propos()
    dim_local t$
    t$ = ""
    t$ = t$ + "Jeu     : Duel" + chr$(13)
    t$ = t$ + "Version : V 1.0" + chr$(13)
    t$ = t$ + "Date de création : 21/11/2016" + chr$(13)
    t$ = t$ + "Dernière modif   : 21/11/2016" + chr$(13)
    t$ = t$ + "Auteur  : papydall" + chr$(13) + chr$(13)
    t$ = t$ + "==================================" + chr$(13)
    t$ = t$ + "Je tiens à remercier Klaus pour sa KGF.DLL" + chr$(13)
    t$ = t$ + "=================================="
    message t$

END_SUB
rem ============================================================================
SUB Quitter()
    if message_confirmation_yes_no("Vous voulez vraiment quitter ?") = 1
       terminate
    end_if
END_SUB
rem ============================================================================


Vous trouverez de quoi vous rassasiez (question jeux de cartes) sur cette page


Dernière édition par papydall le Lun 21 Nov 2016 - 18:44, édité 1 fois (Raison : Correction : Afficher_Tapis() et non Afficher_Papts())
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 18:34

Belle idée, Papydall ! Tu as la base de la structure. Bon courage !

Mes remarques:

Code:
Afficher_Papis()
C'est marrant d'afficher des papis ! Je pense que tu voulaus parler de tapis ?

Code:
   Melanger_Cartes()
    Creer_Les_8_Piles()
Tu ne peux mélanger les cartes sur une pile que lorsque tu as créé la pile, pas avant...

Code:
  message "Paydall est entrain d'y réflechir !"
Excellent !

EDIT

D'après ce que je vois dans les règles, cela devrait déjà être réalisable dans l'état actuel de KGF.dll !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 18:42

Klaus a écrit:


Code:
Afficher_Papis()
C'est marrant d'afficher des papis ! Je pense que tu voulaus parler de tapis ?


Marrant pour marrant :
C’est  Juste :  je voulaus écrire Tapis , pas Papis !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 18:47

Very Happy Very Happy Very Happy
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 18:51

Eh ben moi j'aime bien les Papis voulaus, heuuu... je voulais dire les tapis volants !

Laughing Laughing Laughing Laughing

Bon je regarde vos codes à tous les deux et je comment ensuite...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 18:58

Puisque tu n'as pas encore de documentation pour ces fonctions, en voilà une qui mérite d'être connue:
Code:
res% = dll_call3("GetMyCardsInfo",ob%,act%,hmemo%)
act% = code action
1 = liste des stacks dans le playground  obj%=identifiant du PlayGround
2 = liste des cartes dans le playground  obj%=identification du PlayGround
3 = iste des cartes dans le stack  obj%=identification du Stack
Dans tous les cas, hmemo% est le handle d'un memo Panoramic qui peut être caché, mais qui doit avoir l'option BAR_BOTH. Tu récupères les identifiants du contenu ciblé, sous forme de 8 caractères hexa, à convertir en variable integer par la fonction HEX().
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 19:00

Démonstration de CARDS.DLL - Page 3 Bravo11
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 19:09

Je viens de tester ton programme Papydall, c'est alléchant, maintenant j'attends la suite... Wink
Je viens aussi de tester les dernières fonctions glisser-déplacer sur les dos des cartes dans la pile. c'est pas mal. sunny

Bon ! Après ce moment de distraction, je dois me remettre dans GPP... drunken
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 19:47

Il y a une nouvelle version, avec une nouvelle fonction de "confort". C'est:
Code:
  res% = dll_call6("CreateMyCardsDeckOnStack",ST%,couleur%,mini%,maxi%,as%,dos%)
  message "CreateMyCardsDeckOnStack="+str$(res%)
Elle crée une suite de cartes sur une pile. Toutes les cartes sont de la couleur couleur%, les valeurs vont de mini% à maxi% et elles ont le dos dos%. Si le paramètre as% est <>0, l'As est généré également. Ainsi, la séquence
Code:
  res% = dll_call6("CreateMyCardsDeckOnStack",ST1%,sClubs%,7,13,1,7)
  message "CreateMyCardsDeckOnStack="+str$(res%)
génère le jeu de belote en Trèfle. Et la séquence
Code:
  res% = dll_call6("CreateMyCardsDeckOnStack",ST1%,sClubs%,1,13,0,7)
  message "CreateMyCardsDeckOnStack="+str$(res%)
génère le jeu de patience en Trèfle.

Attention:
Dans le programme de démo, il y une erreur concernant le codage des couleurs des cartes. Il faut y remplacer les lignes 11 à 14 par
Code:
dim sSpades%            : sSpades%            = 0
dim sDiamonds%          : sDiamonds%          = 1
dim sClubs%              : sClubs%              = 2
dim sHearts%            : sHearts%            = 3
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyLun 21 Nov 2016 - 22:12

Comme je vois l'intérêt pour ce travail en cours de création, j'ai fait une petite doc préliminaire des fonctions existantes. Elle se trouve sur le WebDav, dossier DLLs, et s'appelle MyCards.rtf.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyMar 22 Nov 2016 - 1:28

Merci Klaus.

Je viens de télécharger.
Je regarderai quand j'aurais réglé quelques problèmes sur mon PC qui commencent à me taper sur les nerfs ! Sad
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyMar 22 Nov 2016 - 1:42

Petit aperçu sur les travaux en cours et ce qui va arriver prochainement:
- j'ai écrit la routine qui permet d'insérer une carte dans une pile "triée" (ascendante ou descendante), en décalant ce qu'il faut. Insertion provoquée par une nouvelle fonction spécifique ou par un glisser/déposer. Elle reste à tester.
- retassement de la pile d'origine en retirant une carte, soit par la fonction par programme soit par glisser/déposer.
- à une échéance un peu plus longue: création d'une notion de liste de piles recevant une donne" et réalisation d'une fonction de distribuer une donne à partir d'une liste servant de "talon", en cartes cachées ou ouvertes.

Tu vois, c'est loin d'être fini. Et c'est passionnant. J'aime beaucoup les jeux de cartes, et, jusqu'à maintenant, je n'avais pas les outils en Panoramic pour le faire correctement. Et je te suis reconnaissant, Papydall, d'avoir relancé ce sujet avec des suggestions pertinentes. Cela m'a permis de refaire un tout d'horizon de ces outils et d'en faire une évaluation, avant de faire un choix technique qui, à l'usage, me parait pertinent.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyMar 22 Nov 2016 - 1:55

@Minibug:
Tu as dit:
Citation :
Bon j'ai tout repris a zero et j'ai eu droit a un nouveau message me demandant d'installer card.dll
Chose que j'ai fait sans attendre !
J'ai retiré toute référence à Cards.dll dans KGF.dll. Cette DLL externe n'est plus nécessaire pour utiliser KGF.dll. Tu peux tranquillement supprimer Cards.dll de ta machine - je ne l'utiliserai plus. En effet, je sous à fond sur le système MyCards qui se passe de DLLs externes et est entièrement embarqué dans KGF.dll.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


Nombre de messages : 4570
Age : 58
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyMar 22 Nov 2016 - 7:47

Ok Klaus, c'est noté !

Je regarderai dès que possible. Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyMar 22 Nov 2016 - 16:31

J'ai fait quelques tests et essais avec ces nouvelles fonctions.
C'est plus clair après la lecture de MyCards.rtf
Merci Klaus !

Pour la nouvelle édition de cette doc, tu veux bien corriger les 2 erreurs suivantes dans : MyCards.rtf.

Citation :


Créer une pile de cartes dans un terrain de jeu
ST% = dll_call6("CreateMyCardsStack",(PG%, group%, ordering%, colors%, delta%)


Correction :

Citation :


Créer une pile de cartes dans un terrain de jeu
ST% = dll_call5("CreateMyCardsStack",PG%, group%, ordering%, colors%, delta%)


Citation :


Créer un lot de cartes sur une pile
res% = dll_call6("CreateMyCardsDeckOnStack",ST%, suit%,mini%,maxi%,as%,deck:%)


Correction :

Citation :


Créer un lot de cartes sur une pile
res% = dll_call6("CreateMyCardsDeckOnStack",ST%, suit%,mini%,maxi%,as%,deck%)


Bonne continuation, Klaus .... king
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 EmptyMar 22 Nov 2016 - 21:45

Merci, Papydall ! C'est corrigé.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: re   Démonstration de CARDS.DLL - Page 3 EmptyMer 23 Nov 2016 - 12:52

Vu les avancées, je vais m' y mettre avant d' être dépassé.
Laughing
Revenir en haut Aller en bas
Contenu sponsorisé





Démonstration de CARDS.DLL - Page 3 Empty
MessageSujet: Re: Démonstration de CARDS.DLL   Démonstration de CARDS.DLL - Page 3 Empty

Revenir en haut Aller en bas
 
Démonstration de CARDS.DLL
Revenir en haut 
Page 3 sur 5Aller à la page : Précédent  1, 2, 3, 4, 5  Suivant
 Sujets similaires
-
» Démonstration de Draw_polygone
» démonstration de 6 bugs en 1 code !!!
» Démonstration n°1 de TOONIC: un simple paysage

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: