Forum Liberty Basic France

Jeux » [Standby] JustDames ver 0.120510 Jeu de Dames en cours de réalisation...
Le 20/04/2012 à 12h34

Libertynaute Actif

Groupe: Membre

Inscrit le: 17/12/2010
Messages: 124
Salut à tous, :lu

En fouinant sur mon ancien PC, je suis tombé sur un vieux projet de jeu de Dames que j'avais entamé en 2009 !
A l'époque j'avais abandonné à cause d'un bug d'affichage que je ne pouvais résoudre.

Aujourd'hui je pense avoir trouvé une solution à mon problème !

En attendant la maj... et histoire d'avoir une excuse pour repasser par ici ;) ,
je repost le code sur le nouveau forum :)

A bientôt.


[EDIT]
Télécharger les fichiers (derniére version) :
zip
[/EDIT]




Edité par joan74 Le 12/11/2013 à 10h57
____________________
"L'urgent c'est fait ! L'impossible est en cours... pour les miracles, merci de prévoir un délai supplémentaire !"

   
Le 20/04/2012 à 12h55

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Salut Joan,

il y aurait moyen que tu nous donnes aussi les fichiers BMP qui vont avec ?

En tout cas c'est un ambitieux projet ! SUPER.

@+
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 20/04/2012 à 13h21

Libertynaute Actif

Groupe: Membre

Inscrit le: 17/12/2010
Messages: 124
Y'a t-il moyen d'uploader des images sur le forum ?
ou un zip ?




Edité par joan74 Le 20/04/2012 à 13h59
____________________
"L'urgent c'est fait ! L'impossible est en cours... pour les miracles, merci de prévoir un délai supplémentaire !"

   
Le 20/04/2012 à 13h38

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Oui oui, tu vas dans "Mon profil" tout en haut, puis "Gestion de fichiers".
Plutôt des zip, c'est mieux...
Mais je ne sais pas si c'est ouvert par défaut ou s'il faut demander à un modo ?

En tout cas c'est limité à 4Go.

@+



Edité par cassiope01 Le 20/04/2012 à 13h39
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 20/04/2012 à 14h07

Libertynaute Actif

Groupe: Membre

Inscrit le: 17/12/2010
Messages: 124
Cool :top Merci Cassiope1
Super cette nouvelle fonctionnalité :+1 (elle n'existait pas sur l'ancien forum :( )
(Le Zip téléchargeable est dans le 1er post)

Bon, pour le code je rapelle que c'est une vielle version...

J'ai qq nouvelles idées et une meilleure vision de ce que je veux faire pour la suite.
A la prochaine maj, le code aura bcp changer je pense.
Mais c'est pas pour tout de suite... (boulot, dodo, tous sa koi :nex )

En tout cas cela m'a fait plaisir de repasser par ici.

Bonne continuation à tous :lu



Edité par joan74 Le 20/04/2012 à 14h09
____________________
"L'urgent c'est fait ! L'impossible est en cours... pour les miracles, merci de prévoir un délai supplémentaire !"

   
Le 20/04/2012 à 16h19

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Et tu aurais une idée pour écrire l'IA ?
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 20/04/2012 à 17h27

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2457
He bien, voila qui me conforte dans l'idée qu'il n'y a pas de meilleur tutoriel que des programmes archi commentés.
Ce: "JustDames", c'est une mine...une mine..! :miam
____________________
Roro

   
Le 23/04/2012 à 12h58

Libertynaute Actif

Groupe: Membre

Inscrit le: 17/12/2010
Messages: 124
cassiope01:
Et tu aurais une idée pour écrire l'IA ?


Oui. Plusieurs même ! (dont une, un peu artisanale!)
Cela fait un moment déjà que j'ai récupéré sur le net les différents algo MinMax et autres. La transposition en JB me semble tout à fait faisable... enfin je n'en suis pas encore là !

Déjà, si j'arrive à faire un petit jeu qui tourne, même sans ia, ce sera déjà trés bien :)

Ce qui m'inquiète en revanche, c'est la gestion des Dames, et des "meilleurs coups" :@

En passant quelqu'un aurait de bô sprites ainsi qu'un bôoo damier à me passer ?

PS j'ai mis dans le 1er post une version "plus" qui corrige les petits bugs graphiques de la version précédente.

@+



Edité par joan74 Le 23/04/2012 à 13h53
____________________
"L'urgent c'est fait ! L'impossible est en cours... pour les miracles, merci de prévoir un délai supplémentaire !"

   
Le 23/04/2012 à 18h17

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
joan74:
En passant quelqu'un aurait de bô sprites ainsi qu'un bôoo damier à me passer ?


Les sprites tu devras les faire toi-même en modifiant des bmp de pions trouvés sur le net, quant au damier tu devrais pouvoir en trouver quelques tonnes sur le net aussi ! mais ce doit être plus simple de le fabriquer par programme, à l'aide de bmp texture bois par exemple...

Perso, le simili bois me semble une bonne idée :top

Faire un jeu de Dames sans IA ne me semble pas un gros pb. Je peux peut-être te faire ça... mais c'est mieux si c'est toi qui le fait bien sûr :top

L'IA me semble beaucoup beaucoup plus compliqué... :heink

@+



Edité par cassiope01 Le 23/04/2012 à 18h20
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 24/04/2012 à 09h32

Libertynaute Actif

Groupe: Membre

Inscrit le: 17/12/2010
Messages: 124
cassiope01:
Faire un jeu de Dames sans IA ne me semble pas un gros pb. Je peux peut-être te faire ça... mais c'est mieux si c'est toi qui le fait bien sûr :top @+


Tu as compris !
Le but n'est pas tant d'avoir un jeu de Dames. Sinon, il n'y aurait qu'à télécharger l'un des nombreux FREEWARE qui traine sur le net.

En revanche,
si vous avez des conseils spécifiques sur l'orientation à prendre pour ce type de jeu - histoire de ne pas foncer droit dans le mur et d'avoir à tout recommencer - je veux bien. Merci ;) :miam
____________________
"L'urgent c'est fait ! L'impossible est en cours... pour les miracles, merci de prévoir un délai supplémentaire !"

   
Le 24/04/2012 à 19h18

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
joan74:
Tu as compris !
Le but n'est pas tant d'avoir un jeu de Dames. Sinon, il n'y aurait qu'à télécharger l'un des nombreux FREEWARE qui traine sur le net.

C'est exactement mon point de vue.


joan74:
En revanche,
si vous avez des conseils spécifiques sur l'orientation à prendre pour ce type de jeu - histoire de ne pas foncer droit dans le mur et d'avoir à tout recommencer - je veux bien. Merci ;) :miam

Là, par contre, je serai bien embêté de t'indiquer telle ou telle façon de faire, tant je respecte les choix de chacun en la matière.
De plus, il est très difficile de comprendre comment quelqu'un conçoit et pense son projet au travers de son code car tant de concept ne sont explicables que par lui !
C'est vrai tant qu'on reste dans le domaine amateur, il n'en est pas de même en milieu professionnel bien sûr !
Ton code est très détaillé et organisé, mais du coup, beaucoup de choses me paraissent inutilement compliquées ;)
Par exemple : pourquoi autant de variables ?
Pourquoi leur affecter des valeurs à la main plutôt qu'avec une simple boucle ?
Pourquoi ne pas avoir choisi simplement un seul tableau de 10x10 pour tout le damier ?
Chaque 'case' de ce tableau contiendrait alors soit 0 si elle est vide, soit 9 immuable si c'est une case blanche interdite (vu qu'aux Dames on n'y va jamais si je ne me trompe pas), soit 1 pour les pions noirs, soit 2 pour les pions blancs, soit 3 pour les Dames noires, soit 4 pour les Dames blanches, etc...!

Tu vois, ces choses m'échappent mais ont certainement une explication précise pour toi ;) (peut-être ça te semble plus facile pour ce que tu envisages pour la suite, pour l'IA, ou pour un autre aspect de ton projet par exemple )

On peut gérer une grille (quelque soit sa dimension) avec assez peu de code...

Code VB :
nomainwin
 
    NbXmax = 10  'nombre de case en X
    NbYmax = 10  'nombre de case en Y  (pas utile si la grille est carré ;) )
    dc = 53  'dimension d'une case en pixels
    MapWidth = NbXmax*dc
    MapHeight = NbYmax*dc
 
    WindowWidth = MapWidth+15
    WindowHeight = MapHeight+70
    UpperLeftX = (DisplayWidth-WindowWidth) / 3
    UpperLeftY = (DisplayHeight-WindowHeight) / 2
 
    ncx = int(MapWidth/dc)  'nb of X cells
    ncy = int(MapHeight/dc) 'nb of Y cells
    dim cell(ncx,ncy)
    statictext #w.txt "",10,12,280,20
    BUTTON #w.grid, "Grid", [grid], UL, WindowWidth-60, 5, 50, 25
    graphicbox #w.map, 5, 40, MapWidth, MapHeight
    open "    TEST GRID Coord..." for window_nf as #w  'graphics_nf_nsb
    #w "trapclose [quit]"
    #w.map "down; fill black"
    #w.map "backcolor lightgray; color lightgray"
    #w.map "when mouseMove [coord]"
    #w.map "when leftButtonDown [Mark]"
 
    goto [grid]
 
    wait
 
    [coord]
        mX = int(MouseX/dc)
        mY = int(MouseY/dc)
        if mX<=ncx and mY<=ncy then
            if oldmX then
                #w.map "rule ";_R2_NOT
                #w.map "place ";oldmX*dc+1;" ";oldmY*dc+1;"; boxfilled ";oldmX*dc+dc-1;" ";oldmY*dc+dc-1
            end if
            oldmX = mX
            oldmY = mY
            #w.map "rule ";_R2_COPYPEN
            #w.map "place ";mX*dc+1;" ";mY*dc+1;"; boxfilled ";mX*dc+dc-1;" ";mY*dc+dc-1
        end if
        gosub [infos]
    wait
 
    [grid]
        grid = grid+1-2*(grid=1) '0 -> 1 -> 0 -> 1 -> 0 etc...
        gosub [DispMap]
    wait
 
    [Mark]
        #w.map "backcolor red; color red"
        #w.map "place ";mX*dc+1;" ";mY*dc+1;"; boxfilled ";mX*dc+dc-1;" ";mY*dc+dc-1
        #w.map "backcolor lightgray; color lightgray"
    wait
 
    [infos]
        #w.txt "pixels : ";MouseX;" / ";MouseY;_
        "         Cell ( ";mX;" , ";mY;" )"
    return
 
    [DispMap]
        gosub [infos]
        if grid then
            #w.map "backcolor lightgray; color lightgray"
        else
            #w.map "backcolor black; color black"
        end if
        for y=1 to ncy
            #w.map "place 0 ";y*dc;"; goto ";MapWidth;" ";y*dc
        next
        for x=1 to ncx
            #w.map "place ";x*dc;" 0; goto ";x*dc;" ";MapHeight
        next
        #w.map "backcolor lightgray; color lightgray"
        #w.map "flush; discard"
    return
 
    [quit]
        close #w
        end
    wait




Edité par cassiope01 Le 26/04/2012 à 07h36
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 07/05/2012 à 07h45

Libertynaute Actif

Groupe: Membre

Inscrit le: 17/12/2010
Messages: 124
Merci pour le code.
J'y ai jeté un oeil, et je pense avoir saisi le principe.

Une chose me perturbe cependant,
dans ton code tu n'utilises aucune images (bg+sprites), et préféres tout dessiner.

Est-ce préférable (plus simple ?) de procéder ainsi ?



Edité par joan74 Le 07/05/2012 à 07h56
____________________
"L'urgent c'est fait ! L'impossible est en cours... pour les miracles, merci de prévoir un délai supplémentaire !"

   
Le 07/05/2012 à 08h18

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Salut Joan,

Il n'y a pas grand chose à dessiner dans ce petit code, ça ne nécessite pas de bmp !!

Disons que si c'est possible, c'est plus simple pour tout le monde de ne pas avoir à télécharger d'autres fichiers que le .bas :)
Mais dès que tu veux faire un truc joli (damier & pions couleur bois par exemple) tu es bien obligé de fournir les bmp !
Tant qu'on peut tout télécharger quelque part dans un fichier zip complet, y a vraiment pas de soucis à utiliser des bmp.
Tu peux stocker quelques fichiers sur ce site dans "Mon profil" en haut, puis "Gestion des fichiers".
C'est limité à 4Mo au total.

Sinon où en es-tu dans ton code ?

@+



Edité par cassiope01 Le 07/05/2012 à 12h22
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 14/05/2012 à 07h52

Libertynaute Actif

Groupe: Membre

Inscrit le: 17/12/2010
Messages: 124
Citation:
Sinon où en es-tu dans ton code ?


Slt,

Pas trés loin en fait !
Comme j'ai recommencé (pas à zéro mais presque),
j'en suis encore au déplacement des pions du joueurs...

Sinon,
mon code actuel n'est pas fonctionnel. Je poste ma version dès que j'ai corrigé les divers bug ;)
@+

____________________
"L'urgent c'est fait ! L'impossible est en cours... pour les miracles, merci de prévoir un délai supplémentaire !"

   
Le 15/05/2012 à 07h13

Libertynaute Actif

Groupe: Membre

Inscrit le: 17/12/2010
Messages: 124
:)

Comme, je ne sais pas dans combien de temps je pourrai avancer mon code...

je vous propose en attendant, ce que j'ai de plus fonctionnel (téléchargemenrt dans le 1er post)...


Dans cette version, on peut :
- Démarer une nouvelle partie.
- Voir les pièces jouable.
- Voir les déplacements possibles.
- Déplacer ses pieces une à une (en marche avant uniquement).
- Voir les règles du jeu.
- Voir le fichier "A propos de...".
- Changer la couleur de ses pieces.

@++

Ne perdez pas de vue qu'il ne s'agit que d'un "prototype",
Le code actuel n'est pas définitif ;)



Edité par joan74 Le 15/05/2012 à 07h33
____________________
"L'urgent c'est fait ! L'impossible est en cours... pour les miracles, merci de prévoir un délai supplémentaire !"

   
Le 15/05/2012 à 13h41

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2457
Salut Joan, Pourquoi les pions "blanc" ne sont pas blancs, et les "noirs", pas noirs ? :heink
Tu désigne le pion en jeu avec un cadre particulier. Tu peux trouver dans: "Jeu Roland", Qui se trouve à la page 9 de: "quelques propos", (rubrique: "Discussion") post du: 28/03/12--11h48, une procédure de clignotement "made by Cassiope", courte et efficace, comme le sont les meilleures. Qui t'affranchirait de quelques bmp, et de leur gestion. ( l'extraction de ce rouage de cette horlogerie ne manquera pas de te faire progresser dans tes connaissances) ;) ....à+...
____________________
Roro

   
Le 15/05/2012 à 18h04

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
Salut Joan,

ton programme est très agréable à lire : bien structuré et très bien indenté et documenté.
Bravo.

Quelques petits trucs et astuces par ci par là :

il te faut savoir que la constante DefaultDir$ en JB contient le chemin complet du répertoire dans lequel tu lances le fichier programme .bas .

Donc 2 petites choses :

PathDamier$ = DefaultDir$ + "\data\Damier.bmp"

devrait plutôt s'écrire :

PathDamier$ = "data\Damier.bmp" ( sans "\" au début...! )

puis juste ces quelques lignes :

Code VB :
    dim info$(10,10)
    chaine$ = "Damier.bmp PionBlanc.bmp PionNoir.bmp DameBlanche.bmp DameNoire.bmp CadreVert.bmp CadreOrange.bmp CadreRouge.bmp Regles.txt Config.ini"
    NombreDeFichiers = 10
    for NombreDeFichiers = 1 to 10
        Fichier$ = "data\"+word$(chaine$,NombreDeFichiers)
        files DefaultDir$, Fichier$, info$(
        if val(info$(0, 0)) = 0 then
            MessageErreur$ = "ERREUR !";chr$(13)
            MessageErreur$ = MessageErreur$;"Le fichier '";cheminDuFichier$;"' n'a pu être trouvé.";chr$(13)
            MessageErreur$ = MessageErreur$;"Le programme va se terminer."
            notice MessageErreur$
            end
        end if
    next
 

remplaçent efficacement la cascade de 10 "if" + les 3 functions Exists( ) , Fichier$( ) , Path$( ) qui sont de belle functions, mais qui sont certainement issues d'un code visant à faire une sorte d'explorateur de fichiers... à part si tu as besoin de toutes ces informations concernant les fichiers mais je ne l'ai pas vu dans ton code !


REDIM permet de réinitialiser une variable tableau.

Donc la SUB InitTabCoordDamierToNumCase pourrait s'écrire seulement avec ces quelques lignes pour faire exactement la même chose:
Code VB :
sub InitTabCoordDamierToNumCase
'Correspondance entre le damier et les N° de cases
'Convertie les coordonnées (x,y) du damier en 'NumCase' (compris entre 1 à 50)

    redim TabCoordDamierToNumCase(10,10)
    no = 1
    for y = 1 to 10
        for x = 1 to 10
            if ((x mod 2) = 0 and (y mod 2) > 0) or _
               ((x mod 2) > 0 and (y mod 2) = 0) then TabCoordDamierToNumCase(x,y) = no  : no = no + 1
        next
    next
    end sub
 

ça m'impressionne toujours de voir toutes ces lignes patiemment écrite à la main, alors que très souvent une petite boucle bien pensée peut faire tout le travail ;)


De même, les 2 function NumCaseToDamierX(Num) et NumCaseToDamierY(NumCase) doivent pouvoir facilement être remplacées par de simples calculs d'une ou 2 lignes...;)


Un petit truc à propos des SPRITES :
Tu crées 50 SPRITES cadres Vert, Orange et Rouge alors qu'à l'usage, seul 2 d'entre eux peuvent être visibles à la fois !

Un SPRITE et aussi fait pour être déplacé (SPRITEXY) ce que tu fais très bien pour les pions, donc 1 seul SPRITES par couleur suffisent pour faire ce que tu fais ;)
Cela t'économiserait énormément de commandes de gestion de tout ces SPRITES et donc pratiquement toute la sub MajSprites ... ;)

Puisque tu as crées 50 Sprites pour les pions pourquoi tu les mets sur OFF après les avoir déplacés ???
Autant les laisser visibles et sur OFF ou détruit seulement quand ils sont capturés et doivent sortir du plateau !!!

Pour le clignotement il te suffirait de mettre le SPRITE du cadre sur OFF puis ON puis OFF puis ON etc à une fréquence que tu décides, juste tant que le joueur n'a pas cliqué quelque part. ;)


Je suis assez d'accords avec Roland au sujet des pions pas assez blanc ou noir ;)
La distinction entre un pion et une Dames est vraiment très discrête ;)
Et aussi je me demande pourquoi faire un jeu de Dames aussi petit ?

En espérant t'avoir aider le mieux possible ;);)

Courage Joan.

@+



Edité par cassiope01 Le 16/05/2012 à 07h18
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Le 16/05/2012 à 08h12

Libertynaute Actif

Groupe: Membre

Inscrit le: 17/12/2010
Messages: 124
cassiope01:
ton programme est très agréable à lire : bien structuré et très bien indenté et documenté.

Merci.

Comme je l'ai précisé précédement, il ne s'agit que d'un "prototype". Le jeu est loin d'être terminé !

Comme je ne suis pas "informaticien" de base et que je fais souvent des "breaks" (parfois de plusieurs semaines !), il faut que je puisse m'y retrouver dans mon propre code... D'où le code archi-commenté, et le code pas spécialement "optimiser". Je préfére une meilleure comprenhension, qu'un code condensé que j'aurais du mal à reprendre...

cassiope01:
il te faut savoir que la constante DefaultDir$ en JB contient le chemin complet du répertoire dans lequel tu lances le fichier programme .bas .
PathDamier$ = DefaultDir$ + "\data\Damier.bmp"
devrait plutôt s'écrire :
PathDamier$ = "data\Damier.bmp" ( sans "\" au début...! )


Là, J'ai du mal à comprendre ! 'DefaultDir$' ne servirait donc à rien ?


cassiope01:

Tu crées 50 SPRITES cadres Vert, Orange et Rouge alors qu'à l'usage, seul 2 d'entre eux peuvent être visibles à la fois !
[...]
Pour le clignotement il te suffirait de mettre le SPRITE du cadre sur OFF puis ON puis OFF puis ON etc à une fréquence que tu décides, juste tant que le joueur n'a pas cliqué quelque part. ;)


Je sais ! c'est pas tres académique tous sa ! ::siffle ... (part se cacher en courant. ! :nex )


cassiope01:

Je suis assez d'accords avec Roland au sujet des pions pas assez blanc ou noir ;)
La distinction entre un pion et une Dames est vraiment très discrête ;)
Et aussi je me demande pourquoi faire un jeu de Dames aussi petit ?


Ces sprites sont temporaires ! J'espere en trouver de meilleures d'ici la fin du programme.


Merci pour vos commentaires et votre soutient.
@+



Edité par joan74 Le 16/05/2012 à 08h22
____________________
"L'urgent c'est fait ! L'impossible est en cours... pour les miracles, merci de prévoir un délai supplémentaire !"

   
Le 16/05/2012 à 10h13

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2457
Ha..ha..! Je ne suis pas seul à ne pas trop aimer la condensation. Tu dois t'y faire Cassiope, les néophites craignent la condensation ! (qui a cependant de sacrés avantages)
Ce que je ne comprends pas: pourquoi cette procédure de recherche de fichiers, puisque les bmp's sont dans le dossier du prog, et que "loadbmp" fait le boulot ?

Concernant l'IA: Il est bien évident que l'intelligence artificielle n'est jamais que l'humaine transposée à la machine, et que donc, tu ne pourra integrer à ton jeu que ta propre façon de jouer (fourchettes...ext..) à défaut d'y intégrer des algorithmes fort complexes, qui je pense, ne sont pas de notre niveau.

Moi qui entend déjà des: "Hoo ! papi ! C'est mes pions !"...ça va pas m'aider.
____________________
Roro

   
Le 16/05/2012 à 12h51

Libertynaute Expert

Groupe: Membre

Inscrit le: 19/02/2011
Messages: 767
joan74:
Là, J'ai du mal à comprendre ! 'DefaultDir$' ne servirait donc à rien ?


Au contraire Joan !!!!
Avec tes 3 functions tu recherches le chemin complet depuis la racine de chaque fichier, alors que DefaultDir$ le contient déjà par défaut ! c'est JB lui-même qui la remplie pour toi.

Essaye le bout de code que je t'ai écrit tu verras que ça fonctionne très bien !

Regarde le bien, tu verras que DefaultDir$ est le premier paramètre de la commande Files.....

J'ai dit que DefaultDir$ contient le chemin du répertoire (donc qui contient "\" à la fin) à partir duquel tu lances le fichier programme (.bas)
Donc si tu as stocké des fichiers dans un sous-répertoire il te faut l'écrire dans ta variable Fichier$ : c'est ce que j'ai fait.

Files va donc additionner les 2 chaines DefaultDir$ + ta variable Fichier$ ce qui donnera le chemin complet du fichier en question depuis la racine.

Tu peux aussi t'écrire cette petite function que tu peux utiliser dans tous tes programmes, à partir du moment où tous les fichiers utilisés se trouvent dans le répertoire d'où le programme sera lançé (ou dans un sous répertoire) :

Code VB :
    function fileExists(filename$)
        'DIM info$(10,10) 'doit avoir été déclaré au debut du programme
        files DefaultDir$, filename$, info$()
        fileExists = val(info$(0, 0))  '<> 0 si vrai
    end function
 
qui renverra 0 si le fichier n'existe pas.


joan74:
Je préfére une meilleure comprenhension, qu'un code condensé que j'aurais du mal à reprendre...

Dans une certaine mesure je suis entièrement d'accord avec toi.
Mais préférer écrire 50 lignes d'affectation de variable tableau plutôt que 8 lignes qui font la même chose sans complications particulières, ça c'est du masochisme :D :D
Moi je suis plutôt fainéant, donc je trouve des astuces ;)

C'est comme la grande quantité de if imbriqués ou à répétition pour extraire un n° de case à partir de X,Y ou inversement !!!
Une ou 2 lignes de calcul simple ferait la même chose :top

Vivement que tu trouves de jolis SPRITES PLUS GROS ! :top


@+


PS: Roland, si tu lançes loadbmp sur un fichier qui n'existe pas tu verras ce qu'il se passe :heink :lol :lol



Edité par cassiope01 Le 18/05/2012 à 06h02
____________________
Devise Shadocks : "Mieux vaut mobiliser son intelligence pour des conneries, que mobiliser sa connerie pour des choses intelligentes"
Coluche disait : "C'est parce que la vitesse de la lumière est plus rapide que celle du son que certains peuvent paraîtrent brillants jusqu'à ce qu'ils ouvrent la bouche."

Web    
Jeux » [Standby] JustDames ver 0.120510 Jeu de Dames en cours de réalisation...  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie