JeuxOnLineForumsPlusConnectés : 631 (sites) | 1155 (forums)Créer un compte
Forums divers
La Taverne
Les forums JOL > Forums divers > La Taverne > [Delphi 4] 2 problèmes dans la création d'un Othello RSS
   
Répondre
Partager Outils Rechercher
Avatar de Hanny Drocéphale
Hanny Drocéphale [FED]
 
Avatar de Hanny Drocéphale
 
Pour mettre des Formes complexes il faut utiliser le DrawGrid, TstringGrid ( comme son nom l'indique ) est destiné aux chaines.

Il faut écrire un gestionnaire OnDrawCell qui va dessiner sur ta grille l'objet désiré.
OnDrawCell a plusieurs paramètres qui te permettent de savoir ou tu es dans ton DrawGrid et dans ta form.

Code PHP:
procedure TForm1.DrawGrid1DrawCell(SenderTObjectAColARowInteger;
  
RectTRectStateTGridDrawState);
var
  
MonBitMap Tbitmap;
begin
  
if (Acol 1) and (Arow 1then begin // Exemple stupide mais revelateur de la methode a utiliser.
    
MonBitMap := TBitmap.Create;
    
MonBitMap.LoadFromFile('c:\A.BMP'); // il faut toujours un A.BMP sur c: ^^
    
DrawGrid1.Canvas.BrushCopy(rect,MonBitmap,rect,clBlack); // et hop, il dessine comme un grand. a noter que j'utilise 2 fois RECT, le rect source doit normalement être modifié pour, sauf si ton BMP fait parfaitement la taille de tes cells.
  
end
J'utilise rarement ce genre de trucs, désolé d'être aussi peu loquace
Lien direct vers le message - Vieux
Avatar de Kelem Khâl La'Ri
Kelem Khâl La'Ri
Alpha & Oméga
 
Avatar de Kelem Khâl La'Ri
 
Citation:
Provient du message de Hannibal da GimpZor
Pour mettre des Formes complexes il faut utiliser le DrawGrid, TstringGrid ( comme son nom l'indique ) est destiné aux chaines.
Pas totalement juste, extrait de l'aide D6 :

StringGrid est un contrôle grille conçu pour simplifier la gestion de chaînes et d'objets associés.

[...] TStringGrid introduit la possibilité d'associer un objet à chaque chaîne de la grille. Ces objets peuvent encapsuler des informations ou des comportements représentés par les chaînes proposées à l'utilisateur.


Remarquez le "objets associés". TStringGrid ne pose aucun problème pour gérer des TBitmap dans son canevas, ils se tracent également à l'aide de la méthode Draw avec quelque chose du genre myGrid.Canvas.Draw(x,y,myBitmap).

Et à noter que TStringGrid hérite de TDrawGrid donc possède quelques avantages, méthodes et évènements, supplémentaires (comme l'association d'une chaine à un objet quelconque, par exemple).

Au passage, préférez la méthode LoadFromResourceName à LoadFromFile, elle vous évite de stocker vos sprites dans plusieurs fichiers. Vous pouvez tous les regrouper dans un seul fichier de ressources.
Lien direct vers le message - Vieux
Avatar de Hôte des Songes
Hôte des Songes
Alpha & Oméga
 
Avatar de Hôte des Songes
 
Merci pour votre aide je vais essayer de faire ça
Lien direct vers le message - Vieux
Avatar de Hôte des Songes
Hôte des Songes
Alpha & Oméga
 
Avatar de Hôte des Songes
 
Hannibal, quel bouton dois-je utiliser pour créer en visuel la grille du dernier algo que tu m'as proposé?

Drawgrid? mais dans ce cas la procédure n'est plus la même non?

*tout embrouillé *
Lien direct vers le message - Vieux
Avatar de Hanny Drocéphale
Hanny Drocéphale [FED]
 
Avatar de Hanny Drocéphale
 
Tu dois poser un DrawGrid sur ta fiche.
DrawGrid1OnDrawCell et la procédure qui code l'evenement "OnDrawCell" du DrawGrid.

Le DrawGrid est sur la même palette que le TstringGrid normalement.
Lien direct vers le message - Vieux
Avatar de Iminra Aï Khanoum
Iminra Aï Khanoum
Roi / Reine
 
Avatar de Iminra Aï Khanoum
 
re: 2 problèmes dans la création d'un Othello
Citation:
Provient du message de Hôte des Songes
problèmes dans la création d'un Othello
Trouve lui une Desdémone, et supprime Iago!





désolée, j'ai honte de moi!



Lien direct vers le message - Vieux
Avatar de Hôte des Songes
Hôte des Songes
Alpha & Oméga
 
Avatar de Hôte des Songes
 
explication plz

(j'ai joué à T4C donc tu peux passer certains détails dans l'explication)
Lien direct vers le message - Vieux
LoneCat
Invité
 
Citation:
Provient du message de Hôte des Songes

(j'ai joué à T4C donc tu peux passer certains détails dans l'explication)
Les effets de T4C sont encore plus terrifiants que je ne l'imaginais

CORWIN viens voir ça !!!

Ciao,
LoneCat
Lien direct vers le message - Vieux
Avatar de Kelem Khâl La'Ri
Kelem Khâl La'Ri
Alpha & Oméga
 
Avatar de Kelem Khâl La'Ri
 
Re: re: 2 problèmes dans la création d'un Othello
Citation:
Provient du message de Iminra Aredhel
Trouve lui une Desdémone, et supprime Iago!





désolée, j'ai honte de moi!





* S'essuie la larme à l'oeil *

Hmmm... reprenons notre sérieux ...

Sur D6, l'onglet des composants que tu dois sélectionner est "Supplement", tu trouves le TStringGrid et tu le colles sur ta Form principale . Ensuite, tu auras accès à toutes les méthodes et évènements dans l'Explorer.
Lien direct vers le message - Vieux
Avatar de Lisèn
Lisèn
Alpha & Oméga
 
Avatar de Lisèn
 
Cool
Citation:
Provient du message de Hôte des Songes
explication plz :aide:

(j'ai joué à T4C donc tu peux passer certains détails dans l'explication)
C'est de Shakespear inculte, pas de T4C.

Rhooo, la honte sur ce coup la Hôte. ^^
Lien direct vers le message - Vieux
Avatar de Hôte des Songes
Hôte des Songes
Alpha & Oméga
 
Avatar de Hôte des Songes
 
Shakespeare....Iago.......
Mouarfffffffffffeeeeeeeeeeeeeee


Olalala je suis désolé je suis trop honteux


Argh de argh
Lien direct vers le message - Vieux
Avatar de Iminra Aï Khanoum
Iminra Aï Khanoum
Roi / Reine
 
Avatar de Iminra Aï Khanoum
 
Navrée... c'était juste une connerie sur l'oeuvre de Shakespeare puisqu'elle me parle un poil plus que le programme en question!

puis le perfide Iago de T4C, ne te demande plus d'où il vient!

Je rajoute quand meme que l'un de mes perso s'est appelé Desdémone, le pourquoi du comment je l'ouvre pour ne rien dire ^^


[arf devancée!]
Lien direct vers le message - Vieux
Avatar de Hôte des Songes
Hôte des Songes
Alpha & Oméga
 
Avatar de Hôte des Songes
 
Bon et ben finalement je vais opter pour une grille à 64 shapes avec la procédure d'actualisation de la grille après chaque coup :

Type
TGrille : Array [1..8] of Array [1..8] of integer;

var
MaGrille : Tgrille;

procedure UpdateShape(ShapeName: string;Etat:integer);
var
i : integer;
begin
for i := 0 to frmMain.ControlCount-1 do begin
if frmMain.controls[i].Name = ShapeName then
begin
// Fait ce qu'il faut pour mettre a jour en fonction de ce qu'il y a dans ton tableau : rien, noir,blanc.
end;
end;
end;

procedure MetAjourLaGrilleGraphique;
var
i,j : integer;
CtrlName : string;
begin
for i := 1 to 8 do begin
for j := 1 to 8 do begin
CtrlName := 'shp'+inttostr(i)+inttostr(j);
UpdateShape(CtrlName,MaGrille[i][j]);
end;
end;
end;



Citation:
// Fait ce qu'il faut pour mettre a jour en fonction de ce qu'il y a dans ton tableau : rien, noir,blanc.
Citation:
Pour chacune des 8 directions, tu regardes s'il y a un pion adverse. Si oui, tu continues dans la même direction, jusqu'à ce que tu trouves un pion de ta couleur. Si oui, la case est jouable. Tous les autres possibilités (bord trouvé, pas de pion adverse sur la case adjacente, etc.) rendent la case non jouable.
Ok, pour l'horizontale, on regarde les i+1(ou -1 si on va dans l'autre sens),on regarde si c'est un pion d'une autre couleur que le joueur qui joue, et si c le cas on continue jusqu'a qu'on trouve un pion de la même couleur... et pareil avec les j pour la verticale...

mais pour la diagonale????
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forums divers > La Taverne > [Delphi 4] 2 problèmes dans la création d'un Othello
   

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés

Outils Rechercher
Rechercher:

Recherche avancée

Thème visuel : Fuseau horaire GMT +1. Il est actuellement 15h43.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite