|
Dernière réponse | |
---|---|
Sujet : problème en camL | |
sire de Botcor | tiens... un brestois ! |
Aperçu |
---|
Vue Rapide de la discussion |
---|
sire de Botcor | tiens... un brestois ! |
xav14 |
|
lordankou | et bon voilà ça marche mais bon ça c vraiment que le début. il faut que j'inclus la 3e dimension et ensuite rajouter peut être une notion de temps
|
LeGreg |
|
farib | ....
|
lordankou | il sert à quoi l'algo de huffman ? |
farib | allez pour le plaisir : algo de huffman
|
lordankou | oui mais je trouve que avec un fort typage on a un algo bien propre et pour le récursif je sais pas ce que ça donne en c++
je sais que c super pratique en camL le récursif (j'adore :love: ). |
farib | ben disons que les algos sous caml et c++ c pas tellemtn al meême maniere caml eet archi type et récursif |
lordankou | je voulais faire le jeu de la vie en l'adaptant un peu pour le mettre en 3d et avec un système d'évolution. je vais faire ça en c++ et en opengl mais bon préfère trouver l'algo d'abord en caml et ensuite traduire tout ça en c++ avec de l'opengl. en ce qui concerne le vect_assign le plus con c que j'avais bien utilisé le <- au lieu de = une dizaine de ligne au dessus dans une autre fonctoin :sarcastic: ah là là que d'erreur. bon là j'y suis presque j'ai juste une erreur : #Uncaught exception: Invalid_argument "vect_item" mais bon ça je pense savoir d'ou ça vient. étant donné que je fais tout le tour de la matrice et que je dois regarder l'état de tous les cellules adjacentes j'ai du mettre un + au lieu d'un moins quelques parts. bref verrait ça demain car là fatigué !!! je mes tjrs le code de ce que j'ai fais pour l'instant (si ça peut intéresser quelqu'un :lol: :lol: ) :
|
farib | ben moi ca faisait un an que j'en avais pas fait, et j'ai retrouvé la syntaxe rien que pour toi ! en gros g bossé a ta place !
(dans quel cadre tu t'y es remis ?) |
lordankou | bah euh disons que ça fait plutôt un an que j'en ai pas fait et bon je me suis remis à ça y'a deux jours donc faut que je me réhabitue avec la syntaxe ! :ange: |
farib | j'ai corrigé l'algo d'avant (morceaux en gras) (y'a un bug ave le forum, verifie caractere par caractere)
|
farib | ca fait pas longtemps que tu fais tu caml
pour assigner a un vecteur on fait comme ca vecteur.(indice)<-valeur no comment |
lordankou | je comprends pas justement pourquoi
|
farib | (au passage cmlc c génial pr le récursif... g fait un algo de huffman récursif, c t trop court en terme de code... en 5-6lignes tu fais des algos trop piussants)
alors ton pb il est simple
|
lordankou | bon j'ai simplifié :
|
farib | malheursement g abandonné la prépa et caml avec masi
ce serati pas une mauvaise portée de variable avec let matrice_suivante = make_matrix (vect_length matrice) (vect_length matrice) 1 in ^^ |
lordankou | bon voila le code :
let comparaison matrice matrice_suivante nombre i j = match nombre with |0 -> if (matrice.(i).(j)=1) then matrice_suivante.(i).(j)=0 else matrice_suivante.(i).(j)=1 |1 -> if (matrice.(i).(j)=1) then matrice_suivante.(i).(j)=0 else matrice_suivante.(i).(j)=1 |2 -> if (matrice.(i).(j)=1) then matrice_suivante.(i).(j)=1 else matrice_suivante.(i).(j)=1 |3 -> if (matrice.(i).(j)=0) then matrice_suivante.(i).(j)=1 else matrice_suivante.(i).(j)=0 |_ -> if (matrice.(i).(j)=0) then matrice_suivante.(i).(j)=1 else matrice_suivante.(i).(j)=0;; let successeur_matrice matrice = let matrice_suivante = make_matrix (vect_length matrice) (vect_length matrice) 1 in comparaison matrice matrice_suivante (matrice.(1).(0)+matrice.(1).(1)+matrice.(0).(1)) 0 0 ; comparaison matrice matrice_suivante (matrice.(1).(0)+matrice.(1).(1)+matrice.(0).(1)) (vect_length matrice-1) 0 ; comparaison matrice matrice_suivante (matrice.(1).(0)+matrice.(1).(1)+matrice.(0).(1)) 0 (vect_length matrice-1) ; comparaison matrice matrice_suivante (matrice.(1).(0)+matrice.(1).(1)+matrice.(0).(1)) (vect_length matrice-1) (vect_length matrice-1) ; for compteur = 1 to (vect_length matrice-2) do for compteur2 = 1 to (vect_length matrice.(compteur)-2) do match (matrice.(compteur-1).(compteur2-1)+matrice.(compteur-1).(compteur2)+matrice.(compteur-1).(compteur2+1)+matrice.(compteur).(compteur2-1)+matrice.(compteur).(compteur2+1)+matrice.(compteur+1).(compteur2-1)+matrice.(compteur+1).(compteur2)+matrice.(compteur+1).(compteur2+1)) with |2 -> if (matrice.(compteur).(compteur2)=1) then matrice_suivante.(compteur).(compteur2)=1 else matrice_suivante.(compteur).(compteur2)=1 |3 -> if (matrice.(compteur).(compteur2)=0) then matrice_suivante.(compteur).(compteur2)=1 else matrice_suivante.(compteur).(compteur2)=1 |_ -> if (matrice.(compteur).(compteur2)=1) then matrice_suivante.(compteur).(compteur2)=0 else matrice_suivante.(compteur).(compteur2)=0 done ; done ; matrice = matrice_suivante ;; et j'obtiens comme erreur : Toplevel input: > comparaison matrice matrice_suivante (matrice.(1).(0)+matrice.(1).(1)+matrice.(0).(1)) 0 0 ; > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Warning: this expression has type bool, but is used with type unit. et franchement là je comprends pas. c pas de type bool pourtant. |