Game Maker forum
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Réassort du coffret Pokémon 151 Électhor-ex : où l’acheter ?
Voir le deal

recherche un algorithme....

5 participants

Aller en bas

Normal recherche un algorithme....

Message par lichien Dim 8 Juin 2014 - 5:37

voila...pas facile a expliquer, mais je vais essayer.
je voudrai tester la continuité d'une cloture....par exemple quand on a un carré, on a 4 clotures (en perimetre), quand on a 2 carrés on peut avoir 2 fois 4 clotures (avec une commune)ce qui fait 2 champs  ou un champs qui englobe les  2 carrés ce qui fait  6 clotures, a 3 carrés eh bien on a 6 posssibilités de clotures, etc... et je butte  sur le fait de tester si les clotures se touchent pour fermer un champs...Voila , je ne sais pas si j'ai ete clair, mais si qq'un est interressé pour m'aider sur ce sujet je peux joindre un dessin. merci
lichien
lichien
Mini créator
Mini créator

Messages : 14

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par Omonoto Dim 8 Juin 2014 - 11:46

Salut,
Je pense que tu dois plutôt poster dans la rubrique aide du forum. Wink
Omonoto
Omonoto
Rédacteur
Rédacteur

Messages : 936
Pourcentage d'avancement : 10%

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par lichien Dim 8 Juin 2014 - 12:13

ah! desolé...
lichien
lichien
Mini créator
Mini créator

Messages : 14

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par Isaki Dim 8 Juin 2014 - 17:49

Explique avec des images stp, je n'ai strictement rien compris... à part que ça parle de champs xD
Isaki
Isaki
Help Maker
Help Maker

Messages : 1697
Pourcentage d'avancement : 2%

http://sakagames.shost.ca/index.php?page=index

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par lichien Dim 8 Juin 2014 - 19:13

recherche un algorithme.... +zUxTr7mFiQAAAAABJRU5ErkJggg==
lichien
lichien
Mini créator
Mini créator

Messages : 14

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par lichien Dim 8 Juin 2014 - 19:21

voila le dessin...on a des champs.. 12  (4x3). je pose des barrieres pour cloturer des champs de differentes surfaces. comment faire pour savoir si un champs est cloturé, car on peut avoir environ 80 combinaisons. je pense qu'il faut utiliser l'algorithme de jarvis sur les enveloppes convexes, mais je ne sais pas comment le mettre en oeuvre... No  No  No  study  Basketball . faut partir d'un point et puis.....voila, je bloque
lichien
lichien
Mini créator
Mini créator

Messages : 14

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par chopsuey Lun 9 Juin 2014 - 13:30

Salut je vais essayer de te faire ça, j'ai déjà l'idée de la logique dans ma tête j'ai plus qu'a écrire Wink
chopsuey
chopsuey
Créateur amateur
Créateur amateur

Messages : 111

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par chopsuey Lun 9 Juin 2014 - 15:00

C'est bon j'ai pu faire un truc.
C'est un peut compliqué par contre donc je te passe le code mais je pense que tu va avoir besoin d'un exemple:

aperçut de ce que algo peut faire:
recherche un algorithme.... 1402326228-untitled 

dans une alarme=1 après avoir cliquer pour placer une clôture:


Code:
with obj_champ{etat=0}
x=0
y=0
n_champ=0

for (i=0;i<nombre_champs_y;i+=1)
{
sw=sprite_get_width(spr_champ)
sh=sprite_get_height(spr_champ)
x=0
    for (ii=0;ii<nombre_champs_x;ii+=1)
    {
    id_test=instance_position(x,y,obj_champ)
    list_id=ds_list_create()
    ds_list_add(list_id,id_test)
    faille=0
        if id_test.etat==0
        {
        for (iii=0;iii<ds_list_size(list_id);iii+=1)    
            {  
           id_test_actu=ds_list_find_value(list_id,iii)
            X=id_test_actu.x
            Y=id_test_actu.y
                if position_meeting(X-sw,Y,obj_champ)
                {
                    if ! position_meeting(X-sw/2,Y,obj_cloture)
                    {
                    test_exist=0
                        for(I=0;I<ds_list_size(list_id);I+=1)
                        {
                            if ds_list_find_value(list_id,I)!= instance_position(X-sw,Y,obj_champ)
                            {
                            test_exist+=1
                            }
                            else{break}
                            if test_exist==ds_list_size(list_id)
                            {
                            ds_list_add(list_id,instance_position(X-sw,Y,obj_champ))
                            }
                        }
                    }
                }
                else
                {
                    if ! position_meeting(X-sw/2,Y,obj_cloture)
                    {faille=1}
                }
                if position_meeting(X+sw,Y,obj_champ)
                {
                    if ! position_meeting(X+sw/2,Y,obj_cloture)
                    {
                   test_exist=0
                        for(I=0;I<ds_list_size(list_id);I+=1)
                        {
                            if ds_list_find_value(list_id,I)!= instance_position(X+sw,Y,obj_champ)
                            {
                            test_exist+=1
                            }
                            else{break}
                            if test_exist==ds_list_size(list_id)
                            {
                            ds_list_add(list_id,instance_position(X+sw,Y,obj_champ))
                            }
                        }
                    }
                }
                else
                {
                    if ! position_meeting(X+sw/2,Y,obj_cloture)
                    {faille=1}
                }
                if position_meeting(X,Y-sh,obj_champ)
                {
                    if ! position_meeting(X,Y-sh/2,obj_cloture)
                    {
                    test_exist=0
                        for(I=0;I<ds_list_size(list_id);I+=1)
                        {
                            if ds_list_find_value(list_id,I)!= instance_position(X,Y-sh,obj_champ)
                            {
                            test_exist+=1
                            }
                            else{break}
                            if test_exist==ds_list_size(list_id)
                            {
                            ds_list_add(list_id,instance_position(X,Y-sh,obj_champ))
                            }
                        }
                    }
                }
                else
                {
                    if ! position_meeting(X,Y-sh/2,obj_cloture)
                    {faille=1}
                }
                if position_meeting(X,Y+sh,obj_champ)
                {
                    if ! position_meeting(X,Y+sh/2,obj_cloture)
                    {
                    test_exist=0
                        for(I=0;I<ds_list_size(list_id);I+=1)
                        {
                            if ds_list_find_value(list_id,I)!= instance_position(X,Y+sh,obj_champ)
                            {
                            test_exist+=1
                            }
                            else{break}
                            if test_exist==ds_list_size(list_id)
                            {
                            ds_list_add(list_id,instance_position(X,Y+sh,obj_champ))
                            }
                        }
                    }
                }
                else
                {
                    if ! position_meeting(X,Y+sh/2,obj_cloture)
                    {faille=1}
                }
            }
            if faille==0
            {
            n_champ+=1
                for (II=0;II<ds_list_size(list_id);II+=1)
                {
                id_champs_fermer=ds_list_find_value(list_id,II)
                id_champs_fermer.etat=1
                id_champs_fermer.n=n_champ
                }
  
           }    
       }
    x+=sw
    }
y+=sh
}



Voila l'exemple:
http://www.mediafire.com/download/p7g80el9876en9a/champ.gmk

Il faut que tu ais GM 8.0 pour lancer cette exemple. Si tu veux je peux le refaire sur studio.
chopsuey
chopsuey
Créateur amateur
Créateur amateur

Messages : 111

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par chopsuey Lun 9 Juin 2014 - 15:06

chopsuey a écrit:C'est bon j'ai pu faire un truc.
C'est un peut compliqué par contre donc je te passe le code mais je pense que tu va avoir besoin d'un exemple:

aperçut de ce que mon algo peut faire:
recherche un algorithme.... 1402326228-untitled 

dans une alarme=1 après avoir cliquer pour placer une clôture:


Code:
with obj_champ{etat=0}
x=0
y=0
n_champ=0

for (i=0;i<nombre_champs_y;i+=1)
{
sw=sprite_get_width(spr_champ)
sh=sprite_get_height(spr_champ)
x=0
    for (ii=0;ii<nombre_champs_x;ii+=1)
    {
    id_test=instance_position(x,y,obj_champ)
    list_id=ds_list_create()
    ds_list_add(list_id,id_test)
    faille=0
        if id_test.etat==0
        {
        for (iii=0;iii<ds_list_size(list_id);iii+=1)    
            {  
           id_test_actu=ds_list_find_value(list_id,iii)
            X=id_test_actu.x
            Y=id_test_actu.y
                if position_meeting(X-sw,Y,obj_champ)
                {
                    if ! position_meeting(X-sw/2,Y,obj_cloture)
                    {
                    test_exist=0
                        for(I=0;I<ds_list_size(list_id);I+=1)
                        {
                            if ds_list_find_value(list_id,I)!= instance_position(X-sw,Y,obj_champ)
                            {
                            test_exist+=1
                            }
                            else{break}
                            if test_exist==ds_list_size(list_id)
                            {
                            ds_list_add(list_id,instance_position(X-sw,Y,obj_champ))
                            }
                        }
                    }
                }
                else
                {
                    if ! position_meeting(X-sw/2,Y,obj_cloture)
                    {faille=1}
                }
                if position_meeting(X+sw,Y,obj_champ)
                {
                    if ! position_meeting(X+sw/2,Y,obj_cloture)
                    {
                   test_exist=0
                        for(I=0;I<ds_list_size(list_id);I+=1)
                        {
                            if ds_list_find_value(list_id,I)!= instance_position(X+sw,Y,obj_champ)
                            {
                            test_exist+=1
                            }
                            else{break}
                            if test_exist==ds_list_size(list_id)
                            {
                            ds_list_add(list_id,instance_position(X+sw,Y,obj_champ))
                            }
                        }
                    }
                }
                else
                {
                    if ! position_meeting(X+sw/2,Y,obj_cloture)
                    {faille=1}
                }
                if position_meeting(X,Y-sh,obj_champ)
                {
                    if ! position_meeting(X,Y-sh/2,obj_cloture)
                    {
                    test_exist=0
                        for(I=0;I<ds_list_size(list_id);I+=1)
                        {
                            if ds_list_find_value(list_id,I)!= instance_position(X,Y-sh,obj_champ)
                            {
                            test_exist+=1
                            }
                            else{break}
                            if test_exist==ds_list_size(list_id)
                            {
                            ds_list_add(list_id,instance_position(X,Y-sh,obj_champ))
                            }
                        }
                    }
                }
                else
                {
                    if ! position_meeting(X,Y-sh/2,obj_cloture)
                    {faille=1}
                }
                if position_meeting(X,Y+sh,obj_champ)
                {
                    if ! position_meeting(X,Y+sh/2,obj_cloture)
                    {
                    test_exist=0
                        for(I=0;I<ds_list_size(list_id);I+=1)
                        {
                            if ds_list_find_value(list_id,I)!= instance_position(X,Y+sh,obj_champ)
                            {
                            test_exist+=1
                            }
                            else{break}
                            if test_exist==ds_list_size(list_id)
                            {
                            ds_list_add(list_id,instance_position(X,Y+sh,obj_champ))
                            }
                        }
                    }
                }
                else
                {
                    if ! position_meeting(X,Y+sh/2,obj_cloture)
                    {faille=1}
                }
            }
            if faille==0
            {
            n_champ+=1
                for (II=0;II<ds_list_size(list_id);II+=1)
                {
                id_champs_fermer=ds_list_find_value(list_id,II)
                id_champs_fermer.etat=1
                id_champs_fermer.n=n_champ
                }
  
           }    
       }
    x+=sw
    }
y+=sh
}



Voila l'exemple:
http://www.mediafire.com/download/p7g80el9876en9a/champ.gmk

Il faut que tu ais GM 8.0 pour lancer cette exemple. Si tu veux je peux le refaire sur studio.
chopsuey
chopsuey
Créateur amateur
Créateur amateur

Messages : 111

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par lichien Mar 10 Juin 2014 - 5:11

merci c'est tres sympa de ta part. je vais l'essayer dés que possible. oui j'ai studio mais pas gm8. je vais bien le trouver quelque part.
pas mal du tout..je vais peut etre arrivé a faire quelque chose avec ça. 
Si tu veux voir le jeu realisé a 70% donne moi ton mail.


Dernière édition par lichien le Mar 10 Juin 2014 - 11:24, édité 1 fois
lichien
lichien
Mini créator
Mini créator

Messages : 14

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par lichien Mar 10 Juin 2014 - 5:47

pas mal du tout..je vais peut etre arrivé a faire quelque chose avec ça. 
Si tu veux voir le jeu realisé a 70% donne moi ton mail.
lichien
lichien
Mini créator
Mini créator

Messages : 14

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par lichien Mar 10 Juin 2014 - 5:51

pour jouer tu aura besoin par contre de connaitre le principe de ce jeu tres strategique
tu trouveras une video du principe du jeu et une video  d'une partie.
http://www.trictrac.net/jeu-de-societe/agricola-terres-d-elevage-1/infos
lichien
lichien
Mini créator
Mini créator

Messages : 14

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par SuperOuf Mar 10 Juin 2014 - 11:21

Merci de ne pas poster plusieurs messages à la suite ! Veuillez utiliser la fonction "Editer".
SuperOuf
SuperOuf
Administrateur général et DRH
Administrateur général et DRH

Messages : 3924

http://www.deuxmetrescubes.fr

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par lichien Mar 10 Juin 2014 - 11:23

désolé
mais comment les supprimer les messages?
lichien
lichien
Mini créator
Mini créator

Messages : 14

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par chopsuey Mar 10 Juin 2014 - 12:22

david07wol@hotmail.fr
chopsuey
chopsuey
Créateur amateur
Créateur amateur

Messages : 111

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par Omonoto Ven 13 Juin 2014 - 16:45

lichien a écrit:mais comment les supprimer les messages?

Dans edit tu as une fonction supprimer.
Omonoto
Omonoto
Rédacteur
Rédacteur

Messages : 936
Pourcentage d'avancement : 10%

Revenir en haut Aller en bas

Normal Re: recherche un algorithme....

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum