IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Caml Discussion :

Module Ocaml : affichage d'un matrice


Sujet :

Caml

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 73
    Points : 57
    Points
    57
    Par défaut Module Ocaml : affichage d'un matrice
    Je souhaite écrire une fonction module en ocaml qui permet de modéliser un scrabble 10 × 10 .
    je pensais aux matrices utilisées. car la position d'un element est donné par (i,j).
    pour une le module graphique voir : http://caml.inria.fr/pub/docs/manual.../libgraph.html.

    Si quelqu'un peut m'aider je serai reconnaissant.

    ceci comme exemple trouvé dans mes recherches :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    let affiche_tableau_couleur(m,nb_ligne,nb_colonne) =
     
        for  i=0 to (nb_ligne-1) do
          for j=0 to (nb_colonne-1) do
     
        begin
     
        match m.(i).(j) with 
        |true -> graph_set_color (red);
             graph_fill_circle (i*20+25, j*20+480, 10);
     
        |false -> graph_set_color (black);
              graph_fill_circle (i*20+25, j*20+480, 10);
     
        end
          done;
          print_newline();
        done
    ;;
    Error: Unbound value graph_set_color

  2. #2
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    C'est bien d'être aller chercher le caractère ×
    J'apprécie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #load "graphics.cma";;
    open Graphics;;
    open_graph "foo:0";;
    ceci comme exemple trouvé dans mes recherches
    C'est du code Caml-Light. Tu ne dois utiliser que les fonctionnalités documentées ici.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 73
    Points : 57
    Points
    57
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
    #load "graphics.cma";;
    open Graphics;;
    open_graph "foo:0";;
    let affiche_tableau_couleur(m,nb_ligne,nb_colonne) =
     
        for  i=0 to (nb_ligne-1) do
          for j=0 to (nb_colonne-1) do
     
        begin
     
        match m.(i).(j) with 
        |true -> Graphics.set_color (red);
             Graphics.fill_circle (i*20+25, (nb_colonne-j)*20+480,10); 
                            (*     (i*20+25, j*20+480, 10);*)
     
        |false -> Graphics.set_color (black);
              Graphics.fill_circle (i*20+25, (nb_colonne-j)*20+480,10) ;
             (*(i*20+25, j*20+480, 10);*)
     
        end
          done;
          print_newline();
        done
    ;;
    J'ai trouvé ceci comme erreur::
    Characters 256-291:
    Graphics.fill_circle (i*20+25, (nb_colonne-j)*20+480,10);
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    Error: This expression has type 'a * 'b * 'c
    but an expression was expected of type int

  4. #4
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut L'application d'un argument à une fonction se fait par simple juxtaposition.
    La documentation dit que val fill_circle : int -> int -> int -> unit.

    Or le code que tu as écrit ne serait correct que si val fill_circle : (int * int * int) -> unit.

    Encore un peu de code pour te faire méditer sur la notion d'application d'un argument à une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # let id x = x;;
    val id : 'a -> 'a = <fun>
    # id id (+) 1 2;;
    - : int = 3
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 73
    Points : 57
    Points
    57
    Par défaut
    Graphics.fill_circle ( prend trois parametre en arguments) et renvoie l'affichage ) ;;
    id id (+) ;;
    - : int -> int -> int = <fun>. je ne comprends pas les arguments passés en parametres.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 73
    Points : 57
    Points
    57
    Par défaut
    je me permets de reveir vers vous pour silliciter une aide ! car j'ai fait de mon possible pour resoudre mais en vain .

  7. #7
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut Désolé
    À trop vouloir bien faire je n'ai pas été assez terre-à-terre.

    Avec fill_circle (i*20+25, (nb_colonne-j)*20+480,10) on appliquer un triplet en argument.
    Pour appliquer 3 arguments c'est plutôt fill_circle (i*20+25) ((nb_colonne-j)*20+480) 10.

    Il n'y a pas besoin de Graphics. parce que le module est ouvert avec la commande open Graphics.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 73
    Points : 57
    Points
    57
    Par défaut
    je vous remercie infiniment .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage d'une matrice dans un edit
    Par harris_macken dans le forum Interfaces Graphiques
    Réponses: 15
    Dernier message: 22/11/2007, 21h35
  2. Réponses: 5
    Dernier message: 10/11/2007, 10h20
  3. [TP] Affichage d'une matrice
    Par williamdunord dans le forum Turbo Pascal
    Réponses: 19
    Dernier message: 28/05/2007, 20h46
  4. Affichage/Disparition de matrice
    Par hugo1992 dans le forum Graphisme
    Réponses: 2
    Dernier message: 24/03/2007, 16h56
  5. Affichage d'une matrice
    Par ypascal dans le forum Pascal
    Réponses: 7
    Dernier message: 24/04/2006, 20h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo