[RESOLU]Définir les dimensions d'une console?
Publié : dim. 09/déc./2007 9:53
				
				Bonjour,
Je suis en 1èere S et je doios donc réaliser un TPE, popour soutenir mon dossier je réalise un programme de simulation de gestion des ressources par les fourmis.
Voici ma question : Lorsque je lance le programme, la fenêtre appellée avec OpenConsole() apparaît de manière arbitraire sur l'écran, y a-t'il un moyen de paramétrer les dimensions et la localisation de cette fenêtre, car sinon elle se superpose à la fenêtre de dessin que j'ouvre plus tard?
Deuxième solution : y a-t'il une commande qui permette de définir la fenêtre de texte comme en arrière-plan, afin qu'elle ne cache pas la fenêtre de dessin?
Merci d'avance pour toutes vos réponses
PS : Si cela peut aider, voici le code :
			Je suis en 1èere S et je doios donc réaliser un TPE, popour soutenir mon dossier je réalise un programme de simulation de gestion des ressources par les fourmis.
Voici ma question : Lorsque je lance le programme, la fenêtre appellée avec OpenConsole() apparaît de manière arbitraire sur l'écran, y a-t'il un moyen de paramétrer les dimensions et la localisation de cette fenêtre, car sinon elle se superpose à la fenêtre de dessin que j'ouvre plus tard?
Deuxième solution : y a-t'il une commande qui permette de définir la fenêtre de texte comme en arrière-plan, afin qu'elle ne cache pas la fenêtre de dessin?
Merci d'avance pour toutes vos réponses
PS : Si cela peut aider, voici le code :
Code : Tout sélectionner
Largeur = 503
Hauteur = 300                                              
indice = 50
coul_ress = $FF0000
coul_departfond = $FFFFFF
coul_fond  = $99FFFF
coul_fourmi = $000000
nbdepl = 0
Dim Airechasse(Largeur, Hauteur)
Structure fourmi
  ax.l                  ;Anciennes coordonnées de la fourmi
  ay.l
  x.l                    ;Coordonnées actuelles
  y.l
  nx.l                  ;Futures coordonnées
  ny.l
  etat.l                ;Etat de la fourmi(0 = vide, 1 = pleine)
  dx.l                  ;Deplacement de la fourmi
  dy.l
EndStructure
OpenConsole()
EnableGraphicalConsole(1)
PrintN("Appuyez sur espace pour passer a l'etape suivante")
PrintN("Appuyer sur echap pour arreter le programme")
PrintN("Mais tout d'abord, combien de fourmis vont travailler?")
Reponse$ = Input()
nbfourmi = Val(Reponse$)
            
If OpenWindow(0, 0, 0, Largeur, Hauteur, "Aire de chasse", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If StartDrawing(WindowOutput(0))
      
      Dim fm.fourmi(nbfourmi)
      
      ;Affichage de l'aire de chasse
      Box(0, 0, Largeur, Hauteur, coul_departfond)
      
      Repeat
        Touche$ = Inkey()
      Until Touche$ = Chr(32)
      
      ;On initialise le tableau des ressources et affichage
      For Tabx = 0 To Largeur-1
        For Taby = 0 To Hauteur-1
          If Random(indice)=indice
              Airechasse(Tabx, Taby) = 1
              Plot(Tabx, Taby, coul_ress)
          Else
              Airechasse(Tabx,Taby) = 0
          EndIf
        Next Taby
      Next Tabx
      Repeat
        Touche$ = Inkey()
      Until Touche$ = Chr(32)
      ;On définit les coordonnées de départ des différentes fourmis
      ;On initialise les fourmis comme vides
      For i = 1 To nbfourmi-1
          fm(i)\x = 0.9*Random(Largeur-1)+0.05*Largeur
          fm(i)\y = 0.9*Random(Hauteur-1)+0.05*Hauteur
          fm(i)\nx = fm(i)\x + 1
          fm(i)\ny = fm(i)\y + 1
          fm(i)\etat = 0
          fm(i)\dx = 2*Random(1)-1
          fm(i)\dy = 2*Random(1)-1
      Next
      ;**********************************
      ;Fin de l'initialisation, début du travail
      Repeat
        Touche$ = Inkey()
        For i = 1 To nbfourmi
        ;On défini les anciennes coordonnées de la fourmi en vue des tests
            fm(i)\ax = fm(i)\x
            fm(i)\ay = fm(i)\y
        ;On défini les nouvelles coordonnées de la fourmi
            fm(i)\x = fm(i)\nx
            fm(i)\y = fm(i)\ny
        ;On défini les futures coordonnées de la fourmi en vue des tests
        ;Et on vérifie qu'elles ne sortent pas de l'écran, sinon on inverse le déplacement 
        ;déficient
            fm(i)\nx = fm(i)\x + fm(i)\dx
            fm(i)\ny = fm(i)\y + fm(i)\dy
            If fm(i)\nx = Largeur-1 Or fm(i)\nx = 0
                fm(i)\dx = fm(i)\dx*(-1)
            EndIf
            If fm(i)\ny = Hauteur-1 Or fm(i)\ny = 0
                fm(i)\dy = fm(i)\dy*(-1)
            EndIf
        ;Dessin des nouvelles localisations et effacement des anciennes
            Plot(fm(i)\x,fm(i)\y, coul_fourmi)
            If Airechasse(fm(i)\ax, fm(i)\ay) = 1
                Plot(fm(i)\ax, fm(i)\ay, coul_ress)
            Else
                Plot(fm(i)\ax, fm(i)\ay, coul_fond)
            EndIf  
        ;***************************************
        ;Vérification de la présence de ressources
         
          If Airechasse(fm(i)\x, fm(i)\y) + fm(i)\etat = 1
            nb_ress = Airechasse(fm(i)\ax, fm(i)\ay) + Airechasse(fm(i)\x, fm(i)\ay) + Airechasse(fm(i)\nx, fm(i)\ay) + Airechasse(fm(i)\ax, fm(i)\y) + Airechasse(fm(i)\nx, fm(i)\y) + Airechasse(fm(i)\ax, fm(i)\ny) + Airechasse(fm(i)\x, fm(i)\ny) + Airechasse(fm(i)\nx, fm(i)\ny)
                          
            If fm(i)\etat = 0 And nb_ress < 2
              fm(i)\etat = 1
              Airechasse(fm(i)\x, fm(i)\y) = 0          
            EndIf  
            If fm(i)\etat = 1 And nb_ress > 2
              fm(i)\etat = 0
              Airechasse(fm(i)\x, fm(i)\y) = 1
            EndIf
          EndIf
        Next
        ;****************************
        ;Comptage de boucles
        nbDepl = nbDepl+nbfourmi
        ConsoleLocate(5, 6)
        Print(Str(nbDepl))
      Until Touche$ = Chr(27)
    EndIf
EndIf 
 
