![]() |
memory2
Hey Leute,
ich arbeite ja immer noch an meinem Memory Spiel. jetzt hab ich die Karten zugedeckt liegen und will die Stringgridzellen mit Zahlen für Pärchen belegen, als 1 für die beiden bmp1 oder so. Wie mach ich das und wie kann ich durch klicken die Felder "aufdecken"? Hab jetzt nur ne dreiviertel Stunde, helft mir bitte ein wenig... :shock: Danke im voraus, ich versuch mein bisheriges Programm anzuhängen :stupid: hab aber grad festgestellt, dass der PC das hier net will -.- Liebe Grüße, die Susi Quelltext:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, Grids, jpeg, ExtCtrls; type TForm1 = class(TForm) MainMenu1: TMainMenu; StringGrid1: TStringGrid; Men1: TMenuItem; Start1: TMenuItem; Aufgeben1: TMenuItem; Neustart1: TMenuItem; Beenden1: TMenuItem; Hilfe1: TMenuItem; Image1: TImage; Highscore1: TMenuItem; procedure Beenden1Click(Sender: TObject); procedure Hilfe1Click(Sender: TObject); procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); procedure FormCreate(Sender: TObject); procedure StringGrid1Click(Sender: TObject); private { Private-Deklarationen } KarteVerdeckt:tbitmap; KartenArray:array [0..4,0..3] of integer; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Beenden1Click(Sender: TObject); begin close; end; procedure TForm1.Hilfe1Click(Sender: TObject); begin showmessage('REMEMBER YOUR CHILDHOOD'); showmessage('Bei diesem Spiel geht es darum, gleiche Pärchen aufzudecken.'); showmessage('Durch den Klick auf zwei Spielkarten werden sie dir angezeigt.'); showmessage('Hast du ein Pärchen gefunden, werden dir 5 Punkte gutgeschrieben.'); showmessage('Viel Spaß beim Spielen!'); end; procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if KartenArray[aCol, arow]=0 then Stringgrid1.Canvas.Draw(rect.left,rect.top,KarteVerdeckt); end; procedure TForm1.FormCreate(Sender: TObject); var i,j:integer; begin for i:=0 to 2 do for j:=0 to 2 do KartenArray[i,j]:=0; KarteVerdeckt:=tbitmap.create; KarteVerdeckt.LoadFromFile(extractfilepath(application.exename)+'clip_image002.bmp'); end; |
Re: memory2
Delphi-Quellcode:
Du meinst wohl eher das hier:
procedure TForm1.Hilfe1Click(Sender: TObject);
begin showmessage('REMEMBER YOUR CHILDHOOD'); showmessage('Bei diesem Spiel geht es darum, gleiche Pärchen aufzudecken.'); showmessage('Durch den Klick auf zwei Spielkarten werden sie dir angezeigt.'); showmessage('Hast du ein Pärchen gefunden, werden dir 5 Punkte gutgeschrieben.'); showmessage('Viel Spaß beim Spielen!'); end;
Delphi-Quellcode:
Nur so...
procedure TForm1.Hilfe1Click(Sender: TObject);
begin showmessage('REMEMBER YOUR CHILDHOOD'+#10+ 'Bei diesem Spiel geht es darum, gleiche Pärchen aufzudecken.'+#10+ 'Durch den Klick auf zwei Spielkarten werden sie dir angezeigt.'+#10+ 'Hast du ein Pärchen gefunden, werden dir 5 Punkte gutgeschrieben.'+#10+ 'Viel Spaß beim Spielen!'); end; |
Re: memory2
Aber bitte #13#10 und nicht nur #10.
Wir sind hier ja in Windows ;) |
Re: memory2
Noch besser sLineBreak. Muss man sich die ASCII-Codes nicht merken und es ist plattformunabhängig ;)
|
Re: memory2
Zitat:
|
Re: memory2
OnSelectCell sollte sein was du suchst.
Du musst natürlich auch für jede Karte bzw Zelle speichern ob diese ein Karte enthält welche schon aufgedeckt wurde. Wenn die Karte noch nicht aufgedeckt wurde dann zeichnest du das Bitmap der Karte in die Zelle und sonst passiert nichts. Du solltest dir auch merken welche Karte bereits auf gedeckt wurde das macht das vergleichen einfacher. |
Re: memory2
Zitat:
|
Re: memory2
Zitat:
jetzt bräuchte ich nur Ansätze, weil ich arbeite an diesem Programm iwie nur 2 mal die woche un grad steh ich mit ??? überm Kopf da :wall: wie belege ich die einzelnen Zellen nun mit Zahlen, denen ich dann ein Pärchen zuweise? :spin: |
Re: memory2
Fang andersrum an.
Erst die Pärchen erzeugen und dann auf Zellen verteilen. Für die Pärchen brauchst du zu erst ![]() ![]() Ich hab bei meinem Memory (welches aber Andorra für die Grafik verwendet) eine Konstante mit dem Abc verwendet. Du kannst natürlich auch Zahlen verwenden.
Delphi-Quellcode:
Jetzt kannst du über die Länge des Strings (mit
const
ABC: String = 'abcdefghijklmnopqrstuvwxyz'; ![]() Jetzt muss du eigentlich nur noch deine Ausgewählte Zahl bzw ausgewälten Buchstaben in zwei Zellen verteilen. Du kannst auch prüfen ob die Zahl schon vorhanden ist oder nicht. Aber den Rest musst du dir schon selber zusammen suchen ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz