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

Free Pascal Discussion :

Cliquer pour choisir un nombre


Sujet :

Free Pascal

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 13
    Points : 6
    Points
    6
    Par défaut Cliquer pour choisir un nombre
    Bonsoir,
    je reviens avec un deuxième problème. Dans un mini-jeu que je créé où il faut retrouver un 0 caché parmi des nombres rangés aléatoirement dans un tableau, j'ai un soucis pour le joueur.
    En effet, je souhaite utiliser la souris pour que le joueur sélectionne l'endroit où se trouve le 0, néanmoins, je n'ai jamais utilisé cela, du coup je ne sais pas comment faire. J'ai essayé par rapport à des exemples trouvés sur ce forum, mais en cliquant rien ne se passe même pas le changement de la position de la souris. Voici mon code :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    program MiniJeu1;
     
    uses crt,souris;
    const YMAX = 10;
    const XMAX = 10;
    Type Tab = array[1..XMAX,1..YMAX] of Integer;
    Type Ensemble = Set of 35..165;
     
    Procedure fill(var t : Tab);
    var i,j, rdm : Integer;
    begin
    	randomize();
    	for j:=1 to YMAX do
    	begin
    		for i:=1 to XMAX do
    		begin
    		rdm:= random(9)+1;
    		t[i][j]:= rdm;
    		end;
    	end;
    end;
     
    procedure numerogagnant(var t : Tab; var posX, posY : Integer);
    begin 
    	randomize();
    	posX:= random(XMAX)+1;
    	posY:= random(YMAX)+1;
    	t[posX][posY]:= 0;
     
    end;
     
    procedure afficher(var t : Tab );
    var i,j : Integer;
    	begin
    	for j:=1 to YMAX do
    	begin
    		for i:=1 to XMAX do
    		begin	
    			write(t[i][j]);
    		end;
    	writeln();
    	end;	
    	end;
     
     
    var t : Tab;
    	posX,posY,posXX,posYY : Integer;
    begin
    	fill(t);
    	numerogagnant(t,posX,posY);
    	afficher(t);
    	initmouse;
    	getmousepos(posXX,posYY);
    	button;
    	writeln(posXX,posYY);
    	if ((posXX=posX)AND(posYY=posY))AND(button=1) then
    		writeln('C''est gagne!');
    end.
    L'unité Souris étant celle trouvée sur ce site :
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    unit souris;
    interface
    uses crt,dos;
    var
       reg : registers;
     
    function initmouse : boolean;
    Procedure Afficher ;
    Procedure Masquer ;
    Procedure getmousepos ( var mX, mY : integer ) ;
    function button : integer;
     
    implementation
     
    function initmouse: boolean;
    begin
       reg.ax:=$00;
       intr($33,reg);
       if reg.ax=0 then
          initmouse := false;
       if reg.ax=1 then
          initmouse := true;
    end;
     
    {Affichage du curseur}
    procedure afficher ;
    begin
         reg.ax := $01;
         intr($33,reg);
    end;
     
    {Masque du curseur }
    procedure Masquer ;
    begin
         reg.ax := $02;
         intr($33,reg);
    end;
     
     
    Procedure getmousepos ( var mX, mY : integer ) ;
    begin
       reg.ax := $03;
       intr($33,reg);
       Mx := reg.cx;
       My := reg.dx;
    end;
     
     
    function button : integer;
    begin
       reg.ax := $03;
       intr($33,reg);
       button := reg.bx;
    end;
     
    End .
    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 072
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 072
    Points : 15 462
    Points
    15 462
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Je pense que l'unité Souris que vous essayez d'utiliser est une unité pour Turbo Pascal. Elle ne pourra pas fonctionner. Vous devriez plutôt utiliser l'unité Mouse incluse dans Free Pascal. J'ai trouvé un seul petit exemple ici :
    https://www.freepascal.org/docs-html...sebuttons.html

    Personnellement je ne peux pas beaucoup vous aider parce que je suis sous Linux.

    On ne trouve pas beaucoup d'exemples parce que ce n'est pas commun d'utiliser la souris dans une application console.

    Une autre possibilité serait d'utiliser les unités WinGraph et WinMouse.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 22
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup de votre réponse.. Je penses que ça ne va pas fonctionner donc je vais devoir utiliser les flèches de la souris.. Le problème est-il que mon projet doit être 'universel' donc tant pis. Mais merci de votre aide tout de même

Discussions similaires

  1. Choisir la précision pour calculs en nombres flottants
    Par ciol2.6.12 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 02/06/2008, 14h14
  2. Les distributions GNU/Linux et BSD + Guide pour choisir sa distribution Linux
    Par Community Management dans le forum Distributions
    Réponses: 1
    Dernier message: 23/09/2006, 18h20
  3. Réponses: 4
    Dernier message: 11/06/2006, 19h04
  4. Algorithme pour trier trois nombres
    Par legosam dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 17/01/2005, 21h47
  5. Cherche conseil pour choisir mon orientation.
    Par AslDice dans le forum Débuter
    Réponses: 6
    Dernier message: 24/04/2003, 17h07

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