[DELPHI] Du nouveau avec mes cours niveau 5ème

Du nouveau avec mes cours niveau 5ème [DELPHI] - Delphi/Pascal - Programmation

Marsh Posté le 17-03-2003 à 12:38:46    

Salut,
 
bon je ne sais pas si certain ce souviennent, mais je suis prof en collège, et depuis le début de l'année j'ai monté un petit atelier programmation Delphi.
Les élèves sont hyper intéressés.
En ce moment j'ai deux groupes :  
1 groupe passionné par les pièces d collection : donc on fait un petit soft, leur permettant de lister leur pièce, afficher la photo de la pièce ...
1 groupe qui fait une bataiile navale.
Là j'ai pris un chemin qui maintenant me parait compliqué :  
on à fait un "tbleau" 12x12 avec des boutons (qd on clique sur un bouton le bouton devient invisible, et on regarde si dans la case correspondante il y a un bateau ou pas.
Ben c'est hyper lourd à gérer : programmer 144 boutons ... Mais bon au moins les élèves savent bien ce qu'est la prpopriété caption, name ...
 
Voilà.
Si quelqu'un connaît le source d'une bataille navale en Delphi, je suis prenueur.
De m^me si qulqu'un connaît une adresse où l'on peut récupérer des bitmaps de navires (porte-avion ...)
Merci


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 17-03-2003 à 12:38:46   

Reply

Marsh Posté le 17-03-2003 à 12:49:13    

davidmarli a écrit :

programmer 144 boutons ...


 
T'entends quoi par là :??:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 17-03-2003 à 12:53:27    

ben pour faire la grille de la bataille navale, on a aligner 12x12 composants button !


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 17-03-2003 à 13:42:29    

il serait plus judicieux d'utiliser une image, comme cela déjà ce serait plus "joli" et surtout moins lourd...
 
il suffit de réagir sur l'évenement OnMouseUp pour ensuite déterminer dans quelle cellule on vient de cliquer, et alors mettre a jour l'image.
 
bien sur tu conserves un tableau de byte de 12*12 qui contiendra les données


Message édité par taureau le 17-03-2003 à 13:43:40
Reply

Marsh Posté le 17-03-2003 à 14:02:52    

Je suis en train de programmer un jeu similaire (avec une grille). Ma méthode est assez simple : J'ai une image de taille 200,200 qui représente une grille. Là, je détecte le click de la souris (un évènement), et j'arrive donc dans ladite fonction invoquée grâce au click. Voilà l'aglo à ce moment :

Code :
  1. void clickSurImage(int x, int y)
  2. {
  3. // note que je reçois en paramètres les coordonnées du curseur au moment du clique
  4. // boucle pour récup la coordonnée matricielle en x
  5. // Disons que j'ai des cases carrées 20x20 :
  6. // on commence tout à gauche, première case
  7. for i = 20 to 200
  8.     si i>x alors
  9.           case_x = n; // n est un compteur de case, à rajouter dans la boucle... n++ quoi :)
  10.     finsi
  11.     i = i + 20; // on saute à la case suivante
  12. finfor
  13. // pareil avec y
  14. ...
  15. // et voilà tu as maintenant les coordonnées de la case cliquée dans une matrice, tu mets un flag, et éventuellement une image à l'écran
  16. }


voilà, de mémoire :) (y'a p-e quelques bugs dans l'algo mais le principe est là)


Message édité par Belegar le 17-03-2003 à 14:06:27
Reply

Marsh Posté le 17-03-2003 à 14:06:04    

Belegar a écrit :

...
 
// et voilà tu as maintenant les coordonnées de la case cliquée dans une matrice, tu mets un flag, et éventuellement une image à l'écran


 
il serait plus simple pour avoir les coordonnées de la case cliquée de faire
 

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var col,row:integer;
begin
 col := (x div TAILLE_CELLULE_HL);
 row := (y div TAILLE_CELLULE_HL);
end;


 
avec dans ton exemple TAILLE_CELLULE_HL = 20


Message édité par taureau le 17-03-2003 à 14:06:40
Reply

Marsh Posté le 17-03-2003 à 14:09:38    

oui tu as raison suis-je bête !

Reply

Marsh Posté le 17-03-2003 à 20:38:14    

pmerci bp pour vos idées !!!
Bon ben il va falloir dire aux élèves que finalement .... ils ont fait tout cela pour rien !!!
Vous êtes dur avec moi ! ils vont me lincher !
non je blague. Bon cela leur fera voir autre chose, merci bp


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 17-03-2003 à 20:39:38    

euh juste une question, dans la division euclidienne  
x div taille_ ..., l'image du quadrillage a pour origine 0,0 ???
non ?


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 17-03-2003 à 20:56:56    

davidmarli a écrit :

ils ont fait tout cela pour rien !!!
Vous êtes dur avec moi ! ils vont me lincher !


 
ça fera l'occasion de dire « Vous avez donc vu au cours précédent la mauvaise méthode de le faire, vous vous êtes bien rendu compte que c'était pénible. Bon qui a une idée de la bonne méthode que nous allons voir aujourd'hui ? »


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 17-03-2003 à 20:56:56   

Reply

Marsh Posté le 17-03-2003 à 21:46:02    

oui pas mal, comme retournement de situation !!
Au fait, personne n'a d'image de bateau ???
Au pire qui a une bataille navale (en jeu de société) et pourrait me scanner les pièces ??


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 17-03-2003 à 22:49:32    

j'ai pas ça sous la main, mais tu peux organiser un cours de "recherche sur internet" ou un "apprentissage d'utilisation de Paint shop pro" :whistle:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 18-03-2003 à 05:46:02    

davidmarli a écrit :

euh juste une question, dans la division euclidienne  
x div taille_ ..., l'image du quadrillage a pour origine 0,0 ???
non ?


 
oui les coordonnées débuteront en 0,0 et iront donc jusqu'en 11,11
 
tu pourras déclarer ta grille qui contiendra les données comme ça :
 

Grille:Array[0..11,0..11] of byte;


 
pour les images comme dis antp une recherche sur google devrait faire ton bonheur


Message édité par taureau le 18-03-2003 à 05:46:48
Reply

Marsh Posté le 18-03-2003 à 07:23:20    

euh antp tu va rigoler : on a pas internet au bahut !!!
En fait le collège est sur deux site : un pour les 6ème 5ème, et un pour les 4 et 3ème.
Je viens d'installer l'adsl sur l'utre site mais pas sur celui-ci !
Sinon, sur google, j'avais déjà regardé mais j'ai rien trouvé de très intéressant !!!
Je crois effectivement que l'on va se servir de paint shop pro !
 
Taureau : pour les coordonnées, je parlais des coordonnées sur l'image.
Merci encore


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 18-03-2003 à 07:30:04    

tu n'as pas à te soucier des coordonnées réelle de ton image car les x et y renvoyés lors du MouseUp sont par rapport à ton image

Reply

Marsh Posté le 18-03-2003 à 16:17:36    

ah ben c'est encore plus mieux !!!


---------------
Matheux Fou - https://afficheur-tempo.fr - TEMPO BOX pour abonnés TEMPO EDF
Reply

Marsh Posté le 18-04-2003 à 20:53:35    

Je peux venir dans ton atelier delphi moi ??


---------------
AfterEnd: Batissez un nouveau monde
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed