![]() |
Memory Spiel
Hallo zusammen,
zur Zeit bin dabei ein Memory Spiel zu erstellen. Jedoch komm ich nicht mehr weiter.:( Im Moment funktioniert es ja nur so, dass der Button verschwindet und das darunter liegende Image gezeigt wird. Wie bekomme ich das jetzt hin, dass maximal 2 Buttons verschwinden? Und das die beiden Buttons wieder da sind, wenn ich einen dritten anklick? Die jeweils zwei Buttons sollen nur wegbleiben, wenn das richtige Paar gefunden wurde. Ist ja schließlich ein Memory. Kann mir jemand sagen, was ich genau machen muss mit meinem vorhandenen Programm? Ich weiß, dass ich irgendwas mit Variablen machen muss, nur wie?:?:
Delphi-Quellcode:
unit Unit3;
{$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Buttons, StdCtrls, ExtCtrls; type { TForm3 } TForm3 = class(TForm) BitBtn1: TBitBtn; BitBtn10: TBitBtn; BitBtn11: TBitBtn; BitBtn12: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; BitBtn4: TBitBtn; BitBtn5: TBitBtn; BitBtn6: TBitBtn; BitBtn7: TBitBtn; BitBtn8: TBitBtn; BitBtn9: TBitBtn; Button1: TButton; Image1: TImage; Image10: TImage; Image11: TImage; Image12: TImage; Image2: TImage; Image3: TImage; Image4: TImage; Image5: TImage; Image6: TImage; Image7: TImage; Image8: TImage; Image9: TImage; procedure BitBtn10Click(Sender: TObject); procedure BitBtn11Click(Sender: TObject); procedure BitBtn12Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure BitBtn5Click(Sender: TObject); procedure BitBtn6Click(Sender: TObject); procedure BitBtn7Click(Sender: TObject); procedure BitBtn8Click(Sender: TObject); procedure BitBtn9Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Image1Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form3: TForm3; implementation uses Unit1 ; {$R *.lfm} { TForm3 } procedure TForm3.BitBtn10Click(Sender: TObject); //Paar 3 begin BitBtn10.Visible:=false; Image10.Picture.LoadFromFile('H:\SmkInf\Memorykarten\Fortgeschritten\Image6.bmp'); end; procedure TForm3.BitBtn11Click(Sender: TObject); //Paar 4 begin BitBtn11.Visible:=false; Image11.Picture.LoadFromFile('H:\SmkInf\Memorykarten\Fortgeschritten\Image8.bmp'); end; procedure TForm3.BitBtn12Click(Sender: TObject); //Paar 6 begin BitBtn12.Visible:=false; Image12.Picture.LoadFromFile('H:\SmkInf\Memorykarten\Fortgeschritten\Image12.bmp'); end; procedure TForm3.BitBtn1Click(Sender: TObject); //Paar 1 begin BitBtn1.Visible:=false; Image1.Picture.LoadFromFile('H:\SmkInf\Memorykarten\Fortgeschritten\Image1.bmp'); end; procedure TForm3.BitBtn2Click(Sender: TObject); //Paar 1 begin BitBtn2.Visible:=false; Image2.Picture.LoadFromFile('H:\SmkInf\Memorykarten\Fortgeschritten\Image2.bmp'); end; procedure TForm3.BitBtn3Click(Sender: TObject); //Paar 3 begin BitBtn3.Visible:=false; Image3.Picture.LoadFromFile('H:\SmkInf\Memorykarten\Fortgeschritten\Image5.bmp'); end; procedure TForm3.BitBtn4Click(Sender: TObject); //Paar 2 begin BitBtn4.Visible:=false; Image4.Picture.LoadFromFile('H:\SmkInf\Memorykarten\Fortgeschritten\Image3.bmp'); end; procedure TForm3.BitBtn5Click(Sender: TObject); //Paar 4 begin BitBtn5.Visible:=false; Image5.Picture.LoadFromFile('H:\SmkInf\Memorykarten\Fortgeschritten\Image7.bmp'); end; procedure TForm3.BitBtn6Click(Sender: TObject); //Paar 2 begin BitBtn6.Visible:=false; Image6.Picture.LoadFromFile('H:\SmkInf\Memorykarten\Fortgeschritten\Image4.bmp'); end; procedure TForm3.BitBtn7Click(Sender: TObject); //Paar 6 begin BitBtn7.Visible:=false; Image7.Picture.LoadFromFile('H:\SmkInf\Memorykarten\Fortgeschritten\Image11.bmp'); end; procedure TForm3.BitBtn8Click(Sender: TObject); //Paar 5 begin BitBtn8.Visible:=false; Image8.Picture.LoadFromFile('H:\SmkInf\Memorykarten\Fortgeschritten\Image9.bmp'); end; procedure TForm3.BitBtn9Click(Sender: TObject); //Paar 5 begin BitBtn9.Visible:=false; Image9.Picture.LoadFromFile('H:\SmkInf\Memorykarten\Fortgeschritten\Image10.bmp'); end; procedure TForm3.Button1Click(Sender: TObject); begin form3.hide ; form1.show ; end; end. |
AW: Memory Spiel
Hast Du Dir mal auf einem Zettel (neudeutsch Word) aufgeschrieben, was genau passieren soll? Irgendwo wird da ja stehen, wieviele Knöpfe gleichzeitig gedrückt sein dürfen. Um soetwas als ganz dummes Programm zu tun, muss gezählt werden. Zwar nur bis zwei, aber man muss sich das halt merken.
Wie man ein Programm dazu bringt, zu zählen hat man Dir hoffentlich beigebracht. Sherlock |
AW: Memory Spiel
Eine Antwort ist zwar schon da, aber noch bissl Kleinkram bleibt übrig.
|
AW: Memory Spiel
Beispiel für einen Zettel was passieren soll:
Code:
Benötigt werden also mindestens zwei Variablen, in denen du dir die erste und die zweite Karte merken kannst.
Start:
Karten zufällig verteilen Kartenklick: Welcher Zustand liegt vor: 1.keine Karte als neu aufgedeckt gemerkt - Anzahl der Versuche erhöhen - Karte aufdecken - 1.Karte merken und damit zu Zustand 2 wechseln 2.eine Karte wurde bereits als neu aufgedeckt gemerkt - Karte aufdecken Wenn(zweite Karte = erste Karte) - Merker für erste Karte löschen und damit in Zustand 1 wechseln - Auf Ende prüfen Sonst - 2.Karte merken und damit zu Zustand 3 wechseln 3.zwei unterschiedliche Karten wurden bereits als neu aufgedeckt gemerkt - beide Karten zudecken - Merker für beide Karten löschen - weiter wie im Zustand 1. 4.Ende(alle Karten sind aufgedeckt) - alle Karten zudecken - neu Starten Abhängig von der Belegung dieser Variablen muss beim Kartenklick anders reagiert werden. Mit einer weiter Variable, die die Gesamtanzahl der aufgedeckten Karten enthält, lässt sich auch der Zustand 4 leicht erkennen. |
AW: Memory Spiel
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 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-2025 by Thomas Breitkreuz