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
» Gestion d'un système client-serveur.
Cards.dll pour afficher un jeu de 52 cartes Emptypar Klaus Aujourd'hui à 0:24

» PANORAMIC V 1
Cards.dll pour afficher un jeu de 52 cartes Emptypar Marc Hier à 19:51

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Cards.dll pour afficher un jeu de 52 cartes Emptypar Froggy One Hier à 11:16

» @Jack
Cards.dll pour afficher un jeu de 52 cartes Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
Cards.dll pour afficher un jeu de 52 cartes Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
Cards.dll pour afficher un jeu de 52 cartes Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Cards.dll pour afficher un jeu de 52 cartes Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Cards.dll pour afficher un jeu de 52 cartes Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Cards.dll pour afficher un jeu de 52 cartes Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Cards.dll pour afficher un jeu de 52 cartes Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
Cards.dll pour afficher un jeu de 52 cartes Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Cards.dll pour afficher un jeu de 52 cartes Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Cards.dll pour afficher un jeu de 52 cartes Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Cards.dll pour afficher un jeu de 52 cartes Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Cards.dll pour afficher un jeu de 52 cartes Emptypar leclode Mer 17 Avr 2024 - 11:07

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le deal à ne pas rater :
Cdiscount : -30€ dès 300€ d’achat sur une sélection Apple
Voir le deal

 

 Cards.dll pour afficher un jeu de 52 cartes

Aller en bas 
4 participants
AuteurMessage
papydall

papydall


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

Cards.dll pour afficher un jeu de 52 cartes Empty
MessageSujet: Cards.dll pour afficher un jeu de 52 cartes   Cards.dll pour afficher un jeu de 52 cartes EmptyJeu 21 Avr 2016 - 14:51

Tout est bien expliqué dans le code.
Veuillez lire les infos dans les lignes REM.


Code:

rem ============================================================================
rem         Utilisation de cards.dll
rem     Pour afficher un jeu de 52 cartes
rem ============================================================================
rem Remarque :
rem Depuis Windows 7, cette dll "Cards.dll" est remplacée par une autre dll :
rem "cardgames.dll" qui est totalement différente.
rem Personnellent je n ai aucune information pour son utilisation.
rem Par contre je sais comment faire avec "Cards.dll"
rem Dans ce code, j utilise donc "Cards.dll"
rem Vérifiez que vous avez cette DLL.
rem Les DLL se trouvent généralement dans le dossier :"C:\Windows\System32"
rem Si vous ne l avez pas, vous pouvez la télécharger depuis Internet
rem Sinon, vous pouvez la télécharger depuis mon Webdav : fichier "cards.dll"
rem ============================================================================
rem Cette DLL contient des images de carte à jouer.
rem Elle exporte cinq fonctions :
rem 1) cdtAnimate : anime le dos des cartes : non utilsée dans cet exemple
rem 2) cdtDraw    : Dessine une carte à jouer
rem 3) cdtDrawExt : identique à "cdtDraw". La seule différence est que cette
rem    fonction possède deux paramètres suplémentaires qui vous permetteront de
rem    indiquer la taille (largeur et hauteur) des cartes.
rem    Elle est non utilisée ici car elle nécessite 7 paramètres (PANORAMIC ne
rem    permet que 6 paramètres)
rem 4) cdtInit  : Initialise la DLL. Les deux paramètres permettent de récuperer
rem    la largeur et la hauteur des cartes à jouer qui sont par défaut 71 x 96
rem 5) cdtTerm  : Libère les ressources allouées
rem ============================================================================
rem Syntaxe de la fonction cdtDraw :
rem ret% = dll_call6("cdtDraw",HDC%,X,Y,Card,Typ,Couleur)
rem Avec HDC% : handle du contexte de périphérique dans lequel le tracé de la
rem             carte à jouer sera effectué
rem X,Y  : Position en pixel de la carte à jouer
rem Card : Numéro de la carte à jouer.
rem Typ  : Type de la carte : Les valeurs possibles sont 0, 1, 2 (permet de inverser
rem       les couleurs
rem Couleur : couleur du fond de la carte. Par défaut cette couleur est blanche.
rem ============================================================================
rem Les numéros des cartes à jouer vont de 0 à 51 soit 52 cartes.
rem les couleurs sont dans l ordre : trèfle, carreau, coeur, pique
rem 0 <--- le As de trèfle
rem 1 <--- le As de carreau
rem 2 <--- le As de coeur
rem 3 <--- le As de pique
' ------------------------
rem 4 <--- le 2  de trèfle
rem 5 <--- le 2  de carreau
rem 6 <--- le 2  de coeur
rem 7 <--- le 2  de pique
rem etc.
rem 40 <--- le Valet (J) de trèfle
rem 41 <--- le Valet (J) de carreau
rem 42 <--- le Valet (J) de coeur
rem 43 <--- le Valet (J) de pique
' -------------------------------
rem 44 <--- la Dame  (Q) de trèfle
rem 45 <--- la Dame  (Q) de carreau
rem 46 <--- la Dame  (Q) de coeur
rem 47 <--- la Dame  (Q) de pique
' --------------------------------
rem 48 <--- le Roi   (K) de trèfle
rem 49 <--- le Roi   (K) de carreau
rem 50 <--- le Roi   (K) de coeur
rem 51 <--- le Roi   (K) de pique

rem ============================================================================
rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
rem ============================================================================
dim HDC%,w%,h%,ret%,i
width 0,1250 : height 0,700
picture 10   : full_space 10  : ' On dessine les cartes à jouer sur un PICTURE
HDC% = handle_canvas(10)      : ' On détermine le Handle Device Control
dll_on "cards.dll"  : ' Ajuster le chemin d'accès à la DLL
' Initialiser la DLL. les deux paramètres permettent de récuperer la largeur
' et la hauteur des cartes
ret% = dll_call2("cdtInit",adr(w%),adr(h%))
' Dessiner les cartes à jouer
for i = 0 to 11   : ' les 12 premières cartes
    ret% = dll_call6("cdtDraw",HDC%,20+i*100,20,i,0,0)
next i

for i = 12 to 23  : ' les 12 cartes suivantes
    ret% = dll_call6("cdtDraw",HDC%,20+(i-12)*100,20+120,i,0,0)
next i

for i = 24 to 35  : ' les 12 cartes d'après
    ret% = dll_call6("cdtDraw",HDC%,20+(i-24)*100,20+240,i,0,0)
next i

for i = 36 to 47  : ' encore 12 autres cartes
    ret% = dll_call6("cdtDraw",HDC%,20+(i-36)*100,20+360,i,0,0)
next i

for i = 48 to 51  : ' les 4 dernières cartes
    ret% = dll_call6("cdtDraw",HDC%,20+(i-48)*100,20+480,i,0,0)
next i

 ret% = dll_call6("cdtDraw",HDC%,20+4*100,20+480,52,0,0) : ' Afficher une carte retournée

' Libèrer les ressources allouées
ret% = dll_call0("cdtTerm")

dll_off

end
rem ============================================================================
rem &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
rem ============================================================================

Voici le résultat:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




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

Cards.dll pour afficher un jeu de 52 cartes Empty
MessageSujet: re   Cards.dll pour afficher un jeu de 52 cartes EmptyJeu 21 Avr 2016 - 16:35

dll inconnue au bataillon dans mon ordi... Crying or Very sad
Revenir en haut Aller en bas
papydall

papydall


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

Cards.dll pour afficher un jeu de 52 cartes Empty
MessageSujet: Re: Cards.dll pour afficher un jeu de 52 cartes   Cards.dll pour afficher un jeu de 52 cartes EmptyJeu 21 Avr 2016 - 18:45

C’est normal !
Elle a disparu depuis W7.
Tu peux la récupérer sur mon webdav.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




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

Cards.dll pour afficher un jeu de 52 cartes Empty
MessageSujet: re   Cards.dll pour afficher un jeu de 52 cartes EmptyJeu 21 Avr 2016 - 19:18

C' est fait et mis en archive pour de futurs jeux peut être.
Laughing 

C' est très intéressant tout ce que tu nous donnes.
Revenir en haut Aller en bas
papydall

papydall


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

Cards.dll pour afficher un jeu de 52 cartes Empty
MessageSujet: Re: Cards.dll pour afficher un jeu de 52 cartes   Cards.dll pour afficher un jeu de 52 cartes EmptyJeu 21 Avr 2016 - 19:54

Wink
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Cards.dll pour afficher un jeu de 52 cartes Empty
MessageSujet: Re: Cards.dll pour afficher un jeu de 52 cartes   Cards.dll pour afficher un jeu de 52 cartes EmptyJeu 21 Avr 2016 - 23:55

oui et j'espère que tu perceras les mystères de la nouvelle DLL également. Ca te fait un challenge à relever Wink
Revenir en haut Aller en bas
papydall

papydall


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

Cards.dll pour afficher un jeu de 52 cartes Empty
MessageSujet: Re: Cards.dll pour afficher un jeu de 52 cartes   Cards.dll pour afficher un jeu de 52 cartes EmptyVen 22 Avr 2016 - 14:17

Code:

rem ============================================================================
rem                       Card_Demo
rem                  Code original en VBA
rem           Adaptation en PANORAMIC par Papydall
rem ============================================================================
' Brad's Card Demo
' by: Brad B., Jr.

'   This card demo covers most of the major things
'   you might need when beginning a new card game.
'
'   Each card in the deck(s) is stored in an array
'   called TheDeck(416). The 416 allows for up to
'   eight decks to be used. I don't use TheDeck(0)
'   so that recalling the cards is easier to uderstand.
'
'   I don't include more than what I have for a very
'   specific reason. Each card game has it's own set
'   of rules. If I give you too much, then my tutorial
'   becomes useless because you will have to sift through
'   too much information to get to the core of a card game
'
'   That core is all I included in the demo...
'       1. How to call the Cards.dll/Cards32.dll
'       2. How to use the functions in the .dll file
'       3. How to initialize your deck(s)
'       4. How to shuffle cards
'       5. How to draw, flip, and invert cards on a form
'   One major thing that I didn't include is
'       1. How to find out which card is clicked
'       I didn't include this because it is totally
'       dependant on the positioning and offset of
'       the cards on the form. However, here is a brief
'       description of how to do it:
'           In the Form_MouseDown event you use the X and Y
'           values to locate where the mouse is. You will use
'           the location of your hand and your offset to find
'           out if a card was clicked and which card that was.
'
'           For some games, you might not even need to check
'           which card was clicked. For example, I am currently
'           working on a BlackJack game that I use command buttons
'           to control Hit/Stand/Deal/Quit and I never once have to
'           click a card.
'
' ------------------------------------------------------------------------------
rem ============================================================================

Demo()

end
rem ============================================================================
SUB Demo()
    label clic
    dim DeckTot  : DeckTot = 416 : ' keep track of number of cards in deck
    dim TheDeck(DeckTot)         : ' allow for up to 8 decks
    dim BackStyle                : ' value for back of card
    dim InitDeck, CardShuff
    dim hdc%,w%,h%,ret%

    button 11  : top 11,20 : left 11,050 : width 11,120 : font_bold 11
    caption 11,"Shuffle and Deal" : on_click 11,clic
    button 12  : top 12,20 : left 12,200 : width 12,120 : font_bold 12
    caption 12,"No Shuffle and Deal" : on_click 12,clic
    button 13  : top 13,20 : left 13,350 : width 13,120 : font_bold 13
    caption 13,"Show Card" : on_click 13,clic
    button 14  : top 14,20 : left 14,350 : width 14,120 : font_bold 14
    caption 14,"Invert Card" : on_click 14,clic  : hide 14
    button 15  : top 15,20 : left 15,350 : width 15,120 : font_bold 15
    caption 15,"Flip Card" : on_click 15,clic  : hide 15
    
    button 20 : top 20,350 : left 20,220 : font_bold 20 : caption 20,"Quitter"
    on_click 20,clic
    dll_on "cards.dll"
    caption 0,"Une simple demonstration de cards.dll"

END_SUB
rem ============================================================================
Clic:
   select number_click
         case 11 : cmdShuffled_Click()
         case 12 : cmdNoShuff_Click()
         case 13 : cmdShowFlipInvert_Click(13)
         case 14 : cmdShowFlipInvert_Click(14)
         case 15 : cmdShowFlipInvert_Click(15)
         case 20 : Quitter()
   end_select
return
rem ============================================================================
SUB cmdShuffled_Click()
    Dim_local i, offset
' initialize, shuffle
     InitDeck() : TheDeck(DeckTot) = InitDeck
    CardShuff(DeckTot, 3)
    TheDeck(DeckTot) =  CardShuff
' deal
    HDC% = handle_canvas(0)
    ret% = dll_call2("cdtInit",adr(w%),adr(h%)) : ' Initialize cards.dll
    For i = 1 To 8
        ret% = dll_call6("cdtDraw",hdc%, 50, (100 + offset), TheDeck(i),0,0)
        offset = offset + 15
    Next i

END_SUB
rem ============================================================================
SUB cmdNoShuff_Click()
    Dim_local i, offset
' initialize, don't shuffle
     InitDeck() : TheDeck(DeckTot) = InitDeck
' deal
    HDC% = handle_canvas(0)
    ret% = dll_call2("cdtInit",adr(w%),adr(h%)) : ' Initialize cards.dll
    For i = 1 To 8
        ret% = dll_call6("cdtDraw",hdc%, 220, (100 + offset), TheDeck(i),0,0)
        offset = offset + 15
    Next i

END_SUB
rem ============================================================================
SUB InitDeck()
    Dim_local i,j
    For i = 1 To DeckTot : TheDeck(i) = i - 1 : Next i
    For i = 1 To DeckTot
        For j = 1 To 8
            If TheDeck(i) > 51 then TheDeck(i) = TheDeck(i) - 52
        Next j
    Next i
    InitDeck = TheDeck(DeckTot)
END_SUB
rem ============================================================================
SUB CardShuff(intNumCardsDeck, intTimesToShuffle)
    Dim_local i, j, k, intHolder
' shuffle cards (intTimesToShuffle) times by picking a two random cards and
' having them trade places in the deck.
' loop it through each card in the deck.
    For k = 1 To intTimesToShuffle
        For i = 1 To intNumCardsDeck
            j = Int(Rnd(intNumCardsDeck) + 1)
            If (i = j) And (j = intNumCardsDeck)
                j = j - 1
            Else
               If (i = j) Then j = j + 1
            End_If
            intHolder = TheDeck(i) : TheDeck(i) = TheDeck(j) : TheDeck(j) = intHolder
        Next i
    Next k
    CardShuff = TheDeck(DeckTot)
END_SUB
rem ============================================================================
SUB cmdShowFlipInvert_Click(bouton)
    dim_local flip
    flip = int(rnd(16)+53) : ' les valeurs possibles sont 53 à 65 et 67 et 68
    if flip = 66 then flip = 65 : ' la valeur 66 n'est pas définie
    HDC% = handle_canvas(0)
    select bouton
         case 13 : ' how to show the card
              ret% = dll_call2("cdtInit",adr(w%),adr(h%)) : ' Initialize cards.dll
              ret% = dll_call6("cdtDraw",hdc%,380,100,3,0,0) : hide 13 : show 14
         case 14 : ' how to invert the card
              ret% = dll_call2("cdtInit",adr(w%),adr(h%)) : ' Initialize cards.dll
              ret% = dll_call6("cdtDraw",hdc%,380,100,3,1,0) : hide 14 : show 15
         case 15 : ' how to flip the card; 53 - 65  are the values for card backs
              ret% = dll_call2("cdtInit",adr(w%),adr(h%)) : ' Initialiser cards.dll
              ret% = dll_call6("cdtDraw",hdc%,380,100,flip,1,0) : hide 15 : show 13
    end_select
END_SUB
rem ============================================================================
SUB Quitter()
    ret% = dll_call0("cdtTerm") : ' Libèrer les ressources allouées
    dll_off                     : ' Libèrer la m'moire
    terminate
END_SUB
rem ============================================================================

Résultat:
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Parpaiun

Parpaiun


Nombre de messages : 192
Age : 84
Localisation : HERAULT
Date d'inscription : 15/04/2015

Cards.dll pour afficher un jeu de 52 cartes Empty
MessageSujet: Revue du sujet   Cards.dll pour afficher un jeu de 52 cartes EmptySam 23 Avr 2016 - 10:37

Bonjour Papydall ! Grâce à ton programme, j'ai visionné l'étalage de cartes "cards.DLL". Je m'aperçois qu'elles se présentent uniquement sous un format vertical et, si je ne me trompe pas , il faut être programmeur acrobate pour les visionner sous format horizontal ! A titre de comparaison, ces cartes sont moins "spectaculaires" et moins colorées graphiquement parlant que les miennes que je t'avais proposées auparavant.

Lequel parmi les membres, toi compris, serait capable de les remplacer dans cette fameuse "cards.DLL" ? Pas moi en tout cas, désolé. pale
Revenir en haut Aller en bas
Parpaiun

Parpaiun


Nombre de messages : 192
Age : 84
Localisation : HERAULT
Date d'inscription : 15/04/2015

Cards.dll pour afficher un jeu de 52 cartes Empty
MessageSujet: Revue du sujet   Cards.dll pour afficher un jeu de 52 cartes EmptySam 23 Avr 2016 - 11:37

Voici un exemple de disposition des cartes sur une table de jeu pour n'importe quelle partie à deux, trois ou quatre joueurs.

La ligne de cartes visibles de face au bas de la table est réservée à l'opérateur, vous même. Ces cartes peuvent être prélevées manuellement et effacées automatiquement par un artifice de programmation.

Les autres cartes vues de dos sont celles des joueurs A, B et C simulés par l'ordinateur. Pour ces joueurs, toute logique de prélèvement automatique doit obéir aux règles du jeu.

A titre d'exemple, les 4 * 13 cartes au centre de la table sont étalées comme pour une réussite.

Toute la table vous est ainsi montrée avec suffisamment de place pour les autres piles de cartes , titres et noms de joueurs.  

Cards.dll pour afficher un jeu de 52 cartes 2016-010

Le jeu de cartes est disponible dans mon WEBDAV sous "Jeux/ACartes.zip"

Tout message de votre part est le bienvenu !    lol!     lol!     lol!     lol!     lol!
Revenir en haut Aller en bas
Contenu sponsorisé





Cards.dll pour afficher un jeu de 52 cartes Empty
MessageSujet: Re: Cards.dll pour afficher un jeu de 52 cartes   Cards.dll pour afficher un jeu de 52 cartes Empty

Revenir en haut Aller en bas
 
Cards.dll pour afficher un jeu de 52 cartes
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Pour ceux qui font un jeu, utilisant des cartes
» Utilisation de HVIEWER pour afficher des images
» Pour les débutants ;) Afficher un panneau avec deux....
» Script pour afficher la configuration totale de votre ordi
» Cartes de voeux, menus, etc.

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: