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