Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

11 utilisateurs inconnus

 Mot :   Pseudo :  
 
 Page :  1  2  3  4  5
Page Précédente 
Auteur
 Sujet :

[OCAML] Problème basique...

 
n°11919
Blood Knig​ht
oYo
Profil : Membre
Posté le 16-03-2005 à 13:39:53  profilanswer
 

Bon, je vais passer pour un nb de la prog ce que je suis malheureusement... :/
 
Je me bas avec des déclarations de type actuellement. Voila ma question : comment utiliser un type de ce genre :  
 
#type position = int * int ;;
 
Je sais utiliser ca par contre...  
 
#type position = Pos of int * int ;;
 
Bon ca c'est pour un petit exemple. En l'occurence je suis sur mon projet d'info de second semestre qui est de faire un othello. Et on nous demande de definir un type plateau, alors que moi, mon plateau j'aimerai que ce soit une matrice. Y a t il un moyen pour que ce soit les 2 à la fois?  
 
Marchi =)
 
9e edit > J ajoute que je n'ai vraiment rien trouvé dans les diverses doc que j'ai pu avoir sous les yeux. Papier ou sur internet.


Message édité par Blood Knight le 16-03-2005 à 13:52:30
n°11939
P-Y
Profil : Vieux de la vieille
Posté le 16-03-2005 à 23:49:49  profilanswer
 

ben rien ne t'empêche d'avoir un type plateau qui est une matrice de cases, non? :??:
desole je me rappelle plus la syntaxe exact de CAML (ca doit faire un an que j'y ai pas touché :lol:)

n°11940
Blood Knig​ht
oYo
Profil : Membre
Posté le 17-03-2005 à 00:02:51  profilanswer
 

Mmm ok, mais j'y arrive plus ou moins mais c'est pas tres clair pour moi, c'est aussi pour ca que je demande ce petits details c'est pour essayer d avancer :p

n°11962
thor29
Profil : Membre
Posté le 18-03-2005 à 17:44:42  profilanswer
 

Tu es démasqué Blood Knight...
Tu dois etre à Paris 7 pour faire un tel projet

n°11965
Blood Knig​ht
oYo
Profil : Membre
Posté le 18-03-2005 à 20:22:18  profilanswer
 

Damned je suis grillé :D
 
Tiens ca me fait penser que j'ai eu des précisions, et que l'on doit faire le projet avec des listes de listes pour faire le plateau de jeu...
Qu'est ce qu'ils peuvent etre marrant a Paris 7 ... Jvous jure j'ai appris ca vers 5h j'en ris jaune encore...


Message édité par Blood Knight le 18-03-2005 à 20:23:23
n°11966
thor29
Profil : Membre
Posté le 18-03-2005 à 20:46:34  profilanswer
 

Listes de listes?? Waou moi je dirais
# type tableau = case list;;
type tableau = case list
Cela me parait plus simple...

n°11971
Blood Knig​ht
oYo
Profil : Membre
Posté le 19-03-2005 à 23:02:43  profilanswer
 

Donc tu ferais 64 cases donc ? :/

n°11973
thor29
Profil : Membre
Posté le 20-03-2005 à 00:51:17  profilanswer
 

Ouais mais j'avoue c'est chelou...
Un ami m'a dit qu'il fallait faire une liste de listes
Faut que je vois avec le tutorat

n°11974
Blood Knig​ht
oYo
Profil : Membre
Posté le 20-03-2005 à 07:22:57  profilanswer
 

Tu y es aussi ok :D
En fait oui, la responsable de l'unité, Mme jesaispuquoi a dit qu'il fallait faire des listes de listes... Et crois moi la partie b: c'est pas la joie avec les listes quand il faut tester les lignes... J'avais fait la fonction avec la matrice ca passait totu seul, la il va falloir faire 100 lignes de code pour faire cette fonction tellement ca complique avec les listes... :/

n°11976
thor29
Profil : Membre
Posté le 20-03-2005 à 12:15:40  profilanswer
 

Jsé pas pkoi je le sens pas ce projet.
Celui de l'année dernière était tout gentil et en plus on avait l'aide en TP...

n°12002
thor29
Profil : Membre
Posté le 22-03-2005 à 19:38:17  profilanswer
 

Bon j'ai un peu taffé le projet pour le debut ca donnerait ca:
type joueur = Blanc | Noir;;
type joueur = Blanc | Noir
type case = Vide | Occupe of joueur;;
type case = Vide | Occupe of joueur
type position = Position of int*int;;
type position = Position of int * int
type plateau = position*case list list;;
type plateau = position * case list list
 
let rec valeur_case_aux liste (Position(x,y)) =
 match liste with
 (Position(x1,y1),c)::l2 when x1=x && y1=y ->(c,true)
 | (_,_)::l2-> valeur_case_aux l2 (Position(x,y))
 | [] -> (Vide,false);;
 
val valeur_case_aux : (position * case) list -> position -> case * bool =
  <fun>
 
 
let rec valeur_case plateau position = match plateau with
 e::liste ->(match (valeur_case_aux e position) with
 |(c,true)->c
 |(_,_)->valeur_case liste position)
 |[]->failwith"erreur";;
 
val valeur_case : (position * case) list list -> position -> case = <fun>
 
Si tu as des infos pour la suite n'hesites pas à faire tourner

n°12010
Blood Knig​ht
oYo
Profil : Membre
Posté le 23-03-2005 à 11:45:21  profilanswer
 

J ai fini la partie a et presque la partie b je te donnerai des infos qd j aurai le temps :P La je pars en cours ;)

n°12039
thor29
Profil : Membre
Posté le 23-03-2005 à 16:38:24  profilanswer
 

déjaaaaaaaaaa finalement tu n'étais pas en galere du tout!
Ta fé une transformation Super Sayien ou koi???

n°12055
Blood Knig​ht
oYo
Profil : Membre
Posté le 23-03-2005 à 19:37:36  profilanswer
 

Mouahahahah Saiyen 4 direct -_-
Devrais-je dire psykokwak 4 xD
 
Non mais je bosse quand je suis au taf le weekend (j'ai un taf ou je reste assis a rien faire hehe, donc j'emmene mon portable).
 
Si tu as des questions hesite pas ;)
 
J'avoue que j'ai la flemme de te filer mon code comme ca, mais si tu as besoin d'un coup de main c'est avec plaisir :)

n°12066
thor29
Profil : Membre
Posté le 23-03-2005 à 23:15:31  profilanswer
 

Je demande pas tant...
Dis moi il est cool ton taff moi j'ai pas une minute...
Ce que je veux savoir c'est déja pour la fonction modifie_case parce que je bloc la dessus et meme au tutorat ils savaient pas
En gros tu fais comment pour retourner le tableau modifié?(je precise en Caml parce qu'en C ou Java cé easy..)

n°12081
Blood Knig​ht
oYo
Profil : Membre
Posté le 24-03-2005 à 11:10:01  profilanswer
 

Deja pour te dire j'ai fait 3 fonctions pour la faire. Pour t'aider je vais te filer les types des 3 fonctions ca devrait deja bien t'aider. On peut la faire en 2 fonctions, mais j'ai prefere la faire en 3 pour plus de lisibilité :)
 
val modif_list : 'a list -> int -> 'a -> 'a list = <fun> (avec 'a = case bien sur)
 
val modif_colonne : 'a list list -> int -> int -> 'a -> 'a list list = <fun> (de meme)
 
val modif_case : 'a list list -> position -> 'a -> 'a list list = <fun> (de meme)
 
Ca devrait te donner une idée. Fais pas trop attention aux noms des fonctions, je suis pas super bon pour nommer les fonctions ;)

n°12121
thor29
Profil : Membre
Posté le 25-03-2005 à 16:16:12  profilanswer
 

OK merci.
Mais en fait c'est bon j'ai fais ma transformation Super Saiyen 3 et j'ai fini la 1ere partie.
Au passage les listes de listes c'est pour s'embrouiller le cervau parce qu'il ya un moyen bcp plus simple.
Sinon je voulais savoir tu fais comment pour utiliser l'interface graphique????
Moi j'ai ajouter les librairies mais ca marche pas...

n°12136
Blood Knig​ht
oYo
Profil : Membre
Posté le 26-03-2005 à 10:37:52  profilanswer
 

PAs reussi non plus faudra que je demande en cours... :/

n°12139
Dark_megam​an3
Profil : Jeune recrue
Posté le 26-03-2005 à 12:05:45  profilanswer
 

Je vous retrouve donc ici etudiant jussieusien c'est parfait, on va pouvoir s'aider un peu .

n°12160
thor29
Profil : Membre
Posté le 26-03-2005 à 19:31:30  profilanswer
 

Welcome Dark_megaman3
Tu en es ou toi?

n°12161
Blood Knig​ht
oYo
Profil : Membre
Posté le 26-03-2005 à 20:59:19  profilanswer
 

Bon retourne_direction semble marcher chez moi...
Mouahahaa mais je capte rien apres xD

n°12166
poumpoum
Profil : Jeune recrue
Posté le 27-03-2005 à 13:52:08  profilanswer
 

Hello ! je suis aussi de Jussieu en 2ème année de MIAS..
Je vais participer à ce topic car je lutte pas mal pour le projet aussi.
J'ai des questions!  
quel est le type plateau le plus pratique :
case list list ?
position*case list ?
position*case list list ?
 
Les 3 sont possible à faire , mais je me demande si les fonctions graphiques fournies marchent avec tous.. :hello:  
Avez vous dailleurs reussi à les faire marcher sous windows? j'utilise le logiciel Objective Caml (version xindows xp)
Merci d'avance a tous  :sarcastic:  
 

n°12167
thor29
Profil : Membre
Posté le 27-03-2005 à 14:30:27  profilanswer
 

Bienvenue à toi aussi poumpoum
Le plus simple pour le type plateau c'est position*case list.
Je t'assure apres ca va tout seul.
Pour l'instant j'ai pas reussi à utiliser l'interface graphique tout simplement parce que j'ai pas pigé comment on l'utilisé...
J'ai bien mis les fichiers graphiques dans la librairie mais quand je compil il connait pas.
A mon avis faut voir ca avec les profs...

n°12172
airv3
Coach de la Montgalorette
Profil : Vieux de la vieille
Posté le 27-03-2005 à 16:49:10  profilanswer
 

lol des mecs de paris7 :D
vous etes en licence???
parce ke moi c t l'an passé, et on avait eu un typeur de langage a faire, c qd meme plus intéréssant ce que vous avez a faire ;)

n°12176
thor29
Profil : Membre
Posté le 27-03-2005 à 17:09:53  profilanswer
 

non en Deug 2
Mais l'année derniere c'était un labyrinthe c'était un peu moins chiant
Par contre pour montrer a tes potes un Othello c'est plus interessant qu'un Laby....

n°12183
othello2me​rde
Profil : Jeune recrue
Posté le 27-03-2005 à 19:08:15  profilanswer
 

putain !
y a un truc qui est bizarre
 
g trouvé modifie_case, mais fo que le type plateau soit défini sans constructeur : type plateau = case list list
 
pq qd y a un constructeur de plateau (type plateau = Plateau of case list list), en écrivant la même fonction modifie_case à la lettre près, ca donne "This expression has type case list list but is here used with type plateau"
 
voila
c t juste une remarque
 
bonne chance à vous autres

n°12184
thor29
Profil : Membre
Posté le 27-03-2005 à 19:08:20  profilanswer
 

ahah non je crois pas  
C'est redondant d'utiliser une liste de listes
Une liste cela suffit largement
Enfin ca doit etre possible mais je vois pas l'interet...
 

n°12185
poumpoum
Profil : Jeune recrue
Posté le 27-03-2005 à 19:57:37  profilanswer
 

j'ai en effet fait mon projet avec position*case list et je dois avouer que c'est un million de fois plus simple !
Mais une rumeur circule sur les list list ca me fait peur !!! (du style a la fin du projet une fonction nécessite une liste de liste et la le MONNDDEEE SECROULLLLEEE AAAAAA... poum.)
Toujours pas de news pour l'interface graphique,  :cry:  
mais je sens bien le prof me faire : "ta pas FreeBsd? Ben installe le et ca marchera!" :sol:

n°12186
thor29
Profil : Membre
Posté le 27-03-2005 à 20:20:03  profilanswer
 

ahah les rumeurs c'est trop drole pour faire peur...
Je vois pas ce que cela change
Par contre sous windows tu as un emulateur Linux c'est cygwin.

n°12190
Blood Knig​ht
oYo
Profil : Membre
Posté le 27-03-2005 à 21:19:48  profilanswer
 

Je fais ca avec :
type joueur = J1 | J2 ;;
 
type case = P of joueur | Vide ;;
 
type position = int * int ;;
 
type board = case list list ;;
 
Et je suis a essayer de faire marcher l'interface graphique pour la partie b que j'ai fini. Alors les listes de listes ca marche tres bien :)

 Page :  1  2  3  4  5
Page Précédente 

Aller à :
Ajouter une réponse